初始化倉庫下載
打開hello.txt,修改為下面的樣子
1.(master1)
2.(master2)
3.(master3)
4.(master4)
打開morning.txt文件,修改為下面的樣子
5.(master5)
9.(master9)
10.(master10)
打開afternoon.txt,修改為下面的樣子
1.(master1)
5.(master5)
10.(master10)
$ git add -i
$ git add --interactive
進入交互暫存文件模式,顯示的信息比git status詳細一點,
左邊 staged 顯示文在是否在staging(暫存區,也叫Index)進行存儲
右邊 unstaged path 顯示文件被修改的行數和在倉庫中的路徑
可以看到,afternoon、hello、morning三個文件都有增加或減少啦幾行
目前沒有一個文件加入Index區域
2
u
輸入`2`或者`u`,列出已經修改,可以添加到Index的文件
1,2
輸入序號,選需要添加到Index的文件
輸出信息中,1,2兩個文件左邊有`*`,表示這兩個文件被選中,會被stage(就是添加到Index)
Enter
直接回車,剛才選中的文件就會被staged,輸出信息,顯示2個文件被添加啦
1
輸入1查看當前狀態,左邊`staged`一欄,序號為:1、2的兩個文件已經staged
右邊`unstaged path`中,兩個文件狀態都變成`nothing`
3 or r
輸入3或者r,進入Revert狀態,列出文件列表
1
輸入1將那個文件取消staged狀態,輸出列表里,被選的文件的序號左邊有`*`號
Enter
輸出信息,將選中的文件從Index區域移除
1
然后再選1來查看狀態,現在只有hello.txt添加到index區域啦
6 or d
選擇6或者d,列出已經staged的文件
1
選擇第一個文件,跟使用 `git diff --cached`是差不多的,就是查看當前staged的文件與HEAD所指向branch的最后一個commit中的同一文件進行比較。
暫存補?。ň褪侵籹tage一個文件中多處修改中的部分修改) Staging Patches 下載倉庫
打開afternoon.txt文件,在改成上面這個樣子并保存
$ git add -i
$ git add --interactive
5
p
1
Enter
輸入`5`或`p`來進入暫存補丁模式
輸入1選擇第一個文件afternoon.txt
然后直接回車,列出啦三處修改中的第一處
?
可以有很多選項,來選擇要操作的部分,輸入?獲得詳細幫助
y
輸出`y`確認stage這部分修改,輸出結果自動跳到啦下一處修改
輸入
q
,不暫存剩下的兩處修改,退出部分暫存(staging patches)模式
q
1
輸入1查看狀態,可以看到,現在afternoon.txt文件有一部分修改staged啦,還有一部分沒有staged
q
git commit -m '提交afternoon的第一處修改'
q退出交互模式,然后commit提交就可以啦
git add --patch
git add -p
上面的命令直接進入`暫存補丁`模式,用法跟上面一樣的。
可以部分重置,部分檢出,部分存儲,以后再整理吧
reset --patch
checkout --patch
stash save --patch