我想它允许从一个分支移动更改到下一个分支,但这就是cherry picking的用途,如果你没有对你的更改进行提交,也许你不应该将它们移动起来?
有时我会在错误的分支上应用错误的存储,这使我对这个问题感到困惑。
如前所述,如果您需要“每个分支的暂存”,则需要从现有分支派生一个新分支。
此外,除了已经提到的将暂存内容应用到您正在工作的分支中,它还允许您在还没有提交所有更改之前切换分支。这对于常规意义上的挑选操作不太适用,而是用于挑选您的工作副本。
例如,在一个功能分支上工作时,我经常会注意到代码中的一些微小错误或者漂亮问题,这些都与该分支无关。那么,我会立即修复这些问题。当需要提交时,我会有选择性地提交相关更改,但不包括修复和美化内容。相反,我会将这些内容暂存起来,这样就可以切换到我的稳定版修复分支,在那里可以应用暂存并单独提交每个微小的修改。(根据更改的具体情况,我也可能再次将它们暂存起来,以便在不同的功能分支上应用。)
这使我能够深入编程模式,专注于工作,而不必担心代码的正确性。然后,在休息时,我可以仔细地将更改分类整理到各个正确的位置。
如果暂存不是全局的话,这种类型的工作流程将更加困难。
如前所述,如果您想要“分支暂存”,您确实需要从现有分支创建一个新分支。
特别是,我经常在两个版本的同一程序之间切换,而运行完整的 make
需要 10 分钟;能够每个分支暂存已构建的二进制文件将非常方便。我肯定不想将二进制文件放在日志或分支中。 - Clémentgitk --all
" 不再显示我的第一个存储;我以为它可能被覆盖了。在第二个分支中完成工作后,我弹出了那个存储。之后,我的更新后的 "gitk --all
" 再次显示原始存储。 - Daniel Miladinov如果你想要在一个分支上运行的"stash",可以像这样在当前分支的新分支上储存你的更改。
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
希望这能有所帮助!make
命令生成的文件,该怎么办呢?(对于每个分支进行隐藏将节省下次在该分支上进行增量构建的时间,但你肯定不想将这些二进制文件添加到索引中) - Clément对我而言,git-stash最有用的功能是将尚未提交的更改移动到与当前检出分支不同的另一个分支。
例如- 我经常在bug-fixes分支上进行简单更改;只发现我正在处理的更改比我最初猜测的要复杂。 Git-stash是将这组更改移动到另一个分支的最简单方法。