git合并代码及回滚
git合并代码
1 git rebase master
你如果在master分支下面搞一个新的分支Issue_feature_test,你开发的同时,master有新增了一下代码,这时候你需要在新的master上面继续开发,
第一:先把自己写的分支代码Issue_feature_test,保存到本地库,然后推送到来远程库(至关重要),然后拉下来远程库,也很重要
第二:切换到本地master分支,pull取远程仓库中最新的master代码
第三:切换到你现在开发的分支Issue_feature_test,在git命令中输入:git rebase master
第四:这样就会把你现在正在开发的分支中已经写好的代码与最新的Master分支的代码融合在一起(临时分支)
第五:输入 git status 显示冲突的文件,然后找到那个文件解决冲突,git add 文件名
这样才算解决一个冲突,输入 git rebase --continue ,继续git status ....... 知道所有的冲突全部解决
(git status如果不显示冲突文件,但又处于rebase状态,输入git rebase --skip)
如果不想解决冲突了,输入 git rebase --abort ,回到最初的状态,前面解决的所有冲突都会恢复到
以前的状态
第六:解决完冲突后,推送到远程库。
第七:完成
如何查看rebase完成了呢?git branch看看自己是否在当前的分支,如果回到当前分支,就是rebase完成。
如果rebase没有完成,git branch不会在当前分支,会在rebase新开的分支里面。(一个临时的分支)
git branch -vv 查看自己的分支,以及自己的分支与远程分支落后多少个文件,如果落后了就git pull,解决冲突,
git push失败,可能是本地这个分支有一些文件落后远程分支,需要git pull
2 git merge master
3. 回滚
本地代码先回滚,在同步到远程仓库
- 回滚到指定版本
git reset --hard 49a12155
49a12155 为要回滚到的版本号
2. 推到远程gitlab仓库
git push origin Issue_feature_branch --force
同步到远程仓库, 其中--force 为强制方式,如果不使用的话会因为 仓库版本v2.0 比本地版本v1.0高而无法push
3.其他
当本回滚后并同步到gitlab后,如果发现reset版本错误后(如希望回滚到的是v1.5),如何解决
如果本地的代码仓库中,还能找到以前的 版本号时(例如v1.5),则可重新回滚到对应版本 【因为本地在v2.0回滚到v1.0过程中,依然是有v2.0的缓存的】
如果是新git clone 拉取的代码,则恢复比较困难
git reflog
git reset --hard commitid
注:git reset之后,你通过git log看不到某些提交的记录了,可以使用git reflog来查看git的所有记录