【发布时间】:2012-08-23 21:47:08
【问题描述】:
我这里有点情况。我 rebase 了一个 dev 分支,并尝试推送它,但它被拒绝(非快进)...既然我不知道为什么,我来找你...
我做了什么:
git checkout dev
git rebase G
# Here, I had to manually merge some files
# Result (in gitk) was :
# A---B---C remote/dev A'---B'---C' dev
# / /
# D---E---F------------------G---H remote/master
git push remote dev
知道为什么我的推送是“非快进”并因此被拒绝吗?
【问题讨论】:
-
尝试拉remote/dev之前,我觉得你应该在本地合并,而不是远程(也就是说远程分支应该集成在你的,而不是你的远程分支)
-
@Vince:拉(合并)遥控器将合并旧历史。 OP 可能想要摆脱的历史
-
是的,你是对的,但合并策略是可配置的。我想@knitl 解决方案仍然有效。
-
@Vince:是的,它们是可配置的,但大多数(全部?)合并策略都会记录合并的两个父节点,因此旧的历史记录会记录在合并提交中。
-
这有多糟糕?我认为有一种方法可以知道选择了哪个,并且变基之前的代码也可能很有趣(它可能只是一个不同的用例)
标签: git git-rebase git-push