当与抑制自动提交(或)git merge的选项一起使用时,显然总是为下一条提交消息生成自己的模板;接下来忽略该选项。有什么办法可以抑制这种情况吗?--no-commit--squashgitgit commit-t
-m我发现的最好的解决方法是与提交一起使用,然后立即运行git commit --amend。不过,这对我来说似乎很尴尬,并且它消除了通过在保存之前删除提交消息模板来中止提交的能力。
如果您在执行此操作后检查.git目录的内容git merge --squash,您将看到SQUASH_MSG包含提交消息模板的文件。该文件也是在使用 进行挤压后创建的git rebase -i。如果您不希望 Git 在执行操作时自动填充提交消息,则需要删除此文件git commit。git commit如果为本地命令添加别名以自动为您执行此操作会很有用,但Git无法做到这一点。相反,我们应该在以下位置创建一个别名~/.gitconfig:
[alias]
kommit = "!KOMIT_GIT_DIR=$(git rev-parse --git-dir); if [ -a "${KOMIT_GIT_DIR}/SQUASH_MSG" ] ; then rm "${KOMIT_GIT_DIR}/SQUASH_MSG" ; fi && git commit"
Run Code Online (Sandbox Code Playgroud)
此行检查 SQUASH_MSG 是否存在,如果存在则在执行之前将其删除git commit。现在你应该做git komit而不是git commit执行后git merge --squash。
我用 Git 2.3.1 对此进行了测试:
$ git --version
git version 2.3.1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1285 次 |
| 最近记录: |