2010-09-03 46 views
2

我開始按如下方式對目錄進行版本控制。按照git的狀態分段修改後的文件

git init 
git add . 

然後,我做了修改,添加/刪除/更改文件。我完成後,我跑

git status 

得到以下結果。

 
# (use "git add/rm ..." to update what will be committed) 
# (use "git checkout -- ..." to discard changes in working directory) 
# 
# deleted: bash/_bash_profile 
# deleted: bash/_bashrc 
# modified: functions.sh 
# modified: readme.txt 
# 
# Untracked files: 
# (use "git add ..." to include in what will be committed) 
# 
# bash/bash/ 
# template/ 

現在,我完全可以做'git status'告訴我做什麼。

對於刪除的文件運行git rm。

  • 的git RM慶典/ .bash_profile中

對於修改/添加的文件運行git添加

  • 混帳添加functions.sh

我的問題是:我怎麼能自動化這個?我看到git已經知道在修改過的文件上做什麼動作

  • 是否有一個git命令根據其狀態來執行每個必需文件的暫存? (刪除或添加)
  • 如果沒有,是否有任何簡單的方法來暫存所有文件,而不是一個一個地運行'git add'或'git rm'?

回答

2

是的,有一個簡單的方法:

git add -u 

這將增加所有修改當前目錄(所以如果你想要的一切,從你的回購的頂級運行)。但是,它不會添加任何未跟蹤的文件。如果你也想這樣做,你可以使用:

git add . 

它將添加當前目錄中的所有文件。 (這意味着它會提取修改和未跟蹤的文件,但不會像add -u那樣刪除)。

確保在檢查前後檢查git status,以確保獲得您想要的演出。如果您更喜歡commit -a,請仔細檢查狀態。添加你並不想要提交的內容是很容易的。

查看man page瞭解更多信息。

+0

'git add -A'會執行新文件,以及像'-u'一樣刪除和更新 – bdukes 2010-09-03 21:13:25

2

如果傳遞,當你犯了-a標誌,所有的不分階段的更改會自動提交之前上演你:

git commit -a 

如果你不想尚未提交,你可以使用-u標誌,而不是混帳添加:

git add -u 

u pdates上演文件集將所有更改跟蹤文件。它不會選擇新的未跟蹤文件,因此,您只需再次輸入git add .即可。

1

輸入混帳添加交互模式:

git add -i 

然後鍵入u*q。這將更新,階段所有更改並退出。

相關問題