前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >git回退代码的n种方式

git回退代码的n种方式

作者头像
777nx
发布2024-09-10 10:42:41
1480
发布2024-09-10 10:42:41
举报
文章被收录于专栏:Fantasy的技术小站

内容概要

介绍git restore; git reset; git revert 的用法以及常见场景下回退代码的方式。也会简单介绍一些git的基础知识。

正文

  1. git restore
  • git restore file1: 针对暂存区的文件file1,将它回退到工作区,且撤销其修改。就是把你git add之后的文件变成add之前,同时你的修改会丢失
  • git restore --staged file1:针对暂存区的文件 file1,回退到工作区,但是保留修改。把你git add之后的文件变成add之前,但是你的修改会保留
  • 备注:
    • 工作区:就是你本地的代码,未使用git add操作的文件所在位置。
    • 暂存区:你使用git add添加之后的文件所在位置
  1. git reset
  • git reset commitId --soft:回退当前代码仓库到指定提交commitId,当前HEAD和commitId之间的修改会保留,这些修改会在暂存区。就是保留了add的状态
  • git reset commitId --hard:回退当前代码仓库的代码到指定commitId,这之间的代码会丢失。
  • git reset commitId --mixed:回退代码到connitId,修改保存在工作区,就是没有add的状态
  1. git revert
  • git revert commitId:撤销指定提交commitId。会建立一个新的commit,这个commit的内容就是指定commitId的反向,也就是提交一个新的commit把commitId对应的修改内容还原。

常见代码回退场景

  1. 本地有修改,未执行git add,想撤回修改。

执行命令 git restore file1

  1. 本地修改,执行了 git add,想撤回。

执行命令git restore --staged file1

  1. 本地修改,已执行 git addgit commit,想撤回。
  • 如果要保留add的状态,就执行 git reset --mixed
  • 如果不想保留add的状态,但是想保留修改。git reset --soft HEAD^ 这里的HEAD^指最近一次commit,也可以直接用commitId
  • 如果不想保留修改,直接舍弃代码。git reset --hard HEAD^
  1. 本地修改,执行了git addgit commit,并且执行了git push,但是此时其他人还未提交代码到同一分支。想撤回。
代码语言:javascript
复制
# 根据你是否想要保留修改代码,自由选择 --soft --mixed --hard
git reset --soft HEAD^;
# 执行要做的修改等操作,重新提交,或者丢弃代码
git push -f;
  1. 本地修改,执行了git addgit commit,并且执行了git push,其他人也提交了代码到同一分支;或者过了很久,自己又提交了好多次commit,想撤回指定的这个commit,但是不撤回之后的commit。
代码语言:javascript
复制
# 先查看日志,找到commit n可以指定查看多少条日志
git reflog -n
# 复制对应commitId
git revert commitId
# 如果有冲突,解决冲突,如果没有直接push
git push;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-09-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 内容概要
  • 正文
  • 常见代码回退场景
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档