【发布时间】:2013-03-24 05:18:11
【问题描述】:
在我的一个开发分支中,我对我的代码库进行了一些更改。在我能够完成我正在处理的功能之前,我必须将我当前的分支切换到 master 来演示一些功能。但是仅使用“git checkout master”就保留了我在开发分支中所做的更改,从而破坏了 master 中的一些功能。所以我所做的就是在我的开发分支上提交更改,并使用提交消息“临时提交”,然后为演示签出 master。
现在我已经完成了演示并回到我的开发分支上工作,我想删除我所做的“临时提交”,同时仍然保留我所做的更改。这可能吗?
【问题讨论】:
-
下次:
git stash -
@MattBall,不一定。虽然
git stash是一个很好的工具,但“正在进行的工作”一次性提交也是一个相当合法的设备。 -
这是来自 Github 的绝佳资源:How to undo (almost) anything with Git
-
@MattBall @kostix 是的,stash 特别不适合“长期”存储,因为它是整个 repo 的一个全局堆栈。我希望能够将更改存储在一个分支上,然后转到其他分支,做任何其他事情,几天后回来,而不必担心我可能在过渡期间在其他分支上使用了
git stash。 -
stash值得注意的一点是它完全是本地的,并且很容易因 repo 删除或重新创建或硬件故障或丢失而导致代码丢失。 IMO,它真的应该只用于非常短期的 WIP。在去度假之前喜欢 WIP 提交 :P .. 称之为大脑转储提交!