2017-08-14 319 views
3

我的编程合作伙伴和我对Git和Gitkraken相当陌生,犯了一些错误,做了一些推动并按错误顺序提交,并使事情相当糟糕。我想从几个提交中获取快照,并手动将其与代码的当前状态进行比较。沿回到上一次提交Gitkraken

行的命令“把工作目录状态这个历史性承诺” 或更好,但 “给我的内容本历史提交到不同的工作目录,我将命名“

给我的选项看起来并不那样。我看到“重新设置主机到这个提交”有几种风格,但是这些标题都没有让我相信我会去查看以前的状态而不会损坏返回到当前状态的路径。我错过了什么吗?做什么是我想要做的最好的方法是什么?

回答

0

我建议你使用git reflog,这个命令包含你的提交和修改的本地历史记录,这个日志你会看到你本地回购的所有事件。

找到确切承诺要恢复后,您可以设置与git reset --soft [email protected]{n}

什么--soft确实犯的出发点是

Does not touch the index file or the working tree at all (but resets the 
head to <commit>, just like all modes do). This leaves all your changed 
files "Changes to be committed", as git status would put it. 

在这之后,你将拥有所有的变化在您的舞台区域,然后您可以决定是否再次提交或更改内容。

我建议您阅读this部分从Git's book和特别是this部分关于撤消事情。

PS。作为一种额外的方式,您可以多次使用git reset,因为您使用的所有命令都保存在git reflog中,因此,如果您执行的操作不是您想要的,那么您也可以撤消它。

希望它可以帮助

0

...但没有这些头衔的说服我,我会去看看 以前的状态,而不会损坏路径返回到当前状态...

首先,你总是可以回去。 GitKraken提供了方便的撤消按钮,可让您用简单的按钮克利克恢复大部分事情。如果你想确定你可以轻松回去,你可以创建一个backup分支。如果事情出错,请检查出来,然后你就回来了。

因此,你可以放松,只是尝试一些事情,无需担心打破任何事情。现在的问题是你真正想做的事:

  • “把工作目录状态这一历史性的承诺”

    如果你只是想恢复到以前的状态(即提交),您可以使用reset <branch> to this commit - hard。你会回到选定的提交,就好像什么都没发生一样。如果您的前置状态仍然可以从任何分支(如果您创建了备份分支,则是这种情况),您仍然可以查看所有提交及其更改。

    请注意,您在执行硬重置时会发生未分配和未被更改的更改。

  • “给我这个历史性的内容提交到不同的工作 目录,我将其命名为”

    的Git不会只知道一个工作目录,所以这不是直接可行的。 然而,您可以像@ChristopherDíazRiveros所建议的那样,将您当前的状态与以前的状态进行比较。而不是hard重置,您可以执行soft之一。这会将您的工作目录重置为选定的提交,但保留所有更改(与之前的状态相比)作为分阶段更改。这可以让你轻松地检查它们,因为它们出现在GitKraken的右下角,你可以根据需要放弃或提交。

相关问题