gMa*_*ale 87
根据文档,我只是尝试了这个简单的命令,它对我有用:
git commit --no-edit
Run Code Online (Sandbox Code Playgroud)
然后,运行git log
以确认已使用默认消息.
Lop*_*Sae 18
默认情况下,当合并失败时,通常会将要使用的提交消息保存在git文件夹的文件中.git/MERGE_MSG
.解决冲突后,运行git commit
会将此保存的消息提供给默认编辑器.
如果消息没有自行获取,则可以使用--file
选项从git命令获取,该选项从文件中读取提交消息:
git commit --file .git/MERGE_MSG
Run Code Online (Sandbox Code Playgroud)
Chr*_*ial 14
只需将编辑器设置为不执行任何操作的命令:
GIT_EDITOR=true git commit
Run Code Online (Sandbox Code Playgroud)
显然,这里的"正确"答案是让您的开发人员在生成合并提交时遵循团队的正确实践.请注意,您希望以前的行为是默认行为,并且最近只有git开始要求合并的"人工生成"提交消息.这是有原因的,并不是说开发人员会用无意义的消息来短路过程.
也许开发人员在他/她应该改变时会产生合并提交?
也就是说,合并提交是git fmt-merge-msg
您必须向合并提交的父级提供的输出.
git commit --file .git/MERGE_MSG
正如已经提到的那样,但它忽略了几点:
.git
目录,只有一个文件.git
。并可选:
MERGE_MSG
包含有关存在冲突的文件的一些信息。前两点可以与 一起使用git rev-parse
:
git commit -F "$(git rev-parse --git-dir)/MERGE_MSG"
Run Code Online (Sandbox Code Playgroud)
或者,使用 Git 别名:
commit-merge = !cat $(git rev-parse --git-dir)/MERGE_MSG | git commit -F -
Run Code Online (Sandbox Code Playgroud)
这在“普通”存储库和子模块中都有效。如果#
应丢弃 - 标记的冲突标记,为简单起见,只能采用合并消息的第一行:
git commit -m $(head -1 $(git rev-parse --git-dir)/MERGE_MSG)
Run Code Online (Sandbox Code Playgroud)
或者另一个别名:
commit-merge = !head -1 $(git rev-parse --git-dir)/MERGE_MSG | git commit -F -
Run Code Online (Sandbox Code Playgroud)
我必须-F
在别名中使用该键,因为我无法让 Git 发出要在使用 bash 生成的命令中处理的引号(否则git commit
会在合并期间抱怨部分提交)。
两天前发布的Git 2.12.0引入了git merge --continue
进行合并提交的功能,该提交在合并过程中因冲突而停止。它也适用于子模块,但--no-edit
至少目前还不接受,因此建议编辑器在结束合并之前更改提交消息。
归档时间: |
|
查看次数: |
22133 次 |
最近记录: |