如何解决我应该伪分叉我自己的 GitHub 存储库还是使用分支? 优点中性缺点
我编写了一些脚本来计算大量数据并返回一些统计值,这些值用于我几个月前到期的作业。
现在我想与几个人合作扩展这个项目。我的理解是我应该创建该项目的一个分支。我不认为为此创建一个额外的组织是合适的,因为该团队是临时的,至少目前只在这个单一项目上工作。
如 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 之后将不匹配,我真的不喜欢。
我的其他解决方案要么是完全废弃新项目中的历史记录并将所有以前的提交压缩到一个引用旧存储库的提交中,要么在分支上工作而不是在分支上工作,就像这里提到的:{{3} }.
新存储库的魅力在于两个项目都有相应的名称,通过压缩提交并添加对基础项目的引用,我会明确表示该项目不是全新的/从头开始,我不会有被不同 SHA 混淆的麻烦,因为在我的回购中使用不同的电子邮件地址基本上是相同的提交。另一方面,我大幅减少了这个 repo 的提交次数,这也感觉不太对。
如果我走分支路线,我应该在当前状态下创建一个 <old project name>
-branch 并继续处理 master
还是我应该保留 master
原样并创建一个 <new project name>-master
分支?另外我将如何处理存储库的名称?保持原样还是给它一个新名称?请记住:我希望以一种以后可以轻松访问的方式保存第一个项目的状态。这更像是标签的工作还是不活动的分支?
请注意,我并不是在征求意见。更确切地说,将这个问题解释为:与分支解决方案相比,我所说的“伪叉”有哪些优点和缺点(除了上面提到的那些)?
在“伪分叉”路线的情况下:no-contribution
邮件与压缩提交的优缺点是什么?
在分支路线的情况下:我应该如何命名分支,我可能错过的方法的相关优缺点是什么?重命名 repo 与保留旧名称有什么好处(链接不是问题,因为两个 repo 仍然是私有的)?在重命名的情况下,引用存储库主页上的 README.md
中的“旧”分支或标记是个好主意,还是会导致问题?
解决方法
TL;DR
我决定使用两个存储库,其中一个是另一个的伪分支(即克隆、更改远程、推送)并更改了那些旧提交的作者和提交者。
支持和反对这条路线的论据
优点
- 接收新存储库中的提交计数。
- 我的个人资料不会重复计算贡献。
- 提交仍与我的个人资料相关联,因为 github 将我列为提交者。
- 两个存储库都有指定的位置。
中性
- 尽管使用了新的 SHA,但仍保留了历史记录。
- git blame 仍然有效。
- 两个存储库中的提交之间没有直接联系(即您不能从一个存储库中获取 SHA 并在另一个存储库中选择相同的提交),这可能会导致混淆。
- 可能看起来像是一个全新的项目,其实不然。
缺点
- 我无法使用拉取请求
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。