Git:准备好真正的 merge 提交后,如何创建一个简单的提交?

标签 git git-merge

在调用 git merge --no-commit <commit> 之后,执行提交将导致与两个(或更多)父项的 merge 提交。调用什么命令来创建一个简单提交(无需使用 --squash 选项重新执行 merge 命令)?

最佳答案

根据git-merge man page , --squash 选项不记录 $GIT_DIR/MERGE_HEAD$GIT_DIR/MERGE_HEAD 负责创建 merge 提交;您可以在 Git 源文件 builtin/commit.c 中看到这一点:

in_merge = file_exists(git_path("MERGE_HEAD"));<br/> ...<br/> if (in_merge) {<br/> ... // Perform merge_commit<br/> }

解决方案:执行正常 merge 后,简单地删除 $GIT_DIR/MERGE_HEAD 以避免获得 merge 提交。您也可以手动清理 $GIT_DIR/MERGE_MSG 和 $GIT_DIR/MERGE_MODE,或者在成功提交后将此任务留给 Git。

关于Git:准备好真正的 merge 提交后,如何创建一个简单的提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3038422/

相关文章:

eclipse - EGit 2.3 新增--no-ff 选项,如何使用?

Git merge 内部

git - 构建 git merge 代码的最佳方法是什么

git - 从提交历史中删除错误提交的大文件

php - Git POST webhook shell_exec

git - 有没有办法在不创建包含目录的情况下克隆存储库?

git - merge 时如何始终忽略文件

svn - 维护一组不提交给 SCM 的小改动

git - 在多个客户的网络项目中使用 git

git - 再次从 master 中删除提交