7.2 Git Tools - Interactive Staging (交互式暫存文件的使用)

初始化倉庫下載

打開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
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容