第一次提问。我正在做一个关于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
答案 0 :(得分:1)
您应该在尝试合并之前提交更改。当Git尝试执行合并时,它将把结果(包括任何冲突)写入您的工作树中。但是,如果您有未提交的更改,这样做会破坏它们,因此Git将中止,以免导致您丢失数据。
如果提交更改并且工作树整洁,则Git会知道您已保存工作副本,并且如果您不喜欢合并的结果或存在冲突,则不会丢失数据。
正如您所注意到的,还可以存储您的更改并在以后重新应用。这也将使您的工作树变得干净,这将使Git感到高兴。哪种选择正确取决于您在做什么。如果您的更改在逻辑上属于您所在的分支,并且可以保留当前状态,那么请提交它;否则,请提交该更改。如果您以后想在其他分支上使用它,则将其存放。