我在各种地方谷歌搜索了一段时间,但没有找到一个好的答案。什么是stash,它有什么用途?
(混淆来源:使用漂亮的Fuel和Fossil,点击了“Stash changes”按钮,在那里看到带问号的文件,并不知道该怎么处理...)
HEAD
。HEAD
,而不会改变工作目录和暂存区,也不会改变所有的修改。
[工作目录会被更新为新分支所需的文件,但这不是我们解释的一部分。]那么我们如何在多个分支上工作呢?
大多数Git用户使用stash
来实现同时在多个分支上工作的能力。git stash
是实现这一目标的基本方法,因为git stash
会将我们的工作保存在一个名为stash的独立区域中。
git worktree
会创建一个新的工作目录,允许我们同时在多个分支上工作。每个副本都指向原始仓库,而3-states
是一个新的、全新的副本。这样我们就不需要使用git stash
甚至克隆一个新的仓库,因为这些工作目录共享同一个仓库,我们可以在任何工作目录上检出任何分支,可以进行cherry-pick或合并,所有操作都将在我们的本地机器上完成。
用法:
git worktree add <second path>
Fossil、Git 以及可能其他版本控制系统都采用了一个名为“stash”的概念。Pro Git 有一节专门讲解 stash。其中一部分内容是:
Stash 将工作目录的“脏”状态 - 也就是修改过的跟踪文件和暂存更改 - 保存在未完成更改的堆栈中,您可以随时重新应用它们。
换句话说,这是一种在做其他事情时保存当前工作的方法,而不会进行“真正”的提交或影响您的存储库历史记录。