如何"重新打开"最后一个git提交?

Mat*_*oli 16 git

我在一个分支机构工作,需要重新掌握主人才能快速修复,所以我的工作正在进行中.

现在我回到我的分支中,我想回到我尚未提交的状态,但我的所有更改都已应用并准备好提交(即取消之前的提交,但我的更改不会丢失并显示in git status).

修改之前的提交对我来说不够好,因为我想看到更改的文件和行(这使我更容易处理我的更改).

我知道git stash本来是一个更好的解决方案,但为时已晚.我也倾向于混淆(或松散)我的藏匿提交,因为它们没有链接到分支.

Wil*_*sem 23

基本上有两种解决方法:

  1. 执行重置(在master分支上,或任何错误提交的分支):

    git reset --soft HEAD~1
    
    Run Code Online (Sandbox Code Playgroud)

    HEAD~1是一个相对地址,如这里所解释的.

  2. 继续工作并执行修正:

    git commit --amend
    
    Run Code Online (Sandbox Code Playgroud)

    在这种情况下,你假装没有发生任何事情,在你的分支上进一步工作,并在你计划进行真正的提交时调用命令.您可以使用所有更改和(可选)新消息覆盖最后一次提交.

形式:确实 - 正如你自己提到的 - 更好地执行一个git stash,只对那些偶然看到这个答案的人说,并认为上述是常见的做法(事实并非如此).


Chr*_*lls 7

根据我的理解,您希望撤消对分支的最新提交,同时保持提交中的所有更改完整并暂存.

您可能想尝试使用下面列出的git reset命令:

git reset --soft HEAD^
Run Code Online (Sandbox Code Playgroud)

这应该采取您的最新提交并撤消它,同时保持所有更改的上演.