通常每当我想将更改推送到远程Git时,我都会按照以下步骤操作:
git stash
git pull
git stash pop
//Resolve conflicts if any
git push
但是我也看到我的队友做了以下事情:
git pull --rebase
//Resolve conflicts if any
git push
我只想知道彼此有什么好处。或者即使有任何其他方法也是好的。
答案 0 :(得分:3)
这取决于您的需求:rebase
生成线性历史记录,而pull
可能会导致合并提交。我在答案中详细描述了https://stackoverflow.com/a/804178/520162
你的方法只相当于git pull --rebase
,只要你自上次拉动以来没有提交任何东西。
旁注:
如果你真的那样使用Git,你就错了。它与SVN不同,您必须确保在您提交之前,您的仓库与上游仓库同步。
通常的Git工作流程是:
fetch
上游commit
s)fetch
上游的时间merge
或rebase
您对上游的更改push
到上游答案 1 :(得分:0)
你想避免重组。这主要适用于永久性分支机构。主题分支可以使用其中之一。
要添加的另一件事是
git config --global push.default current
这可确保您在发出push命令时仅按下当前分支。