6. 暫存文件的部分改動
一般情況下,創(chuàng)建一個基于特性的提交是比較好的做法,意思是每次提交都必須代表一個新特性的產(chǎn)生或者是一個bug的修復(fù)。如果你修復(fù)了兩個bug,或是添加了多個新特性但是卻沒有提交這些變化會怎樣呢?在這種情況下,你可以把這些變化放在一次提交中。但更好的方法是把文件暫存(Stage)然后分別提交。
例如你對一個文件進(jìn)行了多次修改并且想把他們分別提交。這種情況下,你可以在 add 命令中加上 -p 參數(shù)
我們來演示一下在 file_name 文件中添加了3行文字,但只想提交第一行和第三行。先看一下 git diff 顯示的結(jié)果:
然后再看看在 add 命令中添加 -p 參數(shù)是怎樣的?
看上去,Git 假定所有的改變都是針對同一件事情的,因此它把這些都放在了一個塊里。你有如下幾個選項:
-
輸入 y 來暫存該塊
-
輸入 n 不暫存
-
輸入 e 手工編輯該塊
-
輸入 d 退出或者轉(zhuǎn)到下一個文件
-
輸入 s 來分割該塊
在我們這個例子中,最終是希望分割成更小的部分,然后有選擇的添加或者忽略其中一部分。
正如你所看到的,我們添加了第一行和第三行而忽略了第二行。之后你可以查看倉庫狀態(tài)之后并進(jìn)行提交。