【问题标题】:git: Can git realize that commits I have received from one remote are the same as those coming from a different remote?git:git 能意识到我从一个遥控器收到的提交与来自另一个遥控器的提交是一样的吗?
【发布时间】:2023-03-18 08:57:01
【问题描述】:

我想知道为什么会出现一些使用 git 的行为:

我将 github 上的一个项目 fork 到我自己在 github 上的项目。然后我将我的项目克隆到我的电脑上。原始项目发生了一些变化,所以我告诉 github 使用它的 fork 队列提交它们。我在我的电脑上执行 git pull 来获取这些更改。

现在对原始项目进行了一些更改,但这次我在计算机上的原始项目中添加了一个远程分支。当我对其进行 git fetch 然后 git 合并到我的本地分支时,我遇到了冲突。

我不明白为什么它会这样做,因为我几乎是最新的并且只需要应用最后几个提交? git 不能告诉我已经有第一组提交,因为我是通过我自己的 github 项目 fork 间接获得的吗?

【问题讨论】:

  • 你读过这篇关于 fork github 项目的文章 [help.github.com/forking]。您能否根据该文章中使用的术语重新措辞您的问题?我认为这会让你的问题更容易理解。

标签: git github


【解决方案1】:

那些不是相同的提交。他们是精心挑选的。让它工作的最简单方法是在远程更改上重新设置本地分支,而不是尝试合并它们。

rebase 会注意到上游的变化是一样的,然后丢弃它们。

【讨论】:

    【解决方案2】:

    GitHub Fork 队列从根本上被破坏了,在任何情况下都不应该使用它。 Fork Queue 使用git cherry-pick 来挑选单个提交,它合并有问题的分支。摘樱桃几乎是总是错误的事情。事实上,Git 社区的大部分人(包括 Linus Torvalds)都严格反对它。 (当 Linus 还在运行 Git 项目时,他强烈反对向 Git 添加樱桃选择支持,直到今天他仍然拒绝合并任何包含樱桃选择提交的分支。)

    你应该总是更喜欢合并而不是挑选。

    【讨论】:

    猜你喜欢
    • 2020-08-19
    • 1970-01-01
    • 2014-06-13
    • 2014-08-11
    • 2014-12-09
    • 2019-01-29
    • 1970-01-01
    • 1970-01-01
    • 2014-10-28
    相关资源
    最近更新 更多