使用两个不同特性时的git策略

ryoqjall  于 2022-11-20  发布在  Git
关注(0)|答案(1)|浏览(83)

我和git一起工作已经有一段时间了,现在我遇到了这种情况。
假设我正在feature1分支上处理一个特性 adding_feature_1,然后突然要求我添加特性2。
最明显的做法是转到feature1分支开始的根目录,然后 checkout 新的分支feature2。
然而,如果我这样做,(意味着我 checkout 到根分支)我将无法看到我正在处理的feature1。
如果我想看呢?
更糟糕的是,如果我想运行feature1代码,并且由于运行它需要时间,我想在feature2上工作。
我现在所做的,我认为这是非常 * 错误 * 和混乱的是开始一个新的分支2从分支1,但它变得杂乱无章后,一段时间,因为然后如果我合并它一个分支有两个功能添加,而不是一个。
其他人如何处理这种情况?

xzv2uavs

xzv2uavs1#

如果您想让所有内容保持原样(feature1正在进行中),请在feature2上创建一个新文件夹,您可以在其中使用相同的存储库。
请使用git worktree:它避免了再次克隆存储库。
并且您将有一个单独的feature2文件夹,您可以在其中编码,同时将您的代码与feature1进行比较。

cd /path/to/local/clone
git worktree add  --checkout -b feature2 ..\feature2 $(git merge-base feature1 main)
cd ../feature2
# start working on feature2

相关问题