Git回滚版本并push到远端master
Git回滚版本并push到远端master
办法一、
【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 fetch --all
# origin/master为想恢复的分支名称,这里是github默认主分支
git reset --hard origin/master
# git最新改版变成下面,弃用master改为main
git reset --hard origin/main
git pull
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)