使用git,如何保存/暂停正在进行的重大改变以做其他事情,然后回到它?

aut*_*tra 8 git

所以我已经开始在我当前的主人(75次提交)上修改一个大分支.我知道这将花费我一天左右的时间.与此同时,我需要解决另一个公关的一些评论.

如何在不重新克隆回购或复制文件夹的情况下暂停我当前的rebase来修改我的PR(这些当然会有效)?这甚至可能吗?

wjl*_*wjl 8

没有内置的方法可以"暂停"我知道的rebase,尽管你可以用足够的git技巧完成类似的事情.

但是,在您所描述的情况下,一个更简单的解决方案就是在一个工作目录中执行您的rebase,并在另一个工作目录中执行您需要执行的其他更改.

要获取新的工作目录,您可以:

  • 使用一个简单的git clone方法获取一个新的工作目录(和一个本地存储库,因此您需要将结果包推/拉原始工作目录).

  • 或者,看看git worktree,它可以帮助您使用完全相同的存储库数据管理多个工作树.

  • 2 年后再次评论说 git worktree 现在是我日常工作流程中非常重要的一部分,非常感谢! (3认同)
  • 好的!`git worktree` 完美地完成了这项工作!这并不完全是我想要的,但它仍然比重新克隆完整的存储库要好得多。 (2认同)
  • 哦,我的上帝!我之前从未遇到过`git worktree`,但是在看完这个答案并做了10分钟的研究之后......我简直不敢相信我之前没有听说过它!它可以为我节省太多压力!谢谢你的回答! (2认同)