如何为自上次提交后更改的每个文件(甚至文件的每个部分)创建单独的提交消息

时间:2016-06-15 16:19:20

标签: git

我首选的例程是一次性暂存和提交我更改的文件:

git commit -a
# enter commit message via editor

当我的所有更改彼此相关时,这非常有用。但是,当有几个不相关的更改(即我忘了为每个更改提交)时,它会产生冗长的提交消息。在这些情况下,我宁愿为每个文件都有一个单独的提交消息,或者当文件中存在多个不相关的更改时,每个更改都会有一个单独的提交消息。我怎么能这样做?

注意:此与How do I commit only some files?

之间存在差异

我的问题不同,因为它还解决了文件中的多个提交。

3 个答案:

答案 0 :(得分:4)

如果要添加整个文件,请使用

git add file.txt

如果您在单独的提交中在同一文档中进行了单独的更改,请使用补丁来选择帅哥

git add -p

当处于交互模式时,如果帅哥太大,那么你可以按 S

分割它们

分割后,如果您发现帅哥仍然不够精细,请参阅my answer关于手动编辑它以创建精确补丁。

答案 1 :(得分:2)

您还可以为交互式分段执行git add -i,这样您就可以对引入索引的内容进行细粒度控制。 git add的帮助输出中有对此选项的完整说明,以及https://git-scm.com/book/en/v2/Git-Tools-Interactive-Staging上的一个很好的写法

答案 2 :(得分:1)

只需为每个文件单独运行git stagegit commit

git stage file1.txt
git commit
# use editor to type reasons for changing file1.txt

git stage file2.txt
git commit
# use editor to type reasons for changing file2.txt

有关如何提交子文件级别更改的信息,请参阅Jeff Puckett II's answer