如何撤消“;git undo”;

如何撤消“;git undo”;,git,Git,我做了一个git undo,这根本不是我想要的。现在我想知道如何撤销撤销又称重做 我想知道我想做什么:我想放弃本地更改(它们没有按预期工作)并恢复到上次提交的状态 问题1的更新 git重置头。留给我的是: Auf Branch master Ihr Branch ist vor 'origin/master' um 2 Commits. (benutzen Sie "git push", um lokale Commits zu publizieren) Änderungen, die ni

我做了一个
git undo
,这根本不是我想要的。现在我想知道如何撤销撤销又称重做

我想知道我想做什么:我想放弃本地更改(它们没有按预期工作)并恢复到上次提交的状态

问题1的更新

git重置头。
留给我的是:

Auf Branch master
Ihr Branch ist vor 'origin/master' um 2 Commits.
  (benutzen Sie "git push", um lokale Commits zu publizieren)
Änderungen, die nicht zum Commit vorgemerkt sind:
  (benutzen Sie "git add/rm <Datei>...", um die Änderungen zum Commit vorzumerken)
  (benutzen Sie "git checkout -- <Datei>...", um die Änderungen im Arbeitsverzeichnis zu verwerfen)

    gelöscht:       Pictures/KETTLER_Logo.svg.png
    gelöscht:       Pictures/Withing_Logo.png
    gelöscht:       app/src/main/java/com/krischik/fit_import/IMainActivity.java
    gelöscht:       app/src/main/java/com/krischik/fit_import/IMainFragment.java
    geändert:       app/src/main/java/com/krischik/fit_import/MainActivity.java
    geändert:       app/src/main/java/com/krischik/fit_import/MainFragment.java
    geändert:       app/src/main/kotlin/com.krischik/fit_import/GoogleFit.kt
    geändert:       app/src/main/res/layout/main_fragment.xml
    gelöscht:       app/src/main/res/menu/main_menu.xml
    geändert:       app/src/main/res/values/dimens.xml
    geändert:       app/src/main/res/values/strings.xml
    geändert:       app/src/main/res/values/styles.xml
    geändert:       lib/src/main/kotlin/com.krischik/fit_import/Ketfit.kt
    geändert:       lib/src/main/kotlin/com.krischik/fit_import/Withings.kt
    geändert:       lib/src/test/kotlin/com.krischik/fit_import/Ketfit_Test.kt
    geändert:       lib/src/test/kotlin/com.krischik/fit_import/Withings_Test.kt
    geändert:       src/main/scripts/Create-IC-Launcher.scala

Unversionierte Dateien:
  (benutzen Sie "git add <Datei>...", um die Änderungen zum Commit vorzumerken)

    app/src/main/res/anim-v21/
    app/src/main/res/anim/
    app/src/main/res/drawable-xxxhdpi/
    app/src/main/res/values-de/
    app/src/main/res/values-v21/

keine Änderungen zum Commit vorgemerkt (benutzen Sie "git add" und/oder "git commit -a")
Auf分支主机
《国际卫生条例》分支机构是vor“始发地/主地”um 2提交。
(这是一个“git push”,这个lokale犯了一个publizieren错误)
Änderungen,我不知道该怎么做:
(请输入“git add/rm…”,嗯,请输入vorzumerken)
(这是“git checkout——…”的意思,我的意思是
gelöscht:Pictures/Ketterr_Logo.svg.png
gelöscht:Pictures/Withing_Logo.png
gelöscht:app/src/main/java/com/krishik/fit_import/IMainActivity.java
gelöscht:app/src/main/java/com/krishik/fit_import/IMainFragment.java
geändert:app/src/main/java/com/krishik/fit_import/MainActivity.java
geändert:app/src/main/java/com/krishik/fit_import/MainFragment.java
geändert:app/src/main/kotlin/com.krishik/fit_import/GoogleFit.kt
geändert:app/src/main/res/layout/main_fragment.xml
gelöscht:app/src/main/res/menu/main_menu.xml
geändert:app/src/main/res/values/dimens.xml
geändert:app/src/main/res/values/strings.xml
geändert:app/src/main/res/values/styles.xml
geändert:lib/src/main/kotlin/com.krishik/fit_import/Ketfit.kt
geändert:lib/src/main/kotlin/com.krishik/fit_import/Withings.kt
geändert:lib/src/test/kotlin/com.krishik/fit_import/Ketfit_test.kt
geändert:lib/src/test/kotlin/com.krishik/fit_import/Withings_test.kt
geändert:src/main/scripts/Create-IC-Launcher.scala
联合国大学日期:
(请加上…,嗯,我要把你的名字写下来)
app/src/main/res/anim-v21/
app/src/main/res/anim/
app/src/main/res/drawinable xxxhdpi/
app/src/main/res/values de/
app/src/main/res/values-v21/
keineÄnderungen zum Commit vorgemerkt(请将“git添加”和/或“git Commit-a”)
显然,恢复到上次提交的状态应该有一个干净的
git状态

可能重复的更新

我不知道怎么会有人认为可能存在重复,因为所讨论的操作没有任何共同点:

  • git reset——硬头
    更改工作副本以反映存储库
  • git undo
    将存储库更改为撤消上次提交

因此,虽然git reset是答案的一部分,但与问题无关

您有几种选择:

最简单的方法是使用git reflog并签出您所使用的最新“良好”提交

您还可以使用其中任何一个返回到任何所需的提交

首先,什么是头?
HEAD
只是对当前分支中当前提交(最新)的引用。
在任何给定时间只能有1个

如果您不在最新提交上-意味着
HEAD
指向历史上的前一个提交,称为分离的HEAD

很少有选择:

git签出
这将使你回到你想要的承诺


git复位头——硬
“移动”你的头回到想要的位置

#这将破坏任何本地修改。
#如果你有未完成的工作要做,就不要做。
git重置—硬0d1d7fc32
#或者,如果有工作要做:
暂存
git重置—硬0d1d7fc32
吉特隐藏流行音乐
#这将保存修改,然后在重置后重新应用该修补程序。
#如果您修改了以前的内容,则可能会出现合并冲突
#自您重置到的提交后已更改。
  • 注:()
    您还可以使用git-rebase--no-autostash

git签出
git签出-b
git checkout HEAD~X//X是无法返回的提交数
这将签出指向所需提交的新分支


这里是一个可以做什么的通用模式


请参阅问题的更新。使用
git重置头。
我还有很多添加、删除和更改。
git签出--.
将所有文件重置为
HEAD
版本。要删除未版本文件,请使用@wRAR
info git undo
git help undo
将告诉您;-)-我刚刚发现这是一个非常危险的命令。可能是完美答案的重复。使用
reflog
找到了正确的提交。是否执行了
签出
重置
运行单元测试,并且一切都恢复正常
git checkout <commit_id>
git reflog
git checkout HEAD@{...}
git checkout -b <new branch> <commit_id>
git checkout HEAD~X // x is the number of commits t go back