2011-03-03 228 views
3

git add -p允許您一次遍歷每個修改後的文件。在git中一次提交一個

我想要一個類似的版本;但是,它需要允許您一次放置一個文件。我希望能夠階段並提供提交消息。

+3

你的問題很不清楚你想要完成什麼。 – 2011-03-03 17:41:56

+0

我同意安德魯。你是否想要爲每個文件分別提供一個單獨的文件消息?請詳細說明。 – 2011-03-03 17:42:58

+0

可能重複的[git:提交多個文件,但添加消息](http://stackoverflow.com/questions/5171022/git-commit-multiple-files-but-add-messages) – 2011-03-03 17:45:53

回答

3

所以你想這樣做?

git add <file1> 
git commit [-m "message"] 
git add <file2> 
git commit [-m "message"] 
... 
+0

@David如果你在git ,提交是本地的,甚至可以在別人看到它們之前使用'git rebase -i'進行調整,所以如果這是你擔心的,就不需要在一個命令中完成上述所有內容。如果你真的想在一個命令中完成所有操作,我想你可以編寫一個腳本來迭代某種形式的'git status'的輸出,在它們每一個上調用'git add'或'git add -p' ,然後調用'git commit'(不帶'-m')讓你在文本編輯器中指定消息。 – MatrixFrog 2011-03-03 18:45:12

5

我認爲你需要的開關-o例如:

git commit -o file1 
+0

是的,這是OP想要的,一個命令來添加和提交一個文件 – idlethread 2012-05-15 08:24:10

+0

使用這個選項也可以列出所有你想提交的文件。 'git commit -o file1 file2 file3'也是允許的...這並不僅限於三個文件。 – iGbanam 2013-03-29 18:13:49

+0

有趣的事實:'git commit -o file1'繞過'.gitignore's。安全問題可能? – iGbanam 2013-03-29 18:21:50

0

這裏有一個匆匆的我使用過的git的狀態的所有修改的項目放量。我們一次做一個提交,因此我可以爲每個提交註釋。

for each_git_file in 
`git status | egrep 'modified|new file' | awk -F: '{print $2}' | sed 's/[\W\.]*//'`; 
do 
    git commit -o $each_git_file; 
done