还原 git 推送到错误的分支
Revert git push to wrong branch
我遇到了 git 事故。
我在本地分支机构工作 "feature1"
我想做 "git push not-origin feature1:master"
相反,我不小心做了 "git push origin feature1:master"
.
它弄得一团糟,使提交交错(并不是说我只能恢复特定的提交)
考虑到我在本地没有 master 的更新版本所以我不能强制推送它,有什么办法可以恢复吗?
PS:我没有找到任何方法来阻止推送到 master 而不升级到企业版,这对于这个特性来说太昂贵了...
Is there any way to revert this considering I did not have an updated version of master locally so i can't just force push it?
我认为你错了;只要你没有强制推送(带有 --forced
标志的推送),只有当远程引用位于当前引用的路径上时,git push
才会成功,即你当前的分支没有从您的远程主分支分支。
这意味着您的分支 feature1
有一些提交 C
,这正是 master
指向的内容。
所以你需要做的就是弄清楚C
,使用git branch master_recovered C
创建一个新分支,然后使用git push -f origin master_recovered:master
.
强制将这个分支推送到master
我遇到了 git 事故。
我在本地分支机构工作 "feature1"
我想做 "git push not-origin feature1:master"
相反,我不小心做了 "git push origin feature1:master"
.
它弄得一团糟,使提交交错(并不是说我只能恢复特定的提交)
考虑到我在本地没有 master 的更新版本所以我不能强制推送它,有什么办法可以恢复吗?
PS:我没有找到任何方法来阻止推送到 master 而不升级到企业版,这对于这个特性来说太昂贵了...
Is there any way to revert this considering I did not have an updated version of master locally so i can't just force push it?
我认为你错了;只要你没有强制推送(带有 --forced
标志的推送),只有当远程引用位于当前引用的路径上时,git push
才会成功,即你当前的分支没有从您的远程主分支分支。
这意味着您的分支 feature1
有一些提交 C
,这正是 master
指向的内容。
所以你需要做的就是弄清楚C
,使用git branch master_recovered C
创建一个新分支,然后使用git push -f origin master_recovered:master
.