美文网首页
git回滚远程分支(reset和revert命令)

git回滚远程分支(reset和revert命令)

作者: 小胖学编程 | 来源:发表于2020-06-01 13:03 被阅读0次

1. 创建标签

GIT可以打标签(tag)标记一个版本号,发布一个版本时,通常可以在版本库中打一个标签,这样就可以确定打标签时刻的版本。

# git tag -a "指定标签名" -m "指定说明文字" 
git tag -a "v1.0.1" -m "version 1.0.1 released"

当然也是给指定的commitId打标签:

#给指定的commit id打标签 git tag -a "指定标签名" commitID 
git tag -a "v1.0.2"  9fbc3d0
创建tag.png

为某一次提交设置标签。

2. 远程回滚reset命令

reset(重置)是修改header指针指向,达到回滚的目的。


# 获取将要回滚到的版本号

git log --pretty=oneline --abbrev-commit

# 回滚提交(本地回滚)

git reset --hard commentId

# 强制提交到远程分支

git push -f origin master

Git每次提交,都会将其串成一条时间线。header指针指向的是当前提交。

reset原理.png

若是将代码push到远程回滚的步骤。

需要通知同分支的开发人员

  1. 本地使用reset回退版本;
  2. 强行push -f到远程;
  3. 同事使用pull命令拉取服务器代码;
  4. 所有同事本地都要使用reset来回退版本;

3. 远程回滚revert命令

revert(还原)还原某次提交,并作为一次新的commit。

# 还原上一次提交
git revert head
# 推送到远程
git push

例如还原某次提交,使用head即还原上一次提交。

bogon:SpringBoot_Study yexuerui$ git revert head
[master 02a6800] Revert "git9提交"
1 file changed, 8 deletions(-)
delete mode 100644 src/main/java/com/git/Git9.java

使用commitId是还原指定的提交。

注意:git revert只是还原某一次提交,而git reset是回滚多次提交(直接修改header指针指向)。

4. merge代码如何回滚

例如,我们在dev分支上进行大量提交后,合并到了master分支。发现需要将某次合并回滚,如何进行操作?

  1. 可以在合并前使用git tag记录分支;

  2. 合并后,master分支上有多次的提交记录:可以使用reset命令进行本地回滚,然后在强制提交到远程,但是需要和其他同事沟通,以防代码丢失。

  3. 合并后,master分支上有多次的提交记录:但若是产生冲突会存在Merge的日志(只有发生冲突时才会存在该提交记录),可以使用git revert 对应的commitId也可以将本次合并回滚。

bogon:SpringBoot_Study yexuerui$ git log --pretty=oneline
0b965774b8c057f327e9c0527b3dcc7696117345 Merge branch 'master' of https://github.com/yexuerui/SpringBoot_Study

5. reset的三种命令

  • --hard:放弃本地目前的所有改变(即去除掉工作区和暂存区的文件)详细命令:git reset --hard HEAD
  • --soft:保留工作目录,并将重置的HEAD所带来的新的差异放进暂存区。
  • 不加参数(默认):保留工作目录,并清空暂存区。即:工作目录的修改、暂存区的内容、reset所造成的新的文件的差异都会放入到工作内容。

相关文章

  • git回滚远程分支(reset和revert命令)

    1. 创建标签 GIT可以打标签(tag)标记一个版本号,发布一个版本时,通常可以在版本库中打一个标签,这样就可以...

  • 远程仓库版本回退方法

    远程分支回滚的三种方法: 一、自己的分支回滚直接用reset 二、公共分支回滚用revert 三、错的太远直接将代...

  • git回退到某个版本

    方法一 git reset commit_id 这命令会丢掉回滚的提交记录 方法二 git revert comm...

  • git 总结

    参考资料:git 删除本地分支和远程分支、本地代码回滚和远程代码库回滚 git 删除分支 1. 本地分支:git ...

  • git reset 和git revert

    git reset 和git revert 的作用 它们二者都是属于回滚代码是在将本地文件传送到远程端出现错误时起...

  • git积累

    git命令重置本地提交: 回滚操作 重置merge 命令拉去远程分支 更新远程分支列表 切换到当前分支 —>合并...

  • 2019-01-15

    git reset和git revert命令 atom blog git revert是撤销某次操作,此次操作之前...

  • Git reset、revert、rebase的简单使用

    Git reset、revert、rebase的简单使用 回滚提示 本地或者自己单独的仓库使用reset 或者re...

  • 如何回滚到某个版本

    git reflog 找到某个版本 git reset --hard xx 即可 如何强推回滚的分支某个版本到远程...

  • git reset --soft,git reset --har

    git reset与git revert的区别 git revert是用一次新的commit来回滚之前的commi...

网友评论

      本文标题:git回滚远程分支(reset和revert命令)

      本文链接:https://www.haomeiwen.com/subject/pobjzhtx.html