题
我想它允许将更改从一个分支移动到下一个分支,但这就是樱桃采摘的目的,如果您没有提交更改,也许您不应该移动它们?
我有时在错误的分支应用了错误的存储,这让我想知道这个问题。
解决方案
如前所述,如果您想要“每个分支存储”,那么您确实需要从现有分支中分叉出一个新分支。
此外,除了已经提到的事实之外,存储允许您拉入您正在处理的分支,它还允许您 转变 在你提交所有内容之前分支。这对于通常意义上的樱桃采摘来说很有用,但对于樱桃采摘来说很有用 你的工作副本.
例如,在处理功能分支时,我经常会注意到代码中与该分支无关的小错误或装饰性杂质。好吧,我马上解决这些问题。当需要做出承诺时,我会选择性地提交相关更改,但不会进行修复和修饰。相反,我将这些隐藏起来,这使我可以切换到我的稳定版次要修复分支,然后我可以在其中应用隐藏并单独提交每个次要修复。(根据相关的更改,我还将再次隐藏其中一些,以切换到不同的功能分支,我在其中应用 那些.)
这使我能够在工作时深入编程模式,而不必担心代码的正确管理。然后,当我精神休息时,我可以回去仔细地将我的更改分类到所有正确的架子上。
如果存储不是全局的,这种类型的工作流程将更难以实现。
其他提示
如果您想要一个从分支运行的“存储”,请执行类似的操作以将更改存储在当前分支的新分支上。
git checkout -b new_stash
git commit -a -m "stashed changes"
撤消隐藏的操作
git reset HEAD^
git branch -d new_stash
git stash 特别有用,因为您可以将更改拉入脏树中,即如果您有出色的编辑并且想要进行
git pull
你不能,你可以存储你的更改,拉出然后应用存储
git stash
git pull
git stash apply
git stash clear
希望这有帮助!
git-stash 对我来说最有用,可以将尚未签入的更改移至与当前签出的分支不同的分支。
例如 - 我经常发现自己在错误修复分支上进行简单的更改;却发现我正在做的改变比我最初想象的要复杂。Git-stash 是将一组更改移动到不同分支的最简单方法。