有没有图形方式来git stash / unstash个别文件?

时间:2015-04-14 19:14:45

标签: git git-stash

我正在寻找一个用于存储和存储git中弹出文件的GUI,能够对单个修改过的文件执行此操作。我知道有一个命令行方式,看到here,但我正在寻找一种图形方式。我不太关心存储单个文件,而是关于弹出/应用的更多信息。我在Windows 7上运行。

3 个答案:

答案 0 :(得分:9)

我看到了一个建议here,将Stash命令作为菜单添加到&#34; Git GUI&#34;在<USER HOME directory>\.gitconfig

[guitool "Stash/show"]
  cmd = git stash show -p
[guitool "Stash/list"]
  cmd = git stash list
[guitool "Stash/pop"]
  cmd = git stash pop
[guitool "Stash/drop"]
  cmd = git stash drop
  confirm = yes

我还添加了一个命令来进行存储(使用,你必须先进行 - 但不要提交 - 你希望存储的文件,以便Git执行所需的&#34;添加&#34;) :

[guitool "Stash"]
  cmd = git stash

(请注意,我选择了&#34; stash&#34;不会显示为子菜单,但您可以这样做。)

您还可以通过工具 - >添加。

通过Git GUI本身添加命令

如果您只是想快速将文件放在心上而不必考虑分支名称,那么存储可能会有所帮助。

答案 1 :(得分:3)

您是否尝试过Sourcetree: http://www.sourcetreeapp.com/

它可能会解决您的问题。

答案 2 :(得分:3)

git stash的文档说:

  

如果要记录工作目录和索引的当前状态,但想要返回干净的工作目录,请使用git stash。该命令将保存您的本地修改并恢复工作目录以匹配HEAD提交。

它提供很少的支持 1 来处理单个文件,因为它的目的是安全地存储您当前的更改并快速将您的工作树置于干净状态(即,它是在您上次提交后立即执行的在当前的分支上。)

如果您创建一个新分支并在其上提交更改(以您想要的任何数量或组合),您可以执行您想要的(并且以比收起更灵活的方式),直到达到您想要的状态。然后只检查上一个分支,你就完成了。

这种方法允许您稍后将更改合并到当前分支中,只选择一些提交,甚至从中选择一些文件。

1 git stash save提供了选项--patch,允许用户以交互方式从HEAD和要保存的工作树之间的差异中选择帅哥。它允许精确控制添加到藏匿处的内容。

额外讨论

你说:

  

我正在使用来自git的{​​{1}},所以我试图将其藏匿在'搁置'模具中,但我认为分支是更好的方法。与此相关的是,gitextensions类似于从我的藏匿处中分出一个分支,因此我可能会藏匿但在抓取单个文件时将其视为分支。

在内部,每个存储都stored as a commit链接到创建存储时的Perforce提交,但没有链接到前一个存储(如果有)。存储列表存储为元数据; 在(隐藏)分支中未链接

更多,HEAD允许创建存储而不将其添加到存储列表中。它是为脚本而提供的,“可能不是你想要使用的命令”(我引自文档)。