git文件取消版本控制和撤销修改

1. 某个文件取消版本控制

IDEA中的.idea 文件夹是不需要提交到远程仓库的,如果在.gitignore 文件中没有指定忽略.idea 文件夹,已经提交了.idea ,此时在修改.gitignore 文件就没有作用了,因为.gitignore 是用来控制尚未被纳入版本控制的文件,如果文件已经存在于远程库中,自然也就无法生效了

  1. 使用 git rm -r --cached "要取消版本控制的文件或文件夹" 将本地的 .idea 文件夹取消版本控制
E:\ZHDSPEACE\pujiang-server>git rm -r --cached ".idea"
rm '.idea/libraries/Maven__io_springfox_springfox_swagger_ui_2_9_2.xml'
rm '.idea/libraries/Maven__io_swagger_swagger_annotations_1_5_21.xml'
......
  1. git commit git push 提交修改
  2. .gitignore 文件中添加忽略.idea 文件夹,并提交到远程仓库
.idea/

2. 撤销工作区、暂存区、本地仓库修改

2.1 撤销工作区(本地)修改

此时未将修改的文件git add
丢弃工作区的修改,并用最近一次的commit内容还原到当前工作区,只针对文件内容的修改,添加和删除文件不起作用

//放弃修改某个文件
git restore <filepathname>

git restore .gitignore

//放弃所有修改的文件
git restore .  

可能有的同学使用git checkout -- filename来 恢复工作区的文件,但是我总感觉git checkout命令既被用来切换分支,又被用来恢复工作区文件,刚开始使用时很是迷惑。
这俩个命令针对文件可以完成相同的操作,所以我使用的是git restore

2.1 撤销暂存区修改

已经使用git add
这里只是从暂存区撤销了文件,但是文件的修改内容并没有被撤销。
方式一

git restore --stage <filepathname>

git restore --stage .gitignore
git restore --stage "*.txt"

方式二

git reset HEAD <filepathname> 
git reset HEAD .gitignore

2.3 撤销本地仓库修改

已经git commit

//回退到上一次commit的状态,丢弃工作区的修改
git reset --hard HEAD^ 

//撤销commit和add 但是保存工作区修改
git reset --mixed HEAD^

//撤销commit 不撤销add 保留工作区修改
git reset --soft HEAD^ 

3. HEAD说明

HEAD 表示当前版本
HEAD^ 上一个版本
HEAD^^ 上上一个版本
HEAD^^^ 上上上一个版本
也可以使用 ~数字表示
HEAD~0 表示当前版本
HEAD~1 上一个版本
HEAD^2 上上一个版本
HEAD^3 上上上一个版本

回滚到具体的某个版本
git reset --hard <版本号>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值