我使用Tower 2来管理我的bitbucket git repos。我已经在repo中添加了一些img文件并编辑了一些html和js文件,这些文件还没有准备好提交,所以我将它们保存为存储。这适用于html和js文件,这些文件被编辑(而不是新文件)img文件,其中新文件,但它不让我存储这些。
有没有办法存储新文件或者是否需要先提交?
答案 0 :(得分:2)
这不是一个git-tower的答案,因为我没有使用它并且对此一无所知,只是关于git stash
的一般观点。
默认情况下,git stash
(其默认操作是执行git stash save
)保存当前索引的内容(即到目前为止您构建的下一个提交)和内容当前工作树,通过进行两次提交来实现。因为它提交了提交,所以它遵循通常的提交规则:只有已经在索引中的文件才会被提交。这意味着特别是未跟踪和忽略的文件不会被隐藏。
但是,git stash save
的命令行版本确实有两个标志可用于修改此行为。 -u
或--include-untracked
标志告诉它保存未跟踪文件,-a
或--all
标志告诉它保存所有(未跟踪和忽略)文件。使用这些标记时,git stash save
也只是进行第三次提交,以保存这些文件。
git stash save
所做的棘手的事情是将这两个或三个提交放在通常的分支系统之外,作为一种方式。它还可以清除(通过git reset --hard
,并在使用-u
或-a
,git clean
时通过提交保存状态后的工作树。
这些技巧很方便,但是can be confusing。对于那些刚接触git的人来说,从普通提交开始可能更好,因为你应该有工具来进行私有(未发布)提交并修改和组合它们(例如,通过交互式rebase和squash)。
答案 1 :(得分:2)
实际上有两种方式:
在藏匿处保存更改
由于藏匿是如此重要的特征,塔非常使用它 easy:在工具栏中,您可以单击[Save Stash]或按[⌘+⇧+ S] 任何时候保存您当前的本地更改。
提供简短但描述性的信息有助于您区分 后来不同的Stashes。 作为一种选择,Tower还提供包括 保存Stash时未跟踪的文件。 (由我自己强调)
对于Save-Stash-Dialog中的存储消息,您需要做的只是check the little checkbox following the textfield
。
如果你这样做了,但你的藏匿没有正确保存,你可能应该向Tower Support团队办理登机手续。为了使他们的工作更轻松,您可能希望首先通过命令行测试存储。
无论您使用何种软件,都可以通过命令行工具手动存储。
您要查找的命令是git stash save -u
由于torek's回答解释了git stash下发生了什么,我强烈建议你阅读它和链接的问题。简而言之,Tower确实在内部使用命令行工具,并为您提供了一个复杂的GUI界面。与往常一样,您可以通过the manual on git-stash深入了解详细信息和选项。