Git:如何返回到上一个提交

Lis*_*nne 12 git

我处于这种情况master:

     --c1--c2--c3--c4
Run Code Online (Sandbox Code Playgroud)

我在c4,但我不喜欢它,我想返回c1并在 master 中继续工作:

        ______________   
       /              \
    --c1--c2--c3--c4   c6
Run Code Online (Sandbox Code Playgroud)

请问我该如何实现这一目标?

谢谢!:-)

San*_*dar 6

做这个 -

git checkout c1
Run Code Online (Sandbox Code Playgroud)

返回master分行

git checkout master
Run Code Online (Sandbox Code Playgroud)

git checkout -,这将签出前一个分支或提交该分支HEAD。

如果有帮助请告诉我。

谢谢!


Moh*_*ady 5

我用来向后退几步的一个简单方法是git checkout HEAD~[number]

如果我想返回 3 步,你会写git checkout HEAD~3如果你忽略这个数字,那么 git 会假设它是 1 步

当然,您始终可以只获取哈希值并签出该哈希值

git checkout ABC123
Run Code Online (Sandbox Code Playgroud)

请注意,您将处于分离的头状态,这意味着没有分支指向此哈希,因此您要么git reset删除所有其他更改并使此提交成为最新的,要么git branch创建一个新的分支名称以确保您的提交不会' t 变得无法访问。