本地执行 git pull
命令时提示:
1 | error: Your local changes to the following files would be overwritten by merge: |
更新内容与本地文件有冲突,解决办法如下
忽略本地修改
1 | git fetch --all |
本地修改未 commit
如果本地修改少
1 | -> revert(把自己的代码取消) -> 重新pull -> 在最新代码上修改 -> [pull确认最新] -> commit&push |
本地修改多
方法1
1 | -> stash save(把自己的代码隐藏存起来) -> 重新pull -> stash pop(把存起来的隐藏的代码取回来 ) -> 代码文件会显示冲突 -> 右键选择edit conficts,解决后点击编辑页面的 mark as resolved-> commit&push |
方法2
1 | -> stash save(把自己的代码隐藏存起来) -> 重新pull -> stash pop(把存起来的隐藏的代码取回来 ) -> 代码文件会显示冲突 -> 右键选择resolve conflict -> 打开文件解决冲突 ->commit&push |
本地修改已 commit
修改量小,选择 reset
1 | -> reset(回退到未修改之前,选hard模式,把自己的更改取消) -> 重新pull -> 在最新代码上修改 -> [pull确认最新] -> commit&push |
修改量大,选择 merge
一. 暂存本地内容
git stash
stash 只是执行本地操作,不会 push 到远程服务器,可使用 git stash save
命令代替 git stash
添加 message信息。
git stash save "Update index-stash"
二. 执行 pull 命令
git pull
执行成功后可以看到代码拉取成功。
三. 还原暂存代码
执行
git stash list
命令查看 stash 列表,显示类似这样的:1
stash@{0}: WIP on master:...
如果有多个暂存记录,会显示类似这样的列表:
1
2
3stash@{0}: WIP on master: ...
stash@{1}: WIP on master: ...
stash@{2}: WIP on master: ...执行
git stash pop stash@{0}
恢复前面执行暂存的代码,这一步会执行文件内容合并,而且移除当前 stash。如果执行合并成功,那就可以继续正常执行 git 命令,比如
git add fileName
,如果合并有冲突就先解决冲突,再来正常执行 git 命令。