我在主分支上工作,做了一些更改,然后将它们隐藏起来。现在,我的主人在HEAD。
但是现在,我想检索这些更改,但是要从主分支的HEAD版本分支到一个新分支。
我该怎么做呢?
标准程序不管用吗?
git stash save
git branch xxx HEAD
git checkout xxx
git stash pop
短:
git stash
git checkout -b xxx
既然你已经存储了你的更改,你所需要的就是这一行代码:
git stash branch <branchname> [<stash>]
从docs (https://www.kernel.org/pub/software/scm/git/docs/git-stash.html):
创建并签出名为<branchname>从<藏>最初创建,应用在<藏>到新的工作树和索引。如果成功,<藏>是一个格式为stash@{<修订>}的引用,然后删除<藏>没有<藏>,应用最新的一个。 如果运行git stash save的分支已经发生了足够大的变化,导致git stash应用由于冲突而失败,这是非常有用的。因为这个隐藏是在git隐藏运行时的HEAD提交上应用的,所以它会恢复最初的隐藏状态,没有冲突。
创建并签出名为<branchname>从<藏>最初创建,应用在<藏>到新的工作树和索引。如果成功,<藏>是一个格式为stash@{<修订>}的引用,然后删除<藏>没有<藏>,应用最新的一个。
如果运行git stash save的分支已经发生了足够大的变化,导致git stash应用由于冲突而失败,这是非常有用的。因为这个隐藏是在git隐藏运行时的HEAD提交上应用的,所以它会恢复最初的隐藏状态,没有冲突。
如果你在你的工作空间中有一些变化,你想把它们隐藏到一个新的分支中,使用这个命令:
git stash branch branchName
它将使:
一个新的分支(从最初创建存储的提交开始) 将更改移动到该分支 并删除最新的stash(如:git stash pop)
运行此命令后,您将希望git add更改并提交它们。
git add