当参考存储库不保留时,我如何在本地保留尽可能多的git历史?

pbpqsu0x  于 2023-05-27  发布在  Git
关注(0)|答案(1)|浏览(96)

我最近意识到我们团队推送的参考存储库 * 没有 * 配置为拒绝非快进更新。
考虑到一些团队成员倾向于使用历史重写来清理他们的贡献,而不关心这些提交是否已被共享,我想保留我从参考存储库中获取的每一个提交,以防我需要进行考古调查。
当然,我不能自己拒绝这些,否则我会被困在过去:我需要保留重写前的历史记录,并加入重写后的历史记录。

klsxnrf1

klsxnrf11#

这个程序似乎是有效的:
1.永远不要把修剪作为抓取的一部分,这样你就不会被删除和重新创建的分支所迷惑
1.定期从参考存储库中获取,即使还没有准备好集成上游贡献或当前没有在该存储库上工作。
1.如果git fetch的输出没有显示任何强制更新,则恢复常规活动。
1.否则,使用git update-ref -m "reverting forced update"回退每个强制更新

  1. git remote rename origin origin$COUNTER
  2. git remote --set-url origin$COUNTER https://unreachable.example.com/origin$COUNTER/.git
  3. git remote add origin $REFURL
  4. git fetch origin
  5. git branch -u origin/"$(git branch --show-current)"
    1.类似地,更新其他本地分支的上游。
    这对我很有效,因为我只有一个本地分支在任何给定时间跟踪任何远程分支:目前的分支。也许是两个,当我在回到我正在进行的工作之前做了一个快速修复,并且只在修复期间:我虔诚地删除跟踪远程分支的本地分支,只要我把工作推到另一个分支。因此,第9步的工作对我来说非常有限。

相关问题