我想知道是否可以从藏匿处采摘樱桃.
git stash save "test cherry-pick from stash"
*git cherry-pick stash@{0}* --> Is this possible?
Run Code Online (Sandbox Code Playgroud)
我在exception上面尝试时得到以下内容command:
Error:
~/Documents$ git cherry-pick stash@{0}
error: Commit 4590085c1a0d90de897633990f00a14b04405350 is a merge but no -m option was given.
fatal: cherry-pick failed
Run Code Online (Sandbox Code Playgroud)
Kla*_*urn 33
问题是存储包含两个或三个提交.当存储时,修改后的工作树存储在一次提交中,索引存储在一次提交中,并且(如果使用该--include-untracked标志)存储在第三次提交中的任何未跟踪文件.
如果你使用gitk --all并藏匿,你可以看到这个.

stash@{0} 指向包含工作树的提交.
但是,如果你这样做,你可以从那个提交中挑选
git cherry-pick "stash@{0}" -m 1
Run Code Online (Sandbox Code Playgroud)
其原因cherry-pick认为,藏匿的合并,因此需要的-m 1参数是藏匿犯有multpile父母,你可以在图中看到.
我不确定你想通过樱桃采摘实现什么.一种可能的替代方法是从藏匿处创建分支.提交更改并将它们合并到当前分支.
git stash branch stashchanges
git commit -a -m "changes that were stashed"
git checkout master
git merge stashchanges
Run Code Online (Sandbox Code Playgroud)