一个新文件 git 需要合并,为什么?

A new file, git demands a merge, why?

在家里我添加了 do_next.py 并成功将其推送到存储库。在工作中我创建了 cat.py ,提交并尝试 push 但失败了:

hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

如果我 pull , git 要求我合并(输入合并评论)。

请解释为什么需要合并?我认为因为我刚刚添加了一个新文件,所以 fast-forward 就足够了,不需要合并。

此外,我想不出针对此必需提交的合理消息。 使用: git 版本 2.1.4 Debian 杰西

git 请求合并的原因是因为 git pull 是两个命令的组合,git fetchgit merge。由于您的本地分支有一个不在您的远程分支上的提交,而远程分支有一个不在您本地的提交。你是"ahead and behind"。如果您不想进行合并,请执行 git pull --rebase ,这会将您的本地提交放在一边,更新您的本地分支,然后重新应用您的提交。由于您只是添加一个新文件,因此可以顺利进行。

在git中,一次提交是指整个仓库的一个状态。您有一个包含文件 "do_next.py" 的提交和一个包含文件 "cat.py" 的提交。现在应该有一个包含这两个文件的提交,所以它只是建议创建它。