如何将Git托管项目中的所有本地更改恢复到以前的状态?

我有一个运行的项目git init。经过几次提交后,我git status告诉我所有内容都是最新的,并且没有本地更改。


然后,我进行了几次连续更改,意识到我想扔掉所有东西并恢复到原始状态。这个命令会帮我吗?


git reset --hard HEAD


开心每一天1111
浏览 1756回答 3
3回答

冉冉说

如果要还原对工作副本所做的更改,请执行以下操作:git checkout .如果要还原对索引所做的更改(即已添加的内容),请执行此操作。警告这会将您所有未推送的提交重置为master!:git reset如果要还原已提交的更改,请执行以下操作:git revert <commit 1> <commit 2>如果要删除未跟踪的文件(例如,新文件,生成的文件):git clean -f或未跟踪的目录(例如,新目录或自动生成的目录):git clean -fd

梵蒂冈之花

注意:您可能还想运行git clean -fd如git reset --hard将不删除未跟踪文件,其中为git的清洁将从跟踪根目录不在下git的跟踪中删除任何文件。警告-请务必小心!首先使用git-clean进行空运行会很有帮助,以查看它将删除什么。当您收到错误消息时,这也特别有用~"performing this command will cause an un-tracked file to be overwritten"这可能会在执行多项操作时发生,一种是当您和您的朋友都添加了一个同名的新文件时更新工作副本,但他先将其提交到了源代码管理中,并且您不必担心删除未跟踪的副本。在这种情况下,进行空运行还将帮助您显示将被覆盖的文件列表。

蝴蝶不菲

重新克隆GIT=$(git rev-parse --show-toplevel)cd $GIT/..rm -rf $GITgit clone ...s删除本地非推送的提交还原对跟踪文件所做的更改s恢复已删除的跟踪文件s删除列出的文件/目录.gitignore(如构建文件)s删除未跟踪且不在其中的文件/目录 .gitignore?您不会忘记这种方法?浪费带宽以下是我每天都会忘记的其他命令。清理并重置git clean --force -d -xgit reset --hards删除本地非推送的提交还原对跟踪文件所做的更改s恢复已删除的跟踪文件s删除列出的文件/目录.gitignore(如构建文件)s删除未跟踪且不在其中的文件/目录 .gitignore清洁git clean --force -d -xs删除本地非推送的提交还原对跟踪文件所做的更改s恢复已删除的跟踪文件s删除列出的文件/目录.gitignore(如构建文件)s删除未跟踪且不在其中的文件/目录 .gitignore重启git reset --hards删除本地非推送的提交还原对跟踪文件所做的更改s恢复已删除的跟踪文件s删除列出的文件/目录.gitignore(如构建文件)s删除未跟踪且不在其中的文件/目录 .gitignore笔记确认以上所有条件的测试用例(使用bash或sh):mkdir projectcd projectgit initecho '*.built' > .gitignoreecho 'CODE' > a.sourceCodemkdir becho 'CODE' > b/b.sourceCodecp -r b cgit add .git commit -m 'Initial checkin'echo 'NEW FEATURE' >> a.sourceCodecp a.sourceCode a.builtrm -rf cecho 'CODE' > 'd.sourceCode'也可以看看git revert 进行新的提交以撤消先前的提交git checkout 及时返回到先前的提交(可能需要先运行以上命令)git stash与git reset上述相同,但是您可以撤消它
打开App,查看更多内容
随时随地看视频慕课网APP