我正在寻找一个针对git进行暂存和弹出文件的图形用户界面(GUI),并且可以单独操作修改过的文件。我知道有一种命令行方式来实现,可以在这里看到,但我想要一个图形化的方式。我不太关心单独暂存文件,而是更关心弹出/应用文件。我正在运行Windows 7。
我在这里看到一个建议(链接),可以将Stash命令添加到你的<USER HOME directory>\.gitconfig
中的“Git GUI”菜单中。
[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才能执行必要的"add"操作):
[guitool "Stash"]
cmd = git stash
(请注意我选择让 "stash" 不出现在子菜单中,但您可以这样做。)
您还可以通过 Git GUI 自身的 Tools->Add 添加命令。
如果您只想快速将文件放在一边而不必考虑分支名称,则存储可能有所帮助。
git stash
的文档说明:
当你想记录当前工作目录和索引的状态,但又想回到干净的工作目录时,请使用
git stash
。该命令会保存您的本地修改并将工作目录还原为与HEAD
提交相匹配的状态。
它提供了非常少的支持1来处理单个文件,因为其目的是安全地存储您当前的更改,并快速将您的工作树恢复到干净状态(即在当前分支上最后一次提交之后的状态)。
如果创建一个新分支并在其中提交更改(以任何数量或组合),直到达到所需状态,然后只需切换到先前的分支即可实现比stash更灵活的操作。
这种方法允许您稍后将更改合并到当前分支中,选择只从中挑选某些提交或甚至某些文件。
1 git stash save
提供了选项--patch
,允许用户交互地选择要存储的工作树和HEAD
之间差异的补丁。它允许对添加到存储区的内容进行精细控制。
你说:
我正在使用
Perforce
过渡到git
,所以我试图使存储区适应“暂存”模式,但我认为分支是更好的方法。与此相关的是{{link1:gitextensions
}}将我的存储区视为一个分支,因此在获取单个文件时,我可以将其视为分支而不是存储区。
在内部,每个存储都会作为提交与创建存储时的HEAD
提交关联,但不会与之前的存储(如果有)相关联。存储列表存储为元数据;存储不会在(隐藏的)分支中链接。
此外,git stash create
允许创建存储并将其添加到存储列表中。它提供了用于脚本编写和“可能不是您想使用的命令”(摘自文档)。
git
,但它会误导他们。SourceTree 将存储看作独立的对象,与其显示分支、标签和远程方式相同。试试吧(它是免费的),也是一个 Mercurial 客户端。 - axiacgit stash save
,我在回答时忘记了 stash
。现在已修正。谢谢你指出来。 - axiac你试过Sourcetree吗:http://www.sourcetreeapp.com/
它可能会解决你的问题。
git stash
是为不同的事情而设计的(它在文档的第一段中有解释)。如果你创建一个新分支并在其中提交更改(以任何组合方式),直到达到所需状态,那么你可以以比存储更灵活的方式做你想做的事情。然后只需切换回之前的分支,就完成了。 - axiac