为什么git要求输入提交消息来解释为什么这种合并是必要的

Scr*_*ode 4 git git-pull

我在我的本地分支上有1次提交,然后将远程分支的更改带到我的本地,我git pull在我的本地分支上做了一个,我惊讶地git说这个.

# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
Run Code Online (Sandbox Code Playgroud)

我明白我是vi编辑.

我的问题是为什么 git让我输入消息.我以前从未面对过它.

我的git版本是: version 1.9.5-preview20141217

我提到了这个问题,但我仍然觉得很难理解.谢谢.

dub*_*bes 7

Git文档:

将来自远程存储库的更改合并到当前分支中.在默认模式下,git pull是git fetch的简写,后跟git merge FETCH_HEAD

关于你的问题:为什么

  1. 为什么Git会创建MERGE提交:这是默认行为git pull.有很多在互联网上这种行为的解释,很好地解释它的一个好工作.
  2. 为什么Git现在要求提交消息:我想到了三种可能的选择:
    • 你更新了你的git客户端
    • 你之前从未有过一个超越遥控器的本地分支机构
    • 您的git配置最近已更改

如何避免这种情况:

由于您的本地存储库提前1次提交,因此git会尝试将您的远程数据库合并到您的本地存储库.这可以通过合并来处理,但在您的情况下,也许您正在寻找rebase,即将您的提交添加到顶部.你可以这样做

git rebase 要么 git pull --rebase

如果这确实是您正在寻找的行为,您可以设置您的git配置,使rebase成为您的默认选项 git pull

全局设置:

git config branch.autosetuprebase always # Force all new branches to automatically use rebase
Run Code Online (Sandbox Code Playgroud)

或者你可以为每个分支设置它:

git config branch.*branch-name*.rebase true # Force existing branches to use rebase.
Run Code Online (Sandbox Code Playgroud)