0

我使用 Tower 2 来管理我的 bitbucket git repos。我在 repo 中添加了一些 img 文件并编辑了一些 html 和 js 文件,这些文件还没有准备好提交,所以我将它们保存为存储。这对于编辑过的 html 和 js 文件(而不是新文件)和新文件的 img 文件,但它不允许我存储这些文件。

有没有办法存储新文件或者需要先提交它们?

4

2 回答 2

2

TL'DR:是的。

其实有两种方式:

使用 Tower 2 存储未跟踪的文件

塔 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

了解 git-stash

正如torek 的回答解释了 git stash 在幕后发生了什么,我强烈建议您阅读它和链接的问题。简而言之,Tower 确实在内部使用了命令行工具,并为您提供了复杂的 GUI 界面。与往常一样,您可以通过git-stash 上的手册深入了解详细信息和选项。

于 2016-03-30T11:49:27.890 回答
2

这不是一个 git-tower 答案,因为我不使用它并且对它一无所知,而只是关于git stash.

默认情况下,git stash(其默认操作是执行 a git stash save)保存当前索引的内容(即,您目前正在构建的下一个提交)和当前工作树的内容,并通过两次提交来做到这一点。因为它进行提交,所以它遵守通常的提交规则:只有已经在索引中的文件才会被提交。这意味着特别是未跟踪和忽略的文件不会被隐藏。

但是,命令行版本git stash save确实有两个标志,您可以提供这些标志来修改此行为。-uor标志告诉它保存未跟踪的--include-untracked文件,-aor--all标志告诉它保存所有(未跟踪和忽略的)文件。使用这些标志时,git stash save只需进行第三次提交即可保存这些文件。

棘手的事情git stash save是将这两个或三个提交放在通常的分支系统之外,作为一种放在一边的袋子。在通过提交保存状态后,它还会清理(通过git reset --hardand,当使用-uor-a时)工作树。git clean

这些技巧很方便,但可能会令人困惑。对于那些刚接触 git 的人来说,从普通提交开始可能会更好,因为您应该有工具来获取私有(未发布)提交并修改和组合它们(例如,通过交互式 rebase 和 squash)。

于 2016-03-29T17:04:53.747 回答