上周我创建了一个 Github 存储库,但忘记为该存储库选择许可证。现在已经有 3 个大型提交。
我已经询问了 3 位贡献者是否可以删除存储库,然后使用相同的名称再次创建它,这次在创建存储库时选择许可证,他们对此很好。
问题
有没有办法可以将提交提交到新的仓库中(这次第一个提交是 LICENSE 文件)并且仍然保留提交元信息?
原文由 Jasmine Lognnes 发布,翻译遵循 CC BY-SA 4.0 许可协议
上周我创建了一个 Github 存储库,但忘记为该存储库选择许可证。现在已经有 3 个大型提交。
我已经询问了 3 位贡献者是否可以删除存储库,然后使用相同的名称再次创建它,这次在创建存储库时选择许可证,他们对此很好。
问题
有没有办法可以将提交提交到新的仓库中(这次第一个提交是 LICENSE 文件)并且仍然保留提交元信息?
原文由 Jasmine Lognnes 发布,翻译遵循 CC BY-SA 4.0 许可协议
7 回答5.2k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
5 回答2.8k 阅读
3 回答2.6k 阅读
2 回答2.5k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
是的,通过在您的第一次提交之上添加一个远程并挑选提交。
这个答案的其余部分是如果您仍想将 LICENSE 添加到以前的回购中。
是的。您可以通过变基将您的 LICENSE 提交作为第一个提交。
变基是 gits 重新排列提交顺序的方式,同时保持所有提交作者和提交日期不变。
在处理共享存储库时,除非您的整个团队都精通 git,否则通常不鼓励这样做。对于那些不是,他们可以克隆存储库的新副本。
这是您如何将 LICENSE 提交作为第一次提交。
1. 更新和变基你的本地副本
检查您的项目并将 LICENSE 文件放在当前 3 提交堆栈的顶部的提交中。
然后在 master 分支上进行交互式 rebase 以重新 排列 提交。
它将打开一个编辑器。将底线(您的“初始提交”提交,最近的提交)移动到文件的顶部。然后保存并退出编辑器。
退出编辑器后,git 将按照您刚刚指定的顺序编写提交。
您现在已经更新了存储库的本地副本。做:
验证。
2. 强制将新的 repo 状态推送到 github
现在您的副本已更新,您必须强制将其推送到 github。
这将告诉 github 将 master 分支移动到其新位置。你应该只在这种罕见的情况下强制推送,因为使用它的每个人都知道即将发生的变化,否则它会让你的合作者感到困惑。
3. 将协作者同步到github
最后,所有协作者都必须同步到这个存储库。
首先 ,它们必须有干净的存储库,因为如果有未保存的更改,以下命令可能会造成破坏。
而已。现在每个人都应该同步。