1.产生原因:
我当前拉取的远端版本为 B,此时修改了代码,并在本地仓库 commit 一次,但并未 push 到远端仓库。
b.另外一位开发者在 B 的基础上,一样 commit 了一次并 push 到远端仓库。那么这个时候,我再 push 本身的代码就会发生错误。
2.产生情况:
a.git merge 别的分支之后直接git push。
b.正常在自己的分支开发,开发完了之后直接git add . ,git commit -m ,git push也会产生这种错误。
3.如何避免:
a.如果你使用的是 Git Bash,直接使用 git pull --rebase。若是拉取不产生冲突,会直接 rebase,不会产生分支合并操做,若是有冲突则须要手动 fix 后,自行合并。
b.使用git fetch + git rebase
c.若是使用的是 GUI,例如 TortoiseGit,能够先 fetch,再手动 rebase 就能够了。
- 提示: 以上操作最好在git add . git commit -m之后进行。最后再push。
- 正常开发:
- 1.git add .
- 2.git commit -m '提交信息'
- 3.git pull --rebase
- 4.如果有冲突解决冲突
- 5.git push
- 合并分支:
- 1.git merge --no-ff feature
- 2.git pull --rebase
- 3.如果有冲突解决冲突
- 4.git push
- 注意点: 如果自己的文件有改动,一定要先git add 和commit 否则直接git pull则会覆盖自己本地写的那些代码