有時同時改了兩個功能A和B,並且都沒有提交,這兩個功能涉及到了同一個文件a,都進行了修改,但在某次提交中只希望提交功能A,所以只能提交文件a的關於功能A的部分修改,我們可以使用下面的命令對文件a進行選擇性提交:
git add --patch <filename>
或者
git add -p <filename>
執行此命令后,Git將開啟一個交互式模式,它會將文件a分解成它認為合理的“塊(hunk)”(文件的一部分),並和你分別確認如何處理每處的修改:
Stage this hunk [y,n,a,d,g,/,j,J,k,K,s,e,?]?
參數說明:
- y 暫存該塊 - n 不暫存該塊 - a 暫存該塊及該文件中的剩余所有塊 - d 不暫存該塊及該文件中的剩余所有塊 - g 選擇並跳轉至指定塊塊 - / 搜索與給定的正則表達式匹配的塊 - j 離開當前未定的塊,處理下一個未定的塊 - J 離開當前未定的塊,處理下一個塊 - k 離開當前未定的塊,處理上一個未定的塊 - K 離開當前未定的塊,處理上一個塊 - s 將當前的大塊分成更小的塊 - e 手動編輯當前的塊 - ? 打印幫助