【问题标题】:A new file, git demands a merge, why?一个新文件,git 需要合并,为什么?
【发布时间】:2018-09-16 08:35:17
【问题描述】:

我在家里添加了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 杰西

【问题讨论】:

  • 添加文件只是为了避免冲突,但您已经创建了两个提示(一个在家,一个在工作)。您可以在另一个基础上重新建立基础,然后 ff 将成为可能。
  • ... 因为没有冲突,所以 rebase 是可能的,没有问题
  • 你应该在工作中做一个pull,这样工作和家庭就可以同步了。
  • 你能检查一下你的“merge.ff”配置值吗? git config --get merge.ff
  • @LeGEC 我猜 var 没有设置,你的命令什么也没输出。

标签: git merge debian fast-forward


【解决方案1】:

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

【讨论】:

  • 对最后一句话的澄清;除非遥控器添加了同名不同内容的文件,否则它会顺利运行。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-15
    • 1970-01-01
    • 2017-02-23
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多