git 版本回退

git 丢弃修改

情况:有些时候提交了错误代码,想撤销提交,这时可以进行版本回退。

前言概念
什么是工作区、暂存区、本地仓库、远程仓库?
工作区就是你用编辑器编写代码的区域。保存代码后,git add . 就会把所有的修改后的代码添加到暂存区了,git commit 会把暂存区的代码提交到本地仓库,git push会把本地仓库的代码推送到远程仓库。

git丢弃不想要的修改分四种情况
一:add前
使用命令: git checkout . 意思是丢弃当前所有修改
使用命令: git checkout (文件名) 意思是丢弃(文件名)的文件
二:add后,commit 前
使用命令: git reset . 意思是丢弃当前所有修改
使用命令: git reset (文件名) 意思是丢弃(文件名)的文件
三:commit 后 push前
使用命令: git reset HEAD~ 意思是从当前指针位置 回退 1个版本 “~”可以换成“^”
使用命令: git reset HEAD~2 意思是从当前指针位置 回退 2个版本
使用命令: git reset (哈希值) 意思是到具体commit后的版本
(1)丢弃连招
git reset (指定版本哈希值)。
git checkout .
git pull
此时本地就同步了远程的版本
(2)git reset 可以添加额外指令及其含义
1、git reset --mixed:

此为默认方式,等同于不带任何参数的git reset。
当前指针位置,工作区代码未丢失。
提交代码可以git add . 添加代码到暂存区,然后git commit -m ‘提交信息’ 添加代码到本地,然后git push,添加代码到远程。

2、git reset --soft:

当前指针位置,暂存区代码未丢失。
提交代码可以git commit -m ‘提交信息’ 添加代码到本地,然后git push,添加代码到远程。

3、git reset --hard:

彻底回退到某个版本,本地的源码也会变为上一个版本的内容,所有修改的内容都会丢失

四:push后
(1)丢弃连招
git reset (指定版本哈希值)。
git checkout .
git push --force 强制提交当前版本号 这里是和第三点的细微区别。
当然有些公司设置的权限,不给–force强制提交代码,那么丢弃连招就用不了了,使用下面的第二点。
(2)还原命令
git revert
作用本次提交修改的代码,撤销为未修改的代码,然后提交上去。
就像什么?就像你把a改为b,b提交上去了,git revert 做的事就是,把b改为a提交上去。你会看到由revert生成的提交记录。

下面是些题外话

变基修改命令
git rebase -i (哈希值) 这个命令比 git reset (哈希值) 功能更多一点,多哪点呢?就是git reset (哈希值) 功能只是跳到某个版本,而git rebase -i (哈希值)不仅可以跳到某个版本,还可以在这个版本上修改commit信息等其它功能不做赘述,命令窗口会有提示。
变基的初步理解
1.rebase 和 merge 相对
2.站在远端的角度
3.rebase为先来后到排序,merge根据时间先后排序
push的认识
push到远端是远端的版本和要push的版本进行比对,远端版本新于本地提醒pull后再提交。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值