Git告诉我拉,然后提交,然后拉?

egi*_*dra 10 git github

我正在尝试推动新的更改,但我有一个冲突的文件.尝试推送后,我收到以下错误:

Merge the remote changes (e.g. 'git pull') before pushing again.  See the
'Note about fast-forwards' section of 'git push --help' for details.
Run Code Online (Sandbox Code Playgroud)

好的,所以我们需要使用git pull.我尝试使用git pull然后我收到此错误:

error: Your local changes to the following files would be overwritten by merge:
    db/profile_edit.php
Please, commit your changes or stash them before you can merge.
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试提交时,我会回到第一个错误.我该怎么办?远程仓库的更改比我本地计算机上的更新.那么,我如何使用diff工具打开它并进行更改然后告诉git我已经进行了更改以便让我推动更改?

Gab*_*ira 23

试着做

$ git pull --rebase
Run Code Online (Sandbox Code Playgroud)

在您的之前提取远程更改,然后提交.看看它是否有效.

如果这不起作用,请尝试以下方法:

$ git stash
$ git pull --rebase
$ git stash pop
Run Code Online (Sandbox Code Playgroud)

要在更改中保存更改,请在stash工作存储库中应用远程提交,然后再次将更改(保存到stash)应用于工作存储库中.


vha*_*lac 8

首先,我想如果你git add那时候git commit,你的本地回购将足够干净,可以做到git pull.

但是,如果可能有更改,您不想提交,直到您看到上游发生的情况,您可以使用git stash.它会暂时清理你的工作目录并保存你的更改,所以你可以拉(我建议git pull --rebase避免合并点 - 但这是个人品味问题).一旦您完成了上游更改,您就可以使用恢复本地修改git stash pop.在清理冲突并消除不必要的更改后,您可以添加,提交,然后最终推送.


Tek*_*kub 5

你让自己对这些命令感到困惑.

git commit将更改保存到git的数据库中 git pull会将远程提交带入您的仓库

你试图拉开与未提交的修改,所以Git是要求你提交的第一个(或git stash他们离开),以便它可以合并你与远程那些局部变化.