git 撤销全部的commit_Git 撤销所有未提交(Commit)的内容

撸了好多代码,但是突然设计改了(o(>_

场景一

需要撤销的内容文件属于未跟踪的状态。如下命令产生的场景:

mkdir git-tmp

cd git-tmp

git init

echo '第1次输入的内容' > file1.log

git status

以上命令产生了file1.log文件,该文件未被执行过git add、也不在版本库中。清除此类未被跟踪的文件:

git clean -fdx

场景二

需要撤销的内容已被git add暂存,但未执行git commit提交。如下命令产生的场景:

mkdir git-tmp

cd git-tmp

git init

echo '第1次输入的内容' > file1.log

git add .

git status

那么执行以下命令即可取消文件的暂存:

git rm --cached -r .

或者,使用:

git reset

也可以取消所有文件的暂存。

然后,我们再执行git clean -fdx清除文件。

场景三

已提交在版本库中的文件发生了变更、但修改的内容未暂存。如下命令产生的场景:

mkdir git-tmp

cd git-tmp

git init

echo '第1次输入的内容' >> file1.log

git add .

git commit -m '第1次提交'

echo '第2次输入的内容' >> file1.log

git status

这种情况,我们可用:

git checkout .

就可以清除所有变更内容。

场景四

已在版本库中的文件发生了变更、且已git add暂存。如下命令产生的场景:

mkdir git-tmp

cd git-tmp

git init

echo '第1次输入的内容' >> file1.log

git add .

git commit -m '第1次提交'

echo '第2次输入的内容' >> file1.log

git add .

git status

这种情况,比场景三仅多了步暂存,那我们可以先取消暂存、然后再检出:

git reset

git checkout .

也就是场景二和场景三的混合情况。

总结

我们以上所有场景都是内容未被提交(commit)的情况下。如果是撤销提交操作,那就是其他方法了。

基于以上,我们发现,如果对于已修改的所有内容,我们都不想要了,想回到最干净的上个提交版本的状态。那么,3个命令就可以搞定一切:

git reset

git checkout .

git clean -fdx

最后,再说个小白都能解决该类问题的工具 —— SourceTree,自行尝试吧。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值