3

我现在遇到了一些麻烦,我正在使用 git flow 并创建了一个名为feature/newbranch并且我正在开发的功能。我想隐藏我的更改并将它们保存到,feature/newbranch所以我认为我所要做的就是:

git stash  (in develop)
git checkout 'feature/newbranch'
git stash pop

这会在我的新分支中进行更改,但是当我开始开发时

git checkout develop

我所有隐藏的更改仍然存在。

难道我做错了什么?

4

3 回答 3

3

在您提交之前,不会将任何内容放入分支中。您在这里所做的是将存储的内容放入工作树中。

您应该通过阅读以下问题的最佳答案获得更好的主意:Git 中 HEAD / Working Tree / Index 之间的区别

于 2012-09-14T23:02:34.573 回答
2

未提交的更改仅存在于工作目录中,并且不绑定到特定的分支。如果要将隐藏的更改应用于分支,请使用git stash applygit stash pop 代替。git stash pop将自动丢弃最近的存储,而 git stash apply 仅应用它,但不会删除它。

于 2012-09-14T22:56:35.827 回答
2

不,git stash pop 只尝试应用您上次保存的补丁/更改git stash。它不会对当前分支提交任何更改。如果你弄脏了你的工作树,即使你切换分支它也会保持肮脏。有时您甚至无法切换树枝,因为树木很脏。

要在切换分支之前清理当前工作树,您应该执行git reset --hard

于 2012-09-14T22:57:03.063 回答