2011-03-03 219 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