2017-01-03 181 views

回答

-2

混帐拉之间的区别:你居然发出混帐取+混帐合并命令,这将导致一个额外的在你的提交日志提交和丑陋的合并气泡。

git pull --rebase:为了保持存储库清洁,您的提交总是在树顶部,直到您将它们推送到远程服务器。该命令将应用所有您尚未推送的提交顶部的远程树提交允许您的提交是连续的,并且没有分支

8

我建议您创建一个实验回购并尝试命令。自己试验会让学习变得更容易。

您会注意到命令序列git stash; git pull; git stash pop将移动未提交更改为主分支的更新头。 (这也将做一个正常的合并,所以提交的修改将被合并,而不是重建基础,假设默认gitconfig)

然而,git pull -rebase将移动具有已经致力于到主分支的更新水头变化。如果您尝试运行一个脏活树这个命令,你会看到错误消息:

Cannot pull with rebase: You have unstaged changes. 
Please commit or stash them. 
3

答案很简单,在这个主题的问题是“没有”。

git pull --rebasegit pull之间的区别是,第一做了fetch + rebase,第二个是fetch + merge,除非你有一个非默认混帐配置,告诉git pullrebase,而不是合并。在这种情况下,这两个命令将是相同的。

这两个命令之间的差异并不以任何方式影响需要存储和取消未提交的更改。如果你有一个肮脏的工作树,他们都需要这个,否则他们会错误的,告诉你提交或隐藏你的修改。