Git 撤销所有未提交(Commit)的内容
source link: https://shockerli.net/post/git-undo-uncommit-content/?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
撸了好多代码,但是突然设计改了(~~o(>_<)o ~~);或者引入个第三方库,后来又发现用不着,想删掉,但文件太多了(比如几百个);那,怎么办呢,都不想了…Git 比人聪明,所以能很方便的帮我们解决问题。
场景一
需要撤销的内容文件属于未跟踪的状态。如下命令产生的场景:
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 ,自行尝试吧。
Recommend
-
36
在用开发项目的时候,经常会写着写着会发现写错的时候,人生没有后悔药,但是git有啊,大不了从头再来嘛。 git的一些撤销操作 代码还没有存到暂存区 当我们修改了一个文件,还没有执行git add操作的时候,...
-
2
git进阶(撤销pull、撤销merge、撤销add)1、撤销本次pullgit reflog
-
1
删除所有git commit 发表于 2019-...
-
1
在 Git 中修改之前提交的内容 Tue, Nov 10, 2009 • Tooling 其实这个...
-
7
git回退已在本地提交未push的commit 作者: wencst 分类: JAVA,
-
4
抖音企业号认证如何撤销已提交未付款状态 2020-04-13来源:woshizmt.cn 编辑:boss浏览量:4101
-
5
1、撤销还未 add 的操作 如果还没有执行git add,此时被认为尚未暂存以备提交的变更,git status结果如下: 位于分支 dev 尚未暂存以备提交的变更: (使用 "git add <文件>..." 更...
-
0
在 git 中提交后,如何撤销? 作者:刘光录 2022-10-27 09:34:06 在使用 git 协同工作,有时候我们提交了一次修改,发现了错误,想要撤销该次提交,该怎么做呢?
-
5
V2EX › git 求助, Git 误操作点到撤销所有更改,能否恢复!
-
4
一、使用git rebase命令 如果您想彻底删除 Git 中的某次提交的内容,可以使用 git rebase 命令并将该提交删除。 以下是删除 Git 提交内容的步骤: 找到要删除的提交的哈希值。可以使用 git log 命令查看...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK