当我们在进行多人开发的时候, 冲突问题是一定会遇到的, 如果不想办法解决, 那是真的很头疼, 加班不为了别的, 就为了解决冲突, 就问你怕不怕!!
原因: 线上版本的代码和本地分支的代码不一致, 所以就会导致冲突, 以下办法为本人开发经验, 百试百灵.
防止冲突问题的出现:
先完成本地开发, 我们可以这样做:
1. 新建分支 (git checkout -b feature-xxx) 这个 xxx 就是功能名字
2. 添加代码监听(git add -a)add 后面的命令, 可以自己上网查, 这里就不细说了
3. 提交代码到暂缓区(git commit -m "注释说明")
然后进行更新本地 develop 分支
1. 先切换到 develop 分支(git checkout develop)
2. 更新本地 develop 分支(git pull)
注意:
当在 git pull 的时候报了 error: Your local changes to the following files would be overwritten by merge:
- xx/xx/xx/xx/xx.xx
- Please commit your changes or stash them before you merge.
这类型的, 我们应该用 git log --oneline, 然后选择最新的那个版本号(如: 4589a56c3e574a)
这时候输入命令: git reset --hard 版本号(4589a56c3e574a), 回退到最新版, 然后再进行第三步操作即可
3. 再切换到上面的开发的辅助分支(git checkout feature-xxx)
4. 再把辅助分支和本地的 develop 衍合在一起(git rebase develop)
5. 再推送到远程仓库(git push), 输入这个命令后会出现一条完整的 git push 命令, 复制粘贴 + 回车键即可(我之所以不输入完整命令, 是因为,,, 都懂的)
上面的方法解决了冲突所带来的问题, 所以一般都不会有冲突问题的出现的, 但如果还是出现了这个问题的话, 我还有终极大招, 绝对有效
解决冲突问题:
把自己写好的代码 (注意: 只能是自己的代码, 别人不会动的那种) 或者文件, 复制一份出来, 放到一个安全的地方 (安全的地方指的是, 你接下来的操作都不会影响到的那个地方), 然后重新找个地方, 把线上的最新的代码(git clone 远程仓库地址) 下下来, 然后把自己刚才复制出来的代码放进项目相应的地方, 把原来自己写的旧代码覆盖了, 然后新建分支(这里有的人会先新建辅助分支, 然后再把新代码粘贴回项目里面, 其实都一样的, 都可以的, 亲测没问题), 再按照上面的方法去提交代码就行了.
本人第一次写博客, 不喜勿喷, 如果有需要改正的地方, 欢迎指出错误, 谢谢..
来源: http://www.bubuko.com/infodetail-2551233.html