什么是正确的方法?
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
来暂存跟踪的和已修改的文件。不要将全新文件包含到存储库中。这会改变命令的顺序吗?
答案 0 :(得分:62)
pull = fetch + merge。
你需要在合并之前提交你所做的事情。
提交后拉。
答案 1 :(得分:60)
我认为最好的方法是:
存储您的本地更改:
git stash
将分支更新为最新代码
git pull
将您的本地更改合并到最新代码中:
git stash apply
添加,提交并推送您的更改
git add
git commit
git push
根据我的经验,这是Git阻力最小的途径(无论如何在命令行上)。
答案 2 :(得分:44)
我建议尽可能经常从远程分支撤出,以尽量减少大型合并和可能的冲突。
话虽如此,我会选择第一个选项:
git add foo.js
git commit foo.js -m "commit"
git pull
git push
在提取之前提交您的更改,以便在提取期间将提交与远程更改合并。这可能会导致您可以开始处理的冲突,知道您的代码已经提交,如果出现任何问题,您必须因任何原因中止合并。
我确信有人会不同意我的观点,我认为没有任何正确的方式来完成合并流程,只有最适合人们使用的方法。
答案 3 :(得分:4)
我认为git pull --rebase
是最简单的方法,可以在远程提交的基础上设置您当地的最新提交,而这些提交是您在某一点上没有的。
因此,每次您想要开始进行更改时,都不必拉动。
答案 4 :(得分:3)
您希望更改位于远程分支的当前状态之上。所以你可能想要在自己承诺之前就拉上右边。之后,再次推送您的更改。
只要与远程分支没有任何冲突,“脏”本地文件就不是问题。如果存在冲突,则合并将失败,因此在进行本地更改之前不存在拉动风险或危险。
答案 5 :(得分:0)
对我来说最好的方法是:
或者您可以将新创建的分支推送到远程上并在那里合并(如果您这样做,那么最后需要从远程主节点上拉出
)