互動新增
git add -i
(或 --interactive
)將為你提供一個互動式介面,你可以在其中編輯索引,以準備你希望在下次提交時擁有的內容。你可以新增和刪除對整個檔案的更改,新增未跟蹤的檔案並從跟蹤中刪除檔案,還可以選擇要放入索引的更改子部分,方法是選擇要新增的更改塊,拆分這些塊,甚至編輯差異。Git 的許多圖形提交工具(例如 git gui
)都包含這樣的功能; 這可能比命令列版本更容易使用。
它是非常有用的(1)如果你想要在單獨的提交中進行工作目錄中的糾纏更改,而不是一次性提交(2),如果你處於互動式 rebase 的中間並且想要分割大提交。
$ git add -i
staged unstaged path
1: unchanged +4/-4 index.js
2: +1/-0 nothing package.json
### Commands
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now>
此輸出的上半部分顯示分解為分階段和非分階段列的索引的當前狀態:
index.js
已新增 4 行,刪除 4 行。它目前沒有上演,因為目前的狀態報告沒有變化。當此檔案進入暫存狀態時,+4/-4
位將被轉移到分階段列,未分段列將顯示為無。package.json
已新增一條線並已上演。沒有進一步的更改,因為它已經被暫停列下的無行指示。
下半部分顯示了你可以做的事情。輸入數字(1-8)或字母(s
,u
,r
,a
,p
,d
,q
,h
)。
status
顯示的輸出與上面輸出的頂部相同。
update
允許你使用其他語法對暫存提交進行進一步更改。
revert
會將暫存的提交資訊還原為 HEAD。
add untracked
允許你新增以前未被版本控制跟蹤的檔案路徑。
patch
允許從類似於 status
的輸出中選擇一條路徑進行進一步分析。
diff
顯示將要提交的內容。
quit
退出命令。
help
提供了使用此命令的進一步幫助。