如何避免在提交消息中“合并分支'name_of_branch'?

时间:2010-08-29 13:18:45

标签: git

我记得大约一年前我做了一些合并,导致远程存储库上的提交消息为Merge branch 'Name_of_branch'

从我记得的情况来看,如果我重新定位分支中的所有提交然后将其合并到master然后推送到远程存储库,就会发生这种情况。

但现在我无法使用git-1.7.2.2重现它。

它已被修复?或者有人可以解释这是如何发生的,也许是如何避免它?

3 个答案:

答案 0 :(得分:33)

这是默认的合并提交消息。获得它并不需要任何特殊的东西 - 只需将任何重要的合并到master中:

- o - o - X (master)
   \     /
    o - o (topic)

提交X的默认提交消息将是“合并分支'主题'”。如果您合并到master之外的分支,则默认消息为"Merge branch '<merged-branch>' into '<branch>'"

我不确定你为什么要问“修复”和“避免”这个问题。这是合并提交的一个非常合理的默认消息。如果您想要更详细的合并提交消息,那么您肯定会提供一个。 (两种主要方式是使用git merge --no-commit后跟git commit,或git merge后跟git commit --amend来编辑邮件。)

也许你习惯只做快进合并? (那些是简单的合并,你正在合并的提交将你当前的分支作为祖先,所以git所要做的就是将分支向前移动历史。)那些不生成合并提交,因此没有提交消息。 / p>

(顺便说一下,推送与此无关 - 它只是将信息从一个仓库复制到另一个仓库。它不会创建提交。)

答案 1 :(得分:5)

git merge -m

我正在使用git 1.7.8

答案 2 :(得分:0)

我不介意自动消息,但是我确实想避免为了保持默认值而不得不退出编辑器。以下选项可实现该行为(在我的脚本中):

class Person{
    public:
        Person(int a, string myname);
        int height; // make this an int, not int*
        string name;
        ...
};

Person::Person(int a, string myname)
    : height(a), name(myname) { // this is a member initialization list

}