【问题标题】:Why is git prompting me for a post-pull merge commit message?为什么 git 提示我输入拉后合并提交消息?
【发布时间】:2015-06-11 13:44:28
【问题描述】:

最近,在git pull 之后,git 开始生成我的文本编辑器,并要求合并提交消息。提交消息已经预先填写,我只需要保存并关闭窗口即可完成拉取。

在过去,它会默默地进行合并,并带有标准的提交消息(沿着Merge branch 'dev' of remote.com:/repo into dev 的行)。

我最近将 git 更新到 1.7.11.3 版本(通过自制软件),但想不出我可能会做些什么来改变这种行为。这是一个设置,还是有其他方法可以恢复到原来的样子?

【问题讨论】:

    标签: git git-pull


    【解决方案1】:

    在 git 1.7.10 中,git 开发人员认为合并提交太容易了。正如this blog post, 中所解释的,强制交互式提交消息行为应该使这些提交消息更加详细,并且可以减少不必要的合并的总体频率。

    您可以使用--no-edit 标志来避免这种行为,但是,不要这样做。合并提交,就像对历史的任何提交一样,应该构造良好。你的历史应该是有用的。

    【讨论】:

    • 感谢您的帮助。我不同意合并提交应该始终是描述性的。我查找此内容的原因是因为每当我拉动时自动合并都要求我解释为什么需要合并,这很快变得不合理,因为它甚至在我没有任何更改时这样做。
    • 这也是避免这种行为的有用资源:longair.net/blog/2009/04/16/git-fetch-and-merge 你应该避免git pull;如果您只是尝试更新并且您认为您没有任何本地更改,请使用git merge --ff-only;如果你真的想合并一个分支,请使用git merge --no-ff
    • 是否有一个配置标志来关闭它?每次都必须输入 --no-edit 很烦人。
    • 太棒了。感谢分享@Christopher。
    • @SeanCoetzee:这取决于您的$EDITOR 设置,但如果您在OSX 上使用开箱即用的git,它可能是一个名为'vi' 的程序。输入i 进入“INSERT”模式;输入您的信息。然后,您可以通过点击ESC 然后输入:wq 来保存并退出。
    【解决方案2】:

    要创建一个快捷方式以供将来使用,可以:-

    使用以下内容编辑您的~/.gitconfig

    [core]
        mergeoptions = --no-edit
    

    或者在终端中执行以下操作

    git config --global core.mergeoptions --no-edit

    【讨论】:

    • 这对我不起作用(OSX 上的 git),我已经正确设置它,查看git config --global core.mergeoptions 的输出。
    • 终端命令应该像下面git config core.mergeoptions --no-edit
    • @SimsekMert 只会编辑当前存储库中的 .gitconfig,而不是全局编辑每个 git 存储库
    • @AbhishekGoel 您可能需要重新启动终端才能使更改生效
    • @jvannistelrooy 您可能需要重新启动终端才能使更改生效
    【解决方案3】:

    首先,请注意上面克里斯托弗的回答中的警告。

    然后,如果你还想禁用自动合并提交消息编辑,设置这个环境变量:

        GIT_MERGE_AUTOEDIT=no
    

    此环境变量及其“否”设置记录在 git merge 文档页面上。建议仅在需要以非交互方式合并的脚本中使用它,但当然可以将其设置为您的 shell 环境的一部分以使其效果更持久。

    【讨论】:

    • 您能解释一下这与使用--no-edit 标志有何不同吗?
    • 我不知道功能上的区别,但方便的因素使它值得。 --no-edit 标志必须在每次使用时在命令行上重复,因为它似乎在达拉斯克拉克的回答中描述的设置中不起作用。设置环境变量是我知道的唯一让这个设置生效的方法。
    猜你喜欢
    • 2018-07-12
    • 1970-01-01
    • 2011-06-30
    • 1970-01-01
    • 2016-07-24
    • 1970-01-01
    • 2018-04-17
    • 2012-12-15
    相关资源
    最近更新 更多