gpt4 book ai didi

混帐 : How to reset the history of all the repositories associated with a project?

转载 作者:太空狗 更新时间:2023-10-29 14:31:44 25 4
gpt4 key购买 nike

我们是使用 BitBucket 上的中央存储库从事一个项目的两名开发人员。

有时我想将历史重置为特定修订版(我知道这会丢失信息):

git.exe reset --mixed 0e827d5fcb7d9b
git.exe push --all --force

这正确地将历史重置为我想要的修订。但是,如果第二个开发人员没有做同样的事情,如果他没有重置他自己的 local 存储库,那么他将要进行的下一次推送 将添加回我的所有提交重置后删除!

当项目中只有两个开发人员时,情况还不错。我可能会要求其他开发人员在其本地存储库上运行相同的重置,BitBucket 上的历史记录将按照我的意愿保留。但我想知道是否有办法强制重置与该项目关联的所有存储库的历史记录?一种方法可以强制第二个开发人员在他再次推送到 BitBucket 之前将其本地存储库重置为我的?

或者我可能遗漏了一些明显的东西(我不是 Git 大师)...

最佳答案

您可以简单地重置创建一个单独的分支。

git checkout -b newBranch 0e827d5fcb7d9b
git push -u origin newBranch

推送新分支将允许您拥有自己的分支来重置和强制推送,而不会打扰第二个开发人员。

但是如果你想强制第二个开发者在推回之前重置他/她自己的工作区,你应该:

  • 重置(就像你正在做的那样)
  • 修改提交(强制提交 0e827d5fcb7d9b 具有新的 SHA1)

    git commit --amend -m "reset branch"
  • 强制推送

那么默认情况下,来自其他开发人员的任何推送都将被拒绝,因为它是非快进的。
他们需要获取并在 origin/master 之上重新设置他们自己的分支。或者将他们自己的工作树重置为新的 upstream/master

关于混帐 : How to reset the history of all the repositories associated with a project?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41151797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com