鉴于以下情况:
A
[HEAD
分指向c0
] l0
],推送到原点并创建PR HEAD
指向c1
)并反对它(因此我有c0
- > c1
- > { {1}})l0
]更改并尝试推送到原点此时我的推动被拒绝,因为我的本地和我的起源已经分歧,我发现我需要强迫我的本地主人到我的原点,以便PR正确(即只包含l1
和l0
)。
我的问题是强制推力是否是常见的做法,还是我在某个地方犯了错误?我理解它的方式一旦我推动我的起源并从上游本地变换历史分歧和力量是必需的。
更新
我已经知道我犯了一个错误,那就是我在PR期间的变形。 “forker”应该从上游合并,不会在原点上重写他的历史,因此不会引起任何问题
我已经接受了下面的答案,因为这个问题可能没有明确表达,以反映我正在质疑包括合并与基础的整个过程
答案 0 :(得分:3)
在这种情况下,强制推力确定。 Git阻止您正常推动安全机制,以防止您意外覆盖原始分支。但在这种情况下,你实际上确实想要覆盖它。
强制推送不一定是个好主意的唯一另一种情况是,如果您的分支与其他人共享,他们拥有旧提交的副本。即使在这种情况下,强制推送也是一种可行的选择,但它只是意味着每个拥有旧提交的人都必须在新的提交之上重做或重新设置他们的工作,这可能很难协调,并且很多额外的工作。