我现在遇到一些麻烦我正在使用git flow并创建了一个名为feature/newbranch
的功能,我正在开发。我想隐藏我的更改并将其保存到feature/newbranch
所以我认为我所要做的就是:
git stash (in develop)
git checkout 'feature/newbranch'
git stash pop
这会改变我的新分支,但是当我开始发展
时git checkout develop
我所有的藏匿变化仍在那里。
我做错了吗?
答案 0 :(得分:3)
在您提交之前,没有任何内容放入分支。你在这里做的是将藏匿的内容放入工作树中。
通过阅读以下问题的最佳答案,您应该会有更好的想法:Difference between HEAD / Working Tree / Index in Git
答案 1 :(得分:2)
未提交的更改仅存在于工作目录中,并且未绑定到特定分支。
如果要将隐藏的更改应用于分支,请使用git stash apply
而不是git stash pop。 git stash pop
将自动丢弃最近的藏匿处,而git stash apply仅应用它,但不会将其删除。
答案 2 :(得分:2)
不,git stash pop
仅尝试应用上次执行git stash
时保存的修补程序/更改。它不会对当前分支进行任何更改。如果你弄脏你工作的树,即使你切换分支也会变脏。有时你甚至无法通过污垢工作树来切换树枝。
要在切换分支之前清理当前工作树,您应该执行git reset --hard