Ald*_*ath 9

我建议你创建一个实验性的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)


Fle*_*tch 6

回答标题中的问题:不,但是您可以使用它通过一个命令来实现您想要的:

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:为了保持存储库干净,您的提交始终位于树的顶部,直到您将它们推送到远程服务器。该命令会将所有尚未推送的提交应用到远程树提交之上,从而使您的提交能够连续且没有分支