如何管理本地git和github之间的冲突

时间:2019-07-05 13:28:07

标签: git github git-pull

第一次提问。我正在做一个关于git的教程,并介绍了服务器上的代码已更新且本地代码已独立更新的实例,因此发生冲突。

在视频中,讲师进行了git pull并尝试获取文件。对话框获取详细信息,然后说

Auto-merging hello.html

但是我的那个时候说

error: Your local changes to the following files would be overwritten by merge:
        hello.html

我最终无法推送或拉出更改,直到解决了冲突。我最终不得不做

git stash
git pull
git stash apply --index

我是否需要对本地git进行配置才能使其尝试自动合并?

为清楚起见,我得到

$ git pull
error: Your local changes to the following files would be overwritten by merge:
        hello.html
Please commit your changes or stash them before you merge.
Aborting
Updating 7ed9dbb..0525225

Erik@DESKTOP-TI7OP0E MINGW64 /e/gitrepo/webcourse (master)
$ git commit -m "save"
On branch master
Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.
  (use "git pull" to update your local branch)

Changes not staged for commit:
        modified:   hello.html

no changes added to commit

1 个答案:

答案 0 :(得分:1)

您应该在尝试合并之前提交更改。当Git尝试执行合并时,它将把结果(包括任何冲突)写入您的工作树中。但是,如果您有未提交的更改,这样做会破坏它们,因此Git将中止,以免导致您丢失数据。

如果提交更改并且工作树整洁,则Git会知道您已保存工作副本,并且如果您不喜欢合并的结果或存在冲突,则不会丢失数据。

正如您所注意到的,还可以存储您的更改并在以后重新应用。这也将使您的工作树变得干净,这将使Git感到高兴。哪种选择正确取决于您在做什么。如果您的更改在逻辑上属于您所在的分支,并且可以保留当前状态,那么请提交它;否则,请提交该更改。如果您以后想在其他分支上使用它,则将其存放。