Git远程推送的最佳实践

时间:2012-03-22 17:00:24

标签: git github

通常每当我想将更改推送到远程Git时,我都会按照以下步骤操作:

git stash
git pull
git stash pop
//Resolve conflicts if any
git push

但是我也看到我的队友做了以下事情:

git pull --rebase
//Resolve conflicts if any
git push

我只想知道彼此有什么好处。或者即使有任何其他方法也是好的。

2 个答案:

答案 0 :(得分:3)

这取决于您的需求:rebase生成线性历史记录,而pull可能会导致合并提交。我在答案中详细描述了https://stackoverflow.com/a/804178/520162

你的方法只相当于git pull --rebase,只要你自上次拉动以来没有提交任何东西。


旁注:

如果你真的那样使用Git,你就错了。它与SVN不同,您必须确保在您提交之前,您的仓库与上游仓库同步。

通常的Git工作流程是:

  • fetch上游
  • 讲述你的故事(即做一个bug修复,一个改进,无论如何;做一些commit s)
  • 一旦你完成了再次fetch上游的时间
  • mergerebase您对上游的更改
  • push到上游

也许你应该浏览一下Git for beginners: The definitive practical guide

答案 1 :(得分:0)

你想避免重组。这主要适用于永久性分支机构。主题分支可以使用其中之一。

要添加的另一件事是

git config --global push.default current

这可确保您在发出push命令时仅按下当前分支。