办法一、

【Gitlab】GIT回滚master分支到指定tag版本 并提交远程仓库
1 查看分支
git branch

2 切换到master分支
git checkout master

3 查看标签
git tag
v1.3.3
v1.3.4
v1.3.5

4 查看某个标签的详情
git show v1.3.5
commit fb479960c0cec5549463ae123d70bdd72ccf6be7

5 通过commit id回退
git reset --hard fb479960c0cec5549463ae123d70bdd72ccf6be7

6 显示所有提交过的版本信息
git log

7 查看所有分支的所有操作记录
git reflog

8 显示工作目录和暂存区的状态
git status

9 提交远程仓库
git push origin master

10 git报错,需要进入gitlab项目设置,protected branches里取消master的protected,设置


办法二、

1.git log
定义:该命令显示从最近到最远的提交日志。每一次提交都有对应的 commit id 和 commit message
如果嫌弃输出的信息杂乱无章,那么加上 --pretty=oneline 参数试试
git log --pretty=oneline

2. git reset --hard id

git reset --hard HEAD^         //回到上个版本

git reset --hard HEAD^^        //是上上个版本

3.git push origin master
git push origin HEAD --force(最好不要)

4.git reflog
定义:查看命令操作的历史


办法三、

/*1.新建分支*/
git checkout -b temp              //新建分支并切换到temp分支
git push origin temp:temp         //将代码push到temp分支
/*2.删除主分支*/
git push origin --delete master   //删除远端主分支
git branch -d master              //删除本地主分支
/*3.新建主分支*/
git checkout -b master            //新建主分支并切换到主分支
git push origin master            //提交主分支
/*4.删除暂存分支*/
git branch -d temp
git push origin --delete temp

思路一

备注说明

-- 本地分支回滚到指定版本
git reset --hard <commit ID号>
-- 强制推送到远程分支
git push -f origin <branch name>

思路二

实际开发过程中,有时候我们会发现历史版本是对的,当前版本和远程分支是错的情况。我们这时候需要回滚到历史版本,并且让远程分支也回退到历史版本,下面来说一种解决办法。

1,先把本地的分支回退到历史版本:
1.1 使用 命令查看历史版本
git log --pretty=oneline
1.2 使用下面命令回滚,我们这里回滚到上一个提交版本

git reset --hard HEAD^
注意:上一个版本就是HEAD,上上一个版本就是HEAD,当然往上100个版本写100个比较容易数不过来,所以写成HEAD~100

2,把当前分支push到远程仓库并且让远程仓库和当前分支保持一致:
2.1 使用命令,这里假定我们当前的分支名为master

GIt 提供了一个命令 git reflog 来记录本机电脑的每一次命令。
$ git reflog

通过 id ,来回退曾经的版本。
$ git reset --hard HEAD^

参考文章

【Gitlab】GIT回滚master分支到指定tag版本 并提交远程仓库【图文】_PeterWang2018_51CTO博客

  Git 之 版本回退 - 简书
版本回退 - 廖雪峰的官方网站

Git版本管理:不同版本的切换 - 程序员大本营

git 回滚到指定版本并推送到远程分支 - 打个大大西瓜 - 博客园

题外话

git将本地分支恢复为远程分支
问题出现原因
本地分支与远程分支合并发生冲突,有很多无用的修改,直接使用远程分支覆盖
覆盖操作

git fetch --all
# origin/master为想恢复的分支名称,这里是github默认主分支
git reset --hard origin/master
# git最新改版变成下面,弃用master改为main
git reset --hard origin/main
git pull

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐