Git学习记录<2>

继续学习记录1

记录修改(log&diff):

(1)、修改1.py的内容:加入a=2;

(2)、查看状态: $git status

(3)、先加入:$ git add 1.py

  注:add .表示add所有文件

(4)、提交:$ git commit -m "change 1"

(5)、再次查看状态(可以看到修改过的记录):$ git status-s

  注:以缩写的形式查看状态

查看unstages:

(1)、查看这次还没add (unstaged) 的修改部分和上个已经 commit 的文件有何不同

$ git diff:

查看stages:

(1)、如果已经add 这次修改, 文件变成了 “可提交状态” (staged), 可以在diff 中添加参数--cached 来查看修改

$ git add .   # add 全部修改文件
$ git diff --cached

查看unstages和stages状态:

 

(1)、再修改一下1.py 但不 add

 

$ git diff HEAD

修改已 commit 的版本

 

(1)、如果已经提交了commit 却发现在这个commit 中忘了附上另一个文件.

Eg: 最后一个commitchange 2, 我要添加另外一个文件, 将这个修改也 commitchange 2. 可以复制1.py , 改名为2.py. 并把2.py 变成staged, 然后使用--amend 将这次改变合并到之前的 change 2 中.

 

$ git add 2.py
$ git commit --amend --no-edit   # "--no-edit": 不编辑, 直接合并到上一个 commit
$ git log --oneline    # "--oneline": 每个 commit 内容显示在一行

 

reset 回到add之前

(1)、有时我们添加add 了修改, 又想补充一些内容再 add.

 

$ git add 1.py
$ git status -s 

$ git reset 1.py

$ git status -s

reset回到commit之前

 

(1)、每个commit都有自己的id 数字号, HEAD 是一个指针, 指引当前的状态是在哪个commit. 

 

# 不管我们之前有没有做了一些add工作,这一步让我们回到上一次的commit
$ git reset --hard HEAD    

# 看看所有的log
$ git log --oneline

# 回到 c10ea64 change 1
# 方式1: "HEAD^"
$ git reset --hard HEAD^
注释:HEAD~n(n表示惠到底几个head)

# 方式2: "commit id"
$ git reset --hard c6762a1


# 看看现在的 log
$ git log --oneline

(2)、查看$ git reflog 里面最近做的所有 HEAD 的改动, 并选择想要挽救的 commit id:

 

 

$ git reflog
# 输出
c6762a1 HEAD@{0}: reset: moving to c6762a1
904e1ba HEAD@{1}: commit (amend): change 2
0107760 HEAD@{2}: commit: change 2
c6762a1 HEAD@{3}: commit: change 1
13be9a7 HEAD@{4}: commit (initial): create 1.py

(3)、重复reset 步骤就能回到 commit (amend): change 2 (id=904e1ba)这一步:

 

 

$ git reset --hard 904e1ba
$ git log --oneline
# 输出
904e1ba change 2
c6762a1 change 1
13be9a7 create 1.py

 

回到从前(checkout针对单个文件):

 

(1)、reset是针对这个版本库,针对单个文件使用checkout;

Eg:比如我们仅仅对1.py进行回到过去操作,回到id change 1这个commit,

 

$ git log --oneline
# 输出
904e1ba change 2
c6762a1 change 1
13be9a7 create 1.py
---------------------
$ git checkout c6762a1 -- 1.py

修改完之后:

 

 

$ git add 1.py
$ git commit -m "back to change 1 and add comment for 1.py"
$ git log --oneline

# 输出
47f167e back to change 1 and add comment for 1.py
904e1ba change 2
c6762a1 change 1
13be9a7 create 1.py

 

 

 

 


阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6