【问题标题】:Should I pseudo-fork my own GitHub repository or use branches?我应该伪分叉我自己的 GitHub 存储库还是使用分支?
【发布时间】:2021-05-26 22:18:02
【问题描述】:

我编写了一些脚本来计算大量数据并返回一些统计值,这些值用于我几个月前到期的作业。

现在我想与几个人合作扩展这个项目。我的理解是我应该为那个项目创建一个分支。我不认为为此创建一个额外的组织是合适的,因为团队是临时的,并且只在这个单一的项目上工作,至少现在是这样。

正如How do you fork your own repository on GitHub?Can/should I fork my own github repo? 中所述,您不能在 GitHub 上创建自己的存储库的分支。我尝试使用建议的克隆和推送到新存储库的解决方法,效果相当好。我真的不担心我不能跨项目公关,但这种方法对我来说的问题是所有提交都被双重计为我个人资料上的活动。

我就此联系了 GitHub 支持,并询问他们是否可以将项目附加为分叉(无论如何,在某些情况下似乎允许您自己的 repo 的私有分叉,cp.Collaborating in a temporary private fork to resolve a security vulnerability)或删除提交我的贡献活动中的那些存储库。他们显然不能这样做。他们的建议是使用自定义电子邮件地址,例如no-contribution@mydomain.com 未链接到我的 GitHub 帐户。虽然这可行,但我必须重写历史才能这样做,并且两个存储库中的提交 SHA 之后将不匹配,我不太喜欢。

我的其他解决方案要么是完全废弃新项目中的历史记录,并将所有以前的提交压缩到一个引用旧存储库的提交中,要么在分支上工作,而不是在分支上工作,就像这里提到的:How can I fork my own GitHub repository?

新回购的魅力在于两个项目都有相应的名称,通过压缩提交并添加对基础项目的引用,我会明确表示该项目不是全新的/从头开始,我在我的仓库中具有不同电子邮件地址的基本相同提交中,不会有被不同 SHA 混淆的麻烦。另一方面,我会大幅减少这个 repo 的提交计数,这也感觉不太对。

如果我要走分支路线,我应该在当前状态下创建一个 <old project name>-branch 并继续处理 master 还是应该保留 master 原样并创建一个 <new project name>-master分支?另外我将如何处理存储库的名称?保持原样还是给它一个新名称?请记住:我希望以一种我以后可以轻松访问的方式保存第一个项目的状态。对于标签或非活动分支来说,这更像是一份工作吗?

请注意,我并不是真的在征求意见。更确切地说,将这个问题解释为:与分支解决方案相比,我称之为“伪分叉”的优点和缺点(除了上面提到的之外)是什么?

在“伪分叉”路由的情况下:no-contribution 邮件与压缩提交的优缺点是什么?

如果是分支路线:我应该如何命名分支,我可能错过的方法的相关优缺点是什么?重命名存储库与保留旧名称有什么好处(链接不是问题,因为两个存储库仍然是私有的)?在重命名的情况下,最好引用存储库主页上 README.md 中的“旧”分支或标签,否则会导致问题吗?

【问题讨论】:

    标签: git github fork branch


    【解决方案1】:

    TL;DR

    我决定使用两个存储库,其中一个是另一个的伪分支(即克隆、更改远程、推送)并更改了这些旧提交的作者和提交者。

    支持和反对这条路线的论据

    优点

    • 接收新存储库中的提交计数。
    • 贡献不会在我的个人资料中重复计算。
    • 提交仍然链接到我的个人资料,因为 github 将我列为提交者。
    • 两个存储库都有指定的位置。

    中性

    • 历史被保留,尽管使用了新的 SHA。
      • git blame 仍然有效。
      • 两个存储库中的提交之间没有直接联系(即,您不能从一个存储库中获取 SHA 并在另一个存储库中选择相同的提交),这可能会导致混淆。
      • 可能看起来像是一个全新的项目,但实际上并非如此。

    缺点

    • 我无法使用拉取请求

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-28
      • 2011-07-20
      • 1970-01-01
      • 2013-03-16
      • 1970-01-01
      • 2010-10-08
      • 1970-01-01
      相关资源
      最近更新 更多