Raj*_*aja 11 git rebase git-stash git-pull
有什么区别
git pull --rebase
Run Code Online (Sandbox Code Playgroud)
和
git stash
git pull
git stash pop
Run Code Online (Sandbox Code Playgroud)
我建议你创建一个实验性的repo并尝试命令.自己尝试使学习更容易.
您会注意到命令序列git stash; git pull; git stash pop
将未提交的更改移动到主分支的更新头部.(它也会进行正常的合并,因此假设默认gitconfig,已提交的更改将合并,而不是重新绑定)
但是,git pull -rebase
将移动已经提交到主分支的更新头部的更改.如果您尝试使用脏工作树运行此命令,您将看到错误消息:
Cannot pull with rebase: You have unstaged changes.
Please commit or stash them.
Run Code Online (Sandbox Code Playgroud)
回答标题中的问题:不,但是您可以使用它通过一个命令来实现您想要的:
git pull --rebase --autostash
Run Code Online (Sandbox Code Playgroud)
更多信息:https://csheng.info/2017/01/26/git-tip-autostash-with-git-pull-rebase.html
小智 -2
git pull:您实际上发出了 git fetch + git merge 命令,这将导致额外的提交和提交日志中丑陋的合并气泡。
git pull --rebase:为了保持存储库干净,您的提交始终位于树的顶部,直到您将它们推送到远程服务器。该命令会将所有尚未推送的提交应用到远程树提交之上,从而使您的提交能够连续且没有分支