我们正在使用Github及其相关的问题跟踪系统(ITS)。我们在提交消息中引用ITS中的问题ID,链接ITS和提交。由于我已经在已经推送的提交的提交消息中混淆了许多问题ID,因此我不得不在我的Git存储库中“重写历史记录”。一切顺利,我强行推动我对Github的改变。
我希望更新ITS中的问题到旧提交的链接(不再用git log
可见),并更改为引用它们的新提交。不幸的是,他们不是。即使问题的提交在存储库中不再存在,仍然会从Github上的问题网站引用它。但是,引用的提交不会显示在正常git log
中。事实上,我有点感到疑惑,事实上git checkout <old_commit>
,即使没有证据证明这个提交曾经存在于日志中。
有没有办法在Github上触发一个完整的新存储库读入,或者我可以以某种方式手动编辑链接的提交?此外,该问题没有与新提交的链接。
我从Github找到了一个相关的帮助页面,但这只是向我建议,从git push开始,Github会处理所有事情:https://help.github.com/articles/can-i-delete-a-commit-message
谢谢!
答案 0 :(得分:0)
即使本地克隆中不存在提交,并且没有引用它的标签或分支,即使Github尚未在其上运行垃圾收集器,该提交仍可能存在于Github的存储库中。据我了解,出于性能原因,它们的执行频率比本地git的执行频率低。如果是这样,它将最终消失。
我不知道“拥有来自问题跟踪程序的指针”是否可以算作无法垃圾回收提交的原因。如果是这样,就不会存在问题。
答案 1 :(得分:0)
GitLab具有备份功能,可导出整个项目和所有相关数据。我发现从项目中完全删除提交的最简单方法是进行备份,对存储库及其中包含的数据进行手动编辑,然后还原-首先通过还原到新的存储库进行测试,然后删除旧的存储库并还原到位。