代码之家  ›  专栏  ›  技术社区  ›  lprsd

git工作流包含了来自多个fork的多个(但不是所有)提交

  •  3
  • lprsd  · 技术社区  · 16 年前

    我有一个git回购协议。它已经被分叉了好几次,并且许多独立的提交都是在它之上进行的。一切正常,就像在许多github托管项目中发生的事情。

    现在,如果我想单独查看所有提交并应用我喜欢的提交,我应该遵循什么样的工作流。

    我所遵循的工作流程,并不是最理想的,是创建一个github用户名的分支,并将更改合并到我的master中,然后撤消我不需要手动进行的提交中的任何更改(数量不多,所以它起作用了)。

    我想要的是能够看到所有的承诺从不同的叉子单独和樱桃采摘,并应用到我的主人之上。

    要遵循什么样的工作流程?什么图形用户界面(gitk?)使我能够看到所有不同的单独提交。

    我意识到merge应该是工作流的主要部分,而不是cherry pick,因为它创建了一个不同的提交(从git的角度来看)。即使在我的基础上重新调整其他人的更改,也可能无法保留图表上的历史,以表明我已经重新调整了他的承诺。那么,我如何忽略他们中的一些承诺呢?

    我认为github应该在每个提交节点之后在它们的图中有一个“在主节点之上应用这个提交”的东西;这样我就可以在完成所有这些之后拉它。

    1 回复  |  直到 16 年前
        1
  •  2
  •   Xentac    16 年前

    这通常是你使用遥控器的目的。对于每个fork,您可以添加一个新的遥控器: git remote add <name> <url> . 然后可以获取它们的所有远程提交: git fetch <name> . 然后可以在远程分支上使用任何可视化工具。就像你有本源/主人一样,你也会有/主人。从那里,从另一个偏远的地方摘樱桃和从一个树枝上摘樱桃一样容易。

    在任何情况下,origin remote都不是远程回购的特例。它恰好是您最初从中克隆的远程repo的默认名称。如果你不喜欢它的名字来源,可以把它改名。

    如果你不知道,所有的gui工具让你看到的不仅仅是你当前分支的历史。当你启动像tig,qgit,或者gitk这样的东西时,你只需要通过——所有这些都可以让你看到它所知道的每一个分支,本地的和远程的。