抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

本地执行 git pull 命令时提示:

1
2
3
4
5
6
error: Your local changes to the following files would be overwritten by merge:
cs/fr.cs
file/index.html
Please commit your changes or stash them before you merge.
Aborting
Updating 6664220..8779ee7

更新内容与本地文件有冲突,解决办法如下

忽略本地修改

1
2
3
4
5
$ git fetch --all

$ git reset --hard origin/dev

$ git pull

本地修改未 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

执行成功后可以看到代码拉取成功。

三. 还原暂存代码

  1. 执行 git stash list命令查看 stash 列表,显示类似这样的:

    1
    stash@{0}: WIP on master:...

    如果有多个暂存记录,会显示类似这样的列表:

    1
    2
    3
    stash@{0}: WIP on master: ...
    stash@{1}: WIP on master: ...
    stash@{2}: WIP on master: ...
  2. 执行 git stash pop stash@{0}

    恢复前面执行暂存的代码,这一步会执行文件内容合并,而且移除当前 stash。如果执行合并成功,那就可以继续正常执行 git 命令,比如 git add fileName,如果合并有冲突就先解决冲突,再来正常执行 git 命令。

评论