我(愚蠢地)几天没有提交或推动项目的更改。今晚,我意外地创建了一个没有消息的提交。使用Atlasssian的Sourcetree,我想"哦,让我在推送之前添加一条消息" - 并右键单击并选择"还原"。
我并不完全确定在尝试将所有内容恢复原状之后我选择了哪些其他选项,但是现在我因为害怕失去几个小时的工作而感到害怕点击其他任何内容。如果您查看下面的屏幕截图,我希望突出显示提交(" MASTER 1提前没有消息")我的工作副本中的版本以及我的仓库中的最新提交。
我该怎么办?
答案 0 :(得分:3)
这个想法是,因为你还没有推动任何东西,所以:
git stash
git reset --hard HEAD~
git commit --amend
这将允许您(在命令行中)移动HEAD(重置索引和工作树,因此首先存储正在进行的任何工作的重要性),并编辑提交消息。
您应该能够从SourceTree(SRCTREE-770移动HEAD,自1.3b3起支持),但在这种情况下命令行可以更精确。
Revert创建了另一个取消前一个提交的提交:如果你看到你的工作树被修改了,那么reset --hard
就会把所有内容重置为你之前的提交(没有提交消息的那个)。 / p>