场景
- 在git pull的时候,如果本地代码有改动,而服务器上代码也已经被其他人更新过,这个时候是无法成功pull的,可以通过以下四个步骤解决
- git stash
- 将本地所有修改暂时存储起来
- 使用git stash list 查看保存信息
- git pull --rebase
- 暂存了本地修改之后使用pull拉取
- git stash pop stash@{0}
- 还原暂存的内容
- 如果只有一次 git stash操作,在还原的本地修改时,直接使用 git stash pop 即可
- 解决文件中的冲突部分
- 如果有文件冲突,冲突地方git会自动指明具体冲突代码,自行修改即可
附:git常用操作
- 正常情况,修改工作区文件后add->commit->push
- git status
- git stash 或者git stash save "message..."
- git pull --rebase
- git stash pop
- git add . 或者git add filename
- . 表示所有文件
- git commit -m "message..."
- git push
- 撤销工作区的文件修改(暂存区文件覆盖工作区文件)
- git checkout -- filename
- 当修改的文件已经add到暂存区,需要撤销此次添加(撤销上一次git add filename操作)
- git reset -- filename或者git reset HEAD filename
- 撤销暂存区内所有文件改动:
- git rest 或者git reset HEAD git rest HEAD .
- 当对上次提交不满意,可以让HEAD指针回退,而暂存区和工作区可以不用改动
- git reset --soft HEAD ^
- 如果让工作区不改变,而暂存区和引用(HEAD指针)回退一次
- git reset --mixed HEAD ^
- 当需要彻底撤销最近的提交,HEAD指针、暂存区、工作区都回到上一次的提交状态,自上一次以来的提交全部丢失
- git rest --hard HEAD ^