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

问题描述 投票:68回答:5

什么是正确的方法?

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来播放跟踪和修改过的文件。不要将全新文件包含到存储库中。这会改变命令的顺序吗?

git
5个回答
62
投票

pull = fetch + merge。

你需要在合并之前提交你所做的事情。

提交后拉。


60
投票

我认为最好的方法是:

存储您的本地更改:

git stash

将分支更新为最新代码

git pull

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

git stash apply

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

git add
git commit
git push

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


44
投票

我建议尽可能经常从远程分支拉出来,以尽量减少大型合并和可能的冲突。

话虽如此,我会选择第一个选项:

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

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

我敢肯定有人会不同意我的观点,我认为没有任何正确的方法来做这个合并流程,只有最适合人们的方法。


4
投票

我认为git pull --rebase是一种最简单的方法,可以在远程提交的基础上设置本地最近的提交,而这些提交在某些时候是您没有的。

因此,每次您想要开始进行更改时,都不必拉动。


3
投票

您希望更改位于远程分支的当前状态之上。所以你可能想要在自己承诺之前就拉上右边。之后,再次推送您的更改。

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

© www.soinside.com 2019 - 2024. All rights reserved.