【问题标题】:Best workflow when forking and renaming a GitHub project [closed]分叉和重命名 GitHub 项目时的最佳工作流程 [关闭]
【发布时间】:2011-04-14 09:51:03
【问题描述】:

我正在尝试找出在 Github 中使用现有开源项目的分支的最佳工作流程。我想对现有项目进行重大更改,在这种情况下将其移植到 android 并添加特定的 android only 功能。我想满足以下条件:

  1. 随着原始代码的更新,能够将更改从他们的公共 repo 拉取到新的 android 端口。
  2. 当我修复不仅仅适用于 android 端口的错误时,能够将更改(通过拉取请求)提交到原始项目。
  3. 有一个单独的项目重命名版本,以明确它是一个 Android 端口。我考虑重命名一个分支,Github 给了我关于这样做的巨大警告。

我最初的想法是我会 fork 原始项目,然后 fork 并重命名我的 fork 以给我以下 repos:

original-author/projectA
nicstrong/projectA
nicstrong/projectA-android

这将允许我处理我的本地 repo local/projectA-android 将更改推送到 nicstrong/projectA-android。然后从原始项目更新,我可以将 nicstrong/projectA 从 original-author/projectA 重新设置为最新,然后从 nicstrong/projectA 获取/合并到 local/projectA-android。

我的问题是:

  1. 我对整个 Git 还是很陌生 事物。这看起来是不是很好 方法?或者有没有更好的 处理此场景的工作流程?
  2. 我将如何处理从 projectA-android 回到 nicstrong/projectA 以便我可以为原始项目设置拉取请求?

【问题讨论】:

    标签: git open-source github


    【解决方案1】:

    1/ 是的,这似乎是最安全的方法,因为您最终在nicstrong/projectA 中进行的任何修改都将在与original-author/projectA 具有相同结构的项目中。
    这意味着拉取请求将更容易组织,因为您将在一个项目中镜像原始作者的项目。

    2/ 如果您在 nicstrong/projectA-android 中进行大规模重构,我会创建一个 backport 分支,从 backport 分支的众多更改中仔细合并或挑选您需要的内容,然后推送它分支到nicstrong/projectA
    (这意味着您已将nicstrong/projectA 添加为nicstrong/projectA-android 的远程)

    【讨论】:

    • 为了创建所需的多个分叉,我使用了这篇文章中描述的技术:adrianshort.org/2011/11/08/…
    • @dbasch 是的,但它不会是真正的分叉,因为不会有任何从第二个“分叉”返回到原始存储库的拉取请求。
    • 我将使用 projectA 存储库对原始存储库的拉取请求。 projectA-android/backport 中的更改将手动合并到 projectA。这是个好策略吗?
    • 请通知我的女朋友我做对了,一次。你在这篇文章中给出的回答也对理解这个话题很有帮助:stackoverflow.com/a/15734936/168205
    • 注意:将 projectA 添加为本地 repo projectA-android 的远程。命名远程上游。
    【解决方案2】:

    git 存储库的名称很大程度上取决于远程的名称。继续克隆它,然后添加一个新的遥控器(使用不同的名称)并开始推送。当然,此时您可以继续更改项目目录的名称,而不会出现问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-13
      • 2021-08-16
      • 1970-01-01
      • 1970-01-01
      • 2014-05-15
      • 1970-01-01
      相关资源
      最近更新 更多