我首选的例程是一次性暂存和提交我更改的文件:
git commit -a
# enter commit message via editor
当我的所有更改彼此相关时,这非常有用。但是,当有几个不相关的更改(即我忘了为每个更改提交)时,它会产生冗长的提交消息。在这些情况下,我宁愿为每个文件都有一个单独的提交消息,或者当文件中存在多个不相关的更改时,每个更改都会有一个单独的提交消息。我怎么能这样做?
我的问题不同,因为它还解决了文件中的多个提交。
答案 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 stage
和git 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。