git合并分支,并且push到远程后的撤回
场景
a同学,需要将自己的分支abranch合并到master上,并且提交到了线上,忽然发现存在问题,想进行撤回。
解析
两种方法撤回
#1.git revert 好处,记录撤回前的操作。缺点,如果存在两个或多个父分支不能恢复。
git revert 要撤回的版本号
git push origin 分支
# 2.git reset --hard,记录中删除了提交过的记录。
git reset --hard 要恢复的最新版本号
#强制更新线上分支
git push origin 分支 -f
情景复现
// 在github创建一个demo项目。下载到本地进行管理。
git clone https://github.com/项目/demo.git
//创建一个a.txt文件,并且提交到远程
vi a.txt
git add a.txt
git commit -m "测试"
git push origin master
//创建abranch分支,并且提交东西后,合并到master分支上,提交。
git branch abranch
git checkout abranch
vi b.txt
git add b.txt
git commit -m "abranch test"
git push origin abranch
//合并到master分支,然后提交到远程。注:一定要在开发的分支解决冲突,然后再合并到master分支上。
git merge master
git checkout master
git merge abranch
git push origin master
//此时想回退
//1.git revert 恢复提交
git revert 5cc64c29f18d810fb656ce49df6b5b603d42e35e
git push origin master
//2.git reset hard