我有一些正在使用的特定于存储库的开发工具,并且正在与其他任务“并行”进行开发-它们不是我当前任务的一部分,但是我正在使用它们来工作,在工作过程中,我可能会改进它们以在此处或此处添加缺少的功能。
我想要的是在我目前正在从事的工作之上“覆盖”这个开发工具补丁,并可能不时切换到提交覆盖。 git是否支持这种工作流程?
答案 0 :(得分:1)
如果您想在这些开发工具上进行多次提交,我想您可以使用一个单独的分支,该分支将从您的当前工作中分支出来,并且当您需要在当前工作的各个分支之间进行切换时,可以重新设置基础
假设您具有以下提交树:
D --- E < branch `devtools`
/
A --- B --- C < branch `currentwork`
\
F < branch `otherwork`
如果您已从远程获取了对currentwork
的新提交,并想更新devtools
分支,只需运行
$ git rebase currentwork
您的提交树如下所示(假设G
是您提取的新提交):
D' --- E' < branch `devtools`
/
A --- B --- C --- G < branch `currentwork`
\
F < branch `otherwork`
如果您需要使用分支机构otherwork
中的代码来处理devtools,请运行
$ git rebase currentwork --onto=otherwork
这棵树看起来像:
A --- B --- C < branch `currentwork`
\
F < branch `otherwork`
\
D' --- E' < branch `devtools`
您可能还希望将devtools分支推送到远程站点,以免丢失工作,但请记住,在重新设置基准之后,您将不得不强制推送(git push -f
),因为更新将不要快进。