【发布时间】:2015-06-19 09:41:30
【问题描述】:
我从 Android Studio 提交对 git 的更改,之后我在我的项目中进行了一些更改,这给了我错误,现在我想取回那个没有错误的提交版本。 我该怎么做?
【问题讨论】:
标签: android git android-studio
我从 Android Studio 提交对 git 的更改,之后我在我的项目中进行了一些更改,这给了我错误,现在我想取回那个没有错误的提交版本。 我该怎么做?
【问题讨论】:
标签: android git android-studio
要撤消您最近的更改并重置为最近的提交:
转到 VCS -> Git -> 重置 HEAD..
将重置类型更改为hard 以删除这些更改。
它看起来像这样。如果需要,您可以在执行重置之前验证重置。
如果您点击验证会发生什么?
将弹出一个屏幕,显示您将要重置的提交中所做的更改。您可以查看每个文件的差异,以显示该文件中提交的更改。它或多或少等于终端中的$ git show 所做的。
与我之前的假设相反,它确实不显示执行重置时会影响哪些文件。
【讨论】:
只需使用 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
【讨论】:
git reset --soft "HEAD^"
这将删除最新的提交。
【讨论】:
根据jetbrains 网站here 上的这篇精彩文章:
将分支重置为特定提交 如果您在一组最近的提交中发现错误并想要重做该部分,您可以将存储库回滚到特定状态。这是通过将当前分支 HEAD 重置为指定的提交来完成的(如果您不想在历史记录中反映撤消,则可以选择重置索引和工作树)。
软:所有变化 from 在选定提交之后进行的提交将被暂存 (这意味着它们将被移动到本地更改视图,以便您 可以审查它们并在必要时稍后提交)。
混合:在选定提交之后所做的更改将被保留,但不会暂存以进行提交。
硬:在选定提交之后所做的所有更改都将被丢弃(暂存和已提交)。
保持:在选定的提交之后所做的已提交更改将被丢弃,但本地更改将保持不变。
【讨论】:
假设您要提交项目更改。当你想要提交文件时,Android Studio 会告诉你哪些文件被修改了。看到它们,你就可以转换你想最后提交的每个文件。
【讨论】: