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