在GitKraken中还原一个文件

时间:2017-04-07 10:09:23

标签: gitkraken

GitKraken可以将单个文件的更改恢复为先前的提交而不是恢复整个提交吗?

5 个答案:

答案 0 :(得分:13)

答案

它的git-sense中的revert只能在提交时执行。它引入了一个新的提交,它完全否定了恢复提交的更改。见here。 GitKraken支持这一点:右键单击提交Revert <branch> to this commit

但是,您可以通过git checkout完成您想要完成的任务。我不认为GitKraken支持单个文件的这种功能。但是,您可以使用命令行。

通过命令行重置单个文件

  

git checkout <commit> <file>

     

查看以前版本的文件。这会转变<file>   驻留在工作目录中的精确副本   <commit>并将其添加到暂存区域。

可以找到文档here

因此,

git checkout HEAD~1 <filename>会将单个文件重置为当前HEAD之前的提交。

答案 1 :(得分:3)

您可以在GitKraken用户界面中完成此操作,但它有点迂回:

  • 将最近的提交还原回文件被删除的位置,但是当GitKraken询问您是否要立即提交还原时,请单击“否”。
  • 取消所有更改
  • 仅播放您尝试还原的文件的添加
  • 右键单击Unstaged,并放弃所有

这应该只为您要恢复的一个文件添加一个。承诺,现在你已经恢复了一个文件。

请注意,这可以在多个提交中工作,而不仅仅是一个...但是因为它必须从所有这些提交中回滚所有内容,然后丢弃所有回滚(除了一个),它可能会很慢如果涉及大规模的变化在这种情况下,最好使用kowsky答案中建议的git CI。

答案 2 :(得分:0)

您可以使UNDO到最后一次提交对其进行编辑,然后再进行一次Force Push覆盖。效果很好

答案 3 :(得分:0)

尽管它并不严格涉及使用git命令,但GitKraken提供了可视化任何给定commit上任何项目文件内容的可能性。

在处理单个文件时,复制/粘贴目标提交文件的内容可能比使用复杂的git命令要容易得多,而这些命令可能最终会弄乱整个项目的提交历史。

要实现这一目标,只需:

  • 在GitKraken中打开您的git项目
  • 在提交历史记录行中单击所需的提交
  • 在右侧面板中,选中查看所有文件复选框
  • 找到所需的项目文件并单击它
  • 文件内容将显示在主面板中
  • 您现在可以复制/粘贴内容

仅需还原数量非常有限的文件时,简单高效……

答案 4 :(得分:0)

希望 GitKraken 可以做到这一点,就像“TortoiseGit”一样。

Revert