如何使用Git一次提交一个文件?

时间:2010-01-05 01:08:18

标签: git

假设有几个文件被修改,我只想要每次提交一个文件。怎么做?给出一个状态示例如下所示。谢谢!

例如:

> git status
#   modified: file01.txt
#   modified: file02.txt
#   modified: file03.txt
#   modified: file04.txt
#   modified: file05.txt

5 个答案:

答案 0 :(得分:45)

使用git add -p后跟git commitgit add -p要求您进行每次更改是否将其暂存以进行提交,这非常方便。

您还可以将-pgit resetgit checkout一起使用。

答案 1 :(得分:20)

有几种方法,但最简单的可能是:

git commit file01.txt
git commit file02.txt
...

您提交命令后列出的所有路径都将被提交,无论它们是否已暂存。或者,您可以暂存每个,然后提交:

git add file01.txt
git commit

git add file02.txt
git commit

...

答案 2 :(得分:14)

daf的答案所描述的

git add -p很好,但是对于更直接的选择和选择方法,我真的很喜欢:

git add -e

它会生成相应的补丁,然后将其加载到首选编辑器中,以便您可以根据需要进行编辑。保存文件并退出编辑器时,只有编辑后的修补程序版本所做的更改才会添加到索引中。

如果您在不进行更改的情况下意外关闭了编辑器,您可能希望使用get reset HEAD然后重新开始。

答案 3 :(得分:2)

git add file01.txt
git stash
git commit -m'commit message'
git stash pop

重复。

答案 4 :(得分:1)

关于在文件中暂存部分更改的主题,值得注意的是,各种文本编辑器都支持以比任何命令行选项更好的方式执行此操作。

我使用Magit用于Emacs,它使用单击键来向前或向后穿过深色,增加或减少粒度,以及暂存或取消暂存当前的大块。您也可以手动标记区域并仅在该区域上进行阶段(或非阶段)。

我相信vim和其他编辑器/ IDE也有相似的插件。