我从Android Studio提交了对git的更改,之后我在我的项目中做了一些改变,给了我错误,现在我想找回没有错误的提交版本。 我怎么能这样做?
答案 0 :(得分:60)
撤消最新更改并重置为最近的提交:
转到 VCS - > Git - >重置HEAD ..
将重置类型更改为hard
以删除这些更改。
看起来像这样。如果需要,可以在执行之前验证重置。
点击验证后会发生什么?
将弹出一个屏幕,显示您要重置为的提交中所做的更改。您可以查看每个文件的差异,以显示该文件中提交的更改内容。它或多或少等于终端中的$ git show
。
与之前的假设相反,不显示执行重置时会影响哪些文件。
答案 1 :(得分:14)
使用git log获取您的提交ID。然后你可以使用(例如0d1d7fc32):
# This will detach your HEAD, that is, leave you with no branch checked out:
git checkout 0d1d7fc32
或者如果您不想保存更改(硬重置):
# This will destroy any local modifications.
# Don't do it if you have uncommitted work you want to keep.
git reset --hard 0d1d7fc32
如果你想回到最后一次提交(不保存更改),则无需获取id,请转到:
git reset --hard HEAD
答案 2 :(得分:0)
git reset --soft "HEAD^"
这将删除最新的提交。
答案 3 :(得分:0)
这篇关于jetbrains webiste here的精彩文章:
将分支重置为特定的提交 如果您在一组最近的提交中发现错误,并且想要重做该部分,则可以将存储库回滚到特定状态。通过将当前分支HEAD重置为指定的提交(如果您不希望在历史记录中反映撤消操作,可以选择重置索引和工作树)来完成此操作。
软:所有更改 从选定的提交之后进行的提交开始 (这意味着它们将被移至“本地更改”视图,以便您 可以对其进行审查,并在必要时稍后提交。
混合:所选提交之后所做的更改将保留,但不会暂存进行提交。
硬:在选定的提交之后进行的所有更改都将被丢弃(暂存和提交)。
保留:在所选提交之后所做的已提交更改将被丢弃,但本地更改将保持不变。
答案 4 :(得分:0)
假设您要提交项目更改。当您要提交文件时,Android Studio将向您显示已更改的文件。看到它们,您可以转换要上一次提交的每个文件。