Git OVERWRITE all存储库与以前的提交

Git OVERWRITE all存储库与以前的提交,git,bitbucket,Git,Bitbucket,今天我们在工作中遇到了一些尴尬的事情,一个新的合作伙伴进行了提交和推送,并覆盖了存储库中的所有内容 现在我需要回到灾难发生前的状态 是否可以删除对远程存储库的提交 如果没有,我可以提交(例如: 0231c10)作为主分支的负责人?您可以在master分支上使用git reset--hard 0231c10执行此操作。您可以在master分支上使用git reset--hard 0231c10执行此操作。如果使用一个新提交完成对存储库的重写,然后最好使用命令git revert将其还原。通过还原,

今天我们在工作中遇到了一些尴尬的事情,一个新的合作伙伴进行了提交和推送,并覆盖了存储库中的所有内容

现在我需要回到灾难发生前的状态

是否可以删除对远程存储库的提交

如果没有,我可以提交(例如:
0231c10)作为主分支的负责人?

您可以在
master
分支上使用
git reset--hard 0231c10
执行此操作。

您可以在
master
分支上使用
git reset--hard 0231c10
执行此操作。

如果使用一个新提交完成对存储库的重写,然后最好使用命令
git revert
将其还原。通过还原,将创建一个新的提交,它只会还原在提交中所做的更改

使用这种方法,您的历史上仍然会有错误的提交,但如果您没有足够的经验,这是解决此类问题的最佳方法,因为这很容易,否则,使用类似于git reset--hard 0231c10的方法时,您需要使用强制推送选项,这不是非常安全的操作,即使您准备好承担此风险,您也需要知道,您需要要求所有提交者对其环境执行不太安全的操作,像这样
git-fetch-origin
,然后在master-branch
git-reset——硬origin/master


但是,如果您认为您已经准备好在存储库中重写历史,那么请使用另一个答案中建议的
git reset--hard 0231c10

如果使用一个新的提交完成了存储库的重写,那么最好使用命令
git revert
将其还原。通过还原,将创建一个新的提交,它只会还原在提交中所做的更改

使用这种方法,您的历史上仍然会有错误的提交,但如果您没有足够的经验,这是解决此类问题的最佳方法,因为这很容易,否则,使用类似于git reset--hard 0231c10的方法时,您需要使用强制推送选项,这不是非常安全的操作,即使您准备好承担此风险,您也需要知道,您需要要求所有提交者对其环境执行不太安全的操作,像这样
git-fetch-origin
,然后在master-branch
git-reset——硬origin/master


但是,如果您认为您已经准备好在存储库中重写历史,那么请使用另一个答案中提出的
git reset--hard 0231c10

通常,在已发布的回购中,更安全的做法是执行
git revert
然后执行
git push
。还有其他解决办法

  • 不需要对本地回购进行任何更改,您也可以执行类似于git push-f origin 0231c10:master的操作

  • git重置——硬的
    git-push--force


  • 通常,在已发布的回购协议中,更安全的做法是执行
    git revert
    然后
    git push
    。还有其他解决办法

  • 不需要对本地回购进行任何更改,您也可以执行类似于git push-f origin 0231c10:master的操作

  • git重置——硬的
    git-push--force


  • 你现在有个大问题。我想提出以下解决方案。如果您仍然没有推动或拉离“灾难”回购协议。您/某些人仍然拥有“正确”的存储库。因此,您可以完全删除远程存储,创建一个新的空repo,并将正确的repo推送到新的远程存储。如果在该远程存储库中启用了强制推送,那么最好检查推送不是一个
    push-f
    。如果您的分支在存储库中处于良好状态,用力推,你现在有个大问题。我想提出以下解决方案。如果您仍然没有推动或拉离“灾难”回购协议。您/某些人仍然拥有“正确”的存储库。因此,您可以完全删除远程存储,创建一个新的空repo,并将正确的repo推送到新的远程存储。如果在该远程存储库中启用了强制推送,那么最好检查推送是否为
    push-f
    。如果您的分支在存储库中处于良好状态,请执行强制推送。