【发布时间】:2017-02-08 15:35:27
【问题描述】:
案例类似:Git: Discard all changes on a diverged local branch。
区别:
- 我想丢弃已推送到远程的更改 存储库,
-
git push origin foo:foo --force被拒绝(原 不允许强制推送)。
给定提交图:
A--B--C--O1--O2--O3 (foo)
\
L1--L2--L3 (origin/foo)
如果可能,我想实现这一目标:
A--B--C--O1--O2--O3 (foo origin/foo)
如果以上是不可能的,那么以下对我来说是可以的:
A--B--C--O1--O2--O3--M1 (foo)
\ /
L1--L2--L3 (origin/foo)
但我希望 git diff M1..03 为空,即丢弃 origin/foo 中引入的所有更改。而-s ours 策略也无济于事,因为这仅适用于冲突,非冲突更改仍将添加到M1。
我该怎么做?
SOLUTION(Mohan Kumar P)
删除远程分支并推送。 git 如果被跟踪,应该自动创建远程分支(检查git branch -vv)。
要实现这一点:
A--B--C--O1--O2--O3 (foo origin/foo)
\
L1--L2--L3
类型:
git push origin --delete foo
git checkout foo # Git ≥ 1.6.6.
git push origin foo
【问题讨论】:
标签: git git-merge git-remote