1、流程图
(觉得这如果临时分支多了,会变得特别复杂,工程量也大,要解决可能的各种冲突)
2、过程中出现的冲突(持续更新)
(1)
#git pull 出现错误
Git Pull Failed
POST git-upload-pack (316 bytes)
From https://gitee.com/specking/study
branch master -> FETCH_HEAD
= [up to date] master -> origin/master
refusing to merge unrelated histories
原因:本地仓库和远程仓库实际上是独立的两个仓库,要把他们变成同一个。
# 解决方案
git pull origin master --allow-unrelated-histories
如果出现再出现以下错误
fatal: couldn’t find remote ref –allow-unrelated-histories
# 解决方案
git pull --rebase origin dev-package
再次进行提交操作
(2)
#git pull 出现错误
error: Pulling is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.
原因:本地的push和merge会形成MERGE-HEAD(FETCH-HEAD)、HEAD(PUSH-HEAD)这样的引用。HEAD代表本地最近成功push后形成的引用。MERGE-HEAD表示本地成功pull后形成的引用。我么可以通过MERGE-HEAD或者HEAD,来实现与svn revet类似的效果。
#解决方案
#1、将本地的冲突文件冲掉,不仅需要reset到MERGE-HEAD或者HEAD,还需要–hard。没有后面的hard,不会冲掉本地工作区。只会冲掉stage区。
git reset --hard FETCH_HEAD
# 注意:此命名会让本地仓库和远程仓库的内容同步,也就是说你本地修改的的代码会被删除掉,执行前请务必备份修改的代码!!!
#2、接着执行下面命令,就会成功。
git pull
终极大战:
强制推送
git push -f origin dev-package