我在一个分支机构工作,需要重新掌握主人才能快速修复,所以我的工作正在进行中.
现在我回到我的分支中,我想回到我尚未提交的状态,但我的所有更改都已应用并准备好提交(即取消之前的提交,但我的更改不会丢失并显示in git status
).
修改之前的提交对我来说不够好,因为我想看到更改的文件和行(这使我更容易处理我的更改).
我知道git stash本来是一个更好的解决方案,但为时已晚.我也倾向于混淆(或松散)我的藏匿提交,因为它们没有链接到分支.
Wil*_*sem 23
基本上有两种解决方法:
执行重置(在master
分支上,或任何错误提交的分支):
git reset --soft HEAD~1
Run Code Online (Sandbox Code Playgroud)
这HEAD~1
是一个相对地址,如这里所解释的.
继续工作并执行修正:
git commit --amend
Run Code Online (Sandbox Code Playgroud)
在这种情况下,你假装没有发生任何事情,在你的分支上进一步工作,并在你计划进行真正的提交时调用命令.您可以使用所有更改和(可选)新消息覆盖最后一次提交.
和形式:确实 - 正如你自己提到的 - 更好地执行一个git stash
,只对那些偶然看到这个答案的人说,并认为上述是常见的做法(事实并非如此).
根据我的理解,您希望撤消对分支的最新提交,同时保持提交中的所有更改完整并暂存.
您可能想尝试使用下面列出的git reset命令:
git reset --soft HEAD^
Run Code Online (Sandbox Code Playgroud)
这应该采取您的最新提交并撤消它,同时保持所有更改的上演.
归档时间: |
|
查看次数: |
9380 次 |
最近记录: |