git pull --rebase vs git rebase :有什么危险?
git pull --rebase vs git rebase : what's the danger?
我不明白 git pull --rebase
和 git rebase
之间的区别,没有任何其他选择。
我不明白它们是安全的、好的做法还是非常危险。
我可以通过在本地执行 git pull --rebase
来打破提交历史记录吗?
我完全不推荐变基,只推荐私有分支。 private 我的意思是你很确定只有你拉动的分支。
变基将分支的起点更改为某个较新的提交,从而将所有提交合并到该点。这可能会导致与在其存储库中拥有旧分支基础的人员发生合并冲突。我建议始终进行纯合并,仅在某些情况下(例如功能分支)保留变基。
关于您的问题:
- git rebase rebase 你想要的分支。
- git pull --rebase 在你拉取的分支中执行一个 fetch + rebase。通常拉会获取+合并。
git pull --rebase
是 git fetch
的 shorthand,然后是普通的 git rebase
,而不是默认的 git merge
。实际区别在于,仅应用后者不会 fetch 在将代码变基之前来自远程的任何新提交,因为它只会考虑本地存储库已经知道的内容。
还值得一提的是,合并冲突的出现方式与常规 git 拉取方式相同。
我不明白 git pull --rebase
和 git rebase
之间的区别,没有任何其他选择。
我不明白它们是安全的、好的做法还是非常危险。
我可以通过在本地执行 git pull --rebase
来打破提交历史记录吗?
我完全不推荐变基,只推荐私有分支。 private 我的意思是你很确定只有你拉动的分支。
变基将分支的起点更改为某个较新的提交,从而将所有提交合并到该点。这可能会导致与在其存储库中拥有旧分支基础的人员发生合并冲突。我建议始终进行纯合并,仅在某些情况下(例如功能分支)保留变基。
关于您的问题:
- git rebase rebase 你想要的分支。
- git pull --rebase 在你拉取的分支中执行一个 fetch + rebase。通常拉会获取+合并。
git pull --rebase
是 git fetch
的 shorthand,然后是普通的 git rebase
,而不是默认的 git merge
。实际区别在于,仅应用后者不会 fetch 在将代码变基之前来自远程的任何新提交,因为它只会考虑本地存储库已经知道的内容。
还值得一提的是,合并冲突的出现方式与常规 git 拉取方式相同。