【问题标题】:Git Pull Aborting [closed]Git拉中止[关闭]
【发布时间】:2011-10-25 10:50:27
【问题描述】:

我的同事将生产修补程序的一些更改合并到他的本地 master 分支中,然后将 master 推送到我们的 GitHub 存储库。现在我正在尝试用他的更改来更新我的本地主分支。当从 git 控制台执行“git pull origin”时,显示所有文件似乎一切正常。但是,接近尾声时,它会以“Aborting”消息停止。

我不知道下一步该做什么。帮忙?

更新: 所以问题解决了。问题的真正根源是我的同事从他的分支中的 .gitignore 文件中删除了一些条目,这允许几个新文件进入他的签入。由于我的本地 .gitignore 仍然忽略这些文件,我的本地仓库认为我没有本地工作文件可以添加到索引中。我最终删除了所有文件,然后拉取工作并将它们全部带入。

我肯定会更加小心地编辑 .gitignore 文件并将其签入。我现在对它对其他开发人员的影响有了一些新的认识。

【问题讨论】:

  • 实际上,还有一个可能相关也可能不相关的好奇心。当我的同事推动时,事情“似乎”奏效了。但是,当我们访问 GitHub 时,并没有任何新的提交。现在他在 GitExtensions 中的本地分支视图看起来是正确的,我们也能够在 GitHub 中看到他的更改。所以当你合并本地然后推送时,你不希望在 GitHub 上看到新的提交吗?如果不是,我怎么看 GitHub 就知道 master 变了?
  • @Tim,它显示你编辑了我的帖子。你改变了什么吗?我不知道人们可以更改我的帖子,而且...你为什么要更改它?
  • 点击“5 分钟前编辑”中的“5 分钟前”,您会看到差异。他只是做了一个小的标点更改。
  • 将此讨论带到 meta.stackoverflow.com。编辑已经存在了一段时间。如果您注意到,这些天您看到的“如何 2 编写代码”问题要少得多。

标签: git git-pull


【解决方案1】:

他可能将提交放在现有提交树的某个位置,而不是在它的顶部。

试试这个:

git fetch origin
git rebase origin/master

如果这不起作用,只需创建一个 origin 的本地分支,将本地提交挑选到它上面,在他合并任何提交之前重置 master,然后将本地分支合并到 master。

我的猜测是他的推送在某些时候涉及--force 以避免not a fast-forward commit 消息。将来你不想这样做。

【讨论】:

  • 感谢@Stefan,但我仍然遇到问题。至少通过运行 rebase,我收到了更多信息。最后它说:Aborting - count not detach HEAD。这是否提供了更多线索?
  • 您在本地是否有任何文件会被 rebase 更改?尝试将原始副本检出到新分支,然后查看内容。 git checkout -b testbranch origin/master
  • 好吧,我遇到了同样的错误,但这次我在窗口中向上滚动并学到了更多东西。因此,在运行命令后,我立即收到此消息:“错误:以下未跟踪的工作树文件将被结帐覆盖:”。所以,这才是真正的问题。但是,解决办法是什么?我认为我的同事更改了 .gitignore 文件,该文件将一堆新文件添加到版本控制中。它向我展示了所有这些文件。那么我是否应该先获取最新的 .gitignore 文件,然后再提交所有新文件?
  • 我读过stackoverflow.com/questions/1125968/…,但仍然不确定方向。
  • 所以问题解决了。问题的根源是我的同事从他的分支中的 .gitignore 文件中删除了一些条目,这允许几个新文件进入他的签入。由于我的本地 .gitignore 仍然忽略这些文件,因此它认为我没有本地工作文件可以添加到索引中。我最终删除了所有文件,然后拉动工作并将它们全部带入。
【解决方案2】:

问题的根源是我的同事从他的分支中的 .gitignore 文件中删除了一些条目,这使得几个新文件可以进入他的签入。由于我的本地 .gitignore 仍然忽略这些文件,因此它认为我没有本地工作文件可以添加到索引中。我最终删除了所有文件,然后拉取工作并将它们全部带入。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-26
    • 1970-01-01
    • 2016-05-26
    • 1970-01-01
    • 2020-08-16
    相关资源
    最近更新 更多