git pull --rebase vs git rebase:危险是什么?

时间:2016-06-24 15:57:54

标签: git git-rebase git-pull

我不理解git pull --rebasegit rebase之间的区别,没有任何其他选择。

我不明白他们是安全的,良好的做法,还是非常危险的。

我可以通过在本地执行git pull --rebase来打破历史记录吗?

2 个答案:

答案 0 :(得分:18)

我不建议根据私人分支进行变基。通过私人我的意思是分支,你很确定只有你已经拉过。

rebase将分支的起始点更改为某个较新的提交,从而将所有提交合并到该点。这可能会导致与其存储库中存在旧分支基础的人员发生合并冲突。我总是建议使用简单合并,并且只为某些情况(例如特征分支)留下变基。

关于你的问题:

  • git rebase 重新绑定您想要的分支。
  • git pull --rebase 在您提取的分支中执行fetch + rebase。通常情况下会拉取+合并。

答案 1 :(得分:12)

git pull --rebasegit fetch的简写,然后是普通git rebase的简写,而不是默认的git merge。实际的不同之处在于,在重新定义代码之前,仅应用后者不会fetch来自远程的任何新提交,因为它只会考虑您的本地存储库已经知道的内容。

值得一提的是,合并冲突的出现方式与常规git pull相同。