1

我有一个 git 事故。

我在一个"feature1"
我想做的本地分支上工作,"git push not-origin feature1:master"
而不是我不小心做了"git push origin feature1:master"

它造成了很多混乱并使提交交错(并不是说我可以只恢复特定的提交)

考虑到我在本地没有 master 的更新版本,有什么办法可以恢复这种情况,所以我不能强行推送它?

PS:我没有找到任何方法来阻止推送到大师而不升级到企业,这对这个餐厅来说太贵了......

4

1 回答 1

3

考虑到我在本地没有 master 的更新版本,有什么办法可以恢复这种情况,所以我不能强制推送它?

我认为你错了;只要您不进行强制推送(带有--forced标志的推送),git push只有当远程引用位于当前引用的路径上时,才会成功,即您的当前分支没有偏离远程主分支。

这意味着您的分支feature1有一些 commit C,这就是master指向的内容。

因此,您需要做的就是弄清楚C,使用 创建一个新分支git branch master_recovered C,然后使用 强制将此分支推送到 master git push -f origin master_recovered:master

于 2015-01-13T13:49:32.977 回答