Git 撤销修改

1.工作区:简单理解就是需要进行版本控制的某个文件夹(假设为 demo),这个文件夹有一些特殊之处——多了.git这个隐藏的文件夹

2.版本库:demo 文件夹下的.git文件夹就是 Git 的版本库.

Git 的版本库里存了很多东西,其中最重要的就是称为 stage(或者叫 index)的暂存区,还有 Git 为我们自动创建的第一个分支 master,以及指向 master 的一个指针叫 HEAD。

git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支。

3.暂存区:英文叫 stage, 或 index。一般存放在 .git目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。暂存区可以理解为一个虚拟工作区,这个虚拟工作区会跟踪工作区的文件变化(增删改等操作)。这个工作区的位于.git 文件夹下的index文件中

提交

# 将工作区的内容添加到暂存区
git add -A # 添加所有修改,包括新增、改动、删除的文件

# 将暂存区的内容提交到分支
git commit -m 'upload'

# 同时提交到暂存区和本地分支
git commit -am 'upload'

查看区别

# 查看暂存区和工作区的区别
git diff

# 查看暂存区和版本库区别
git diff --staged

# 查看工作区和版本库里面最新版本的区别
git diff HEAD -- <file>

查看提交信息

# 查看某个文件的 log
git log /path/to/file

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

# 只显示版本号和提交时的备注信息
git log --pretty=oneline 

# 查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)
git reflog

穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本

撤销工作区修改

即对于未执行 git add 命令前

# 用暂存区全部或指定的文件替换工作区的文件
git checkout -- <file>   # 撤销某个文件
git checkout -- *  # 撤销所有
git checkout -- *.txt  # 正则匹配

撤销暂存区修改

已将变更加入到暂存区,即已经执行了git add命令

# 直接从暂存区删除文件,工作区则不做出改变
git rm --cached <file>

# 本地分支替换暂存区指定文件,工作区不改变
git reset <file>

# 本地分支替换暂存区全部文件,工作区则不做出改变
git reset HEAD

# 本地分支替换暂存区和工作区
git checkout HEAD <file>

撤销本地仓库修改

已将变更加入到本地仓库,即已经执行了git commit命令

# 指定某个文件回退到某个 commit
git checkout ${commit} /path/to/file

# 本地分支替换暂存区和工作区
git checkout HEAD <file>

# 撤销 commit 并保留代码
git reset --soft HEAD^
git reset --soft <commit id>

# 撤销 commit 且不保留代码
git reset --hard HEAD^
git reset --hard <commit id>

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值