126

什么是正确的方法?

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

升级版:

我忘了提到,在这种情况下,我git add用来暂存跟踪修改的文件。不要在存储库中包含全新的文件。这会改变命令的顺序吗?

4

6 回答 6

135

我认为最好的方法是:

存储本地更改:

git stash

将分支更新为最新代码

git pull

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

git stash apply

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

git add
git commit
git push

以我的经验,这是使用 Git 阻力最小的途径(无论如何在命令行上)。

于 2015-10-22T13:07:50.423 回答
85

拉=获取+合并。

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

所以提交后拉。

于 2013-08-30T09:16:40.733 回答
56

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

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

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

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

我敢肯定有人会不同意我的观点,我认为没有任何正确的方法可以执行此合并流程,只有最适合人们的方法。

于 2013-08-30T09:19:25.003 回答
9

我认为这git pull --rebase是将本地最近提交设置在您在某个时间点没有的远程提交之上的最干净的方法。

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

于 2017-11-13T14:34:36.100 回答
3

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

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

于 2013-08-30T09:22:31.197 回答
0

对我来说最好的方法是:

  1. 创建新分支,结帐到它
  2. 创建或修改文件,git add,git commit
  3. 返回主分支并从远程拉取(以获取最新的主更改)
  4. 将新创建的分支与 master 合并
  5. 删除新创建的分支
  6. 将 master 推送到远程

或者您可以将新创建​​的分支推送到远程并在那里合并(如果您这样做,最后您需要从远程主控中提取)

于 2020-12-14T16:21:25.230 回答