如何管理本地 git 和 github 之间的冲突
How do I manage conflicts between local git and github
第一次提问。我正在做一个关于 git 的教程,涵盖了服务器上的代码已经更新和本地代码已经独立更新因此存在冲突的实例。
在视频中,讲师做了一个 git 拉,这试图获取文件。对话框获取详细信息然后说
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
您应该在尝试合并之前提交更改。当 Git 尝试执行合并时,它会将结果(包括任何冲突)写入您的工作树。但是,如果您有未提交的更改,这样做会破坏它们,因此 Git 将中止以免导致您丢失数据。
如果您提交更改并且您的工作树是干净的,那么 Git 知道您有一个保存的工作副本,如果您不喜欢合并的结果或者是否有冲突,你不会丢失数据。
正如您所注意到的,也可以存储您的更改并在以后重新应用它们。这也将使您的工作树变得干净,这将使 Git 快乐。哪个选择是正确的取决于你在做什么。如果您的更改在逻辑上属于您所在的分支,并且您现在可以保留它,那么就提交它;如果您想稍后或在另一个分支上处理它,请将其隐藏起来。
第一次提问。我正在做一个关于 git 的教程,涵盖了服务器上的代码已经更新和本地代码已经独立更新因此存在冲突的实例。
在视频中,讲师做了一个 git 拉,这试图获取文件。对话框获取详细信息然后说
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
您应该在尝试合并之前提交更改。当 Git 尝试执行合并时,它会将结果(包括任何冲突)写入您的工作树。但是,如果您有未提交的更改,这样做会破坏它们,因此 Git 将中止以免导致您丢失数据。
如果您提交更改并且您的工作树是干净的,那么 Git 知道您有一个保存的工作副本,如果您不喜欢合并的结果或者是否有冲突,你不会丢失数据。
正如您所注意到的,也可以存储您的更改并在以后重新应用它们。这也将使您的工作树变得干净,这将使 Git 快乐。哪个选择是正确的取决于你在做什么。如果您的更改在逻辑上属于您所在的分支,并且您现在可以保留它,那么就提交它;如果您想稍后或在另一个分支上处理它,请将其隐藏起来。