我什么时候需要做“ git pull”,在“ git add,git commit”之前还是之后?

正确的方法是什么?

git add foo.js
git commit foo.js -m "commit"
git pull
git push

或者

git pull
git add foo.js
git commit foo.js -m "commit"
git push

或者

git add foo.js
git pull
git commit foo.js -m "commit"
git push

UPD:

我忘了提到,在这种情况下,我使用 git add处理 追踪到了修改过的文件。不要将一个全新的文件包含到存储库中。这会改变命令的顺序吗?

185180 次浏览

拉取 + 合并。

您需要在合并之前提交已经完成的操作。

所以一次又一次的承诺。

我建议尽可能经常地从远程分支中撤出,以便将大型合并和可能的冲突降到最低。

话虽如此,我还是选择第一种:

git add foo.js
git commit foo.js -m "commit"
git pull
git push

在拉取之前提交更改,以便在拉取期间将提交与远程更改合并。这可能会导致冲突,您可以在知道代码已经提交的情况下开始处理这些冲突,如果出现任何错误,并且由于任何原因必须中止合并。

我相信有人会不同意我,但是,我不认为有任何 正确的方式来做这个合并流程,只有什么工作最适合人。

您希望您的更改位于远程分支的当前状态之上。所以你可能想在你承诺之前拉一下。在那之后,再次推动你的改变。

只要与远程分支没有任何冲突,“脏”本地文件就不是问题。但是,如果存在冲突,合并将失败,因此在提交本地更改之前进行拉动没有风险或危险。

我认为最好的方法是:

隐藏您的本地更改:

git stash

将分支更新为最新的代码

git pull

将本地更改合并到最新代码中:

git stash apply

添加、提交和推送您的更改

git add
git commit
git push

根据我的经验,这是使用 Git (无论如何在命令行上)阻力最小的方法。

我认为 git pull --rebase是在远程提交之上设置本地最近提交的最干净的方法,而在某个时刻你没有这样的远程提交。

这样你就不用每次想要做出改变的时候就拉一下。

对我来说最好的办法是:

  1. 创建新的分支,结帐
  2. 创建或修改文件,git 添加,git 提交
  3. 返回到主分支,并从远程进行拉(以获得最新的主更改)
  4. 将新创建的分支与 master 合并
  5. 删除新创建的分支
  6. 把主控器推到遥控器

或者您可以在远程上推新创建的分支并在那里合并(如果您这样做,最后您需要从远程主服务器拉)