4

Sorry, just another "rebase" question but I'm confused about that.
Form time to time I push my commits on the develop branch to remote (origin). Now one thing always mentioned with rebase is: "never rebase if you have pushed your changes".
This means, I could never ever rebase my develop branch, only merge it?

Working on a feature-branch is clear, if I haven't pushed that, I could rebase instead of merge. My question only points to the develop branch.

4

4 回答 4

3

阅读“Pro Git”一书中的“Rebase 的危险” ——它提供了很好的图片解释。git-rebase手册页还包含“从上游变基中恢复”部分),这使您站在可能受您的变基影响的每个人的立场上。;-) 还包括漂亮的 ASCII 艺术。

不,“永远不要对推送到公共存储库的内容进行变基”不应该被视为教条:有时,如果这种变基清楚地传达给公共存储库的其他用户,这是一种有效的方法。例如,看看当前的 Git 维护者对他的“pu”分支是怎么说的(这个备忘录有些过时了,这个文本的新版本没有直接提到变基,所以我决定链接到这个旧版本)。

于 2012-10-11T07:46:30.813 回答
3

如果没有人使用您的远程仓库克隆/更新他/她自己的本地仓库,您可以重新设置基准(并强制下一次推送)。
如果其他人从您的远程仓库中拉出,并且您强制推送您的 rebase 分支,您会发布新的历史记录,迫使他们执行更复杂的重置操作(他们必须将自己的本地分支重置为新的远程分支历史记录,并且然后重新应用他们自己的提交)。
对于公共远程仓库,强制推送可能会导致问题;)

于 2012-10-11T07:17:29.990 回答
1

你有什么“种类”的分支并不重要(毕竟它只是一个概念,对于 git,一个分支就是一个分支)。一旦你推送了任何更改,不要做 rebase,否则提交的哈希值会改变。

于 2012-10-11T07:10:42.050 回答
0

您不应该对推送的提交进行变基。但是,-i对未推送的提交进行变基 ( ) 是完全可以的。

于 2012-10-11T08:23:37.683 回答