使用git在两个位置跟踪文件片段
我有这样的代码使用git在两个位置跟踪文件片段,git,split,Git,Split,我有这样的代码 void myfunc() { introduction(); while(condition()) { complex(); loop(); interior(); code(); } cleanup(); } 我希望将其复制为两个版本,即: void myfuncA() { introduction(); minorchangeA(); while(condition()) { complex
void myfunc()
{
introduction();
while(condition())
{
complex();
loop();
interior();
code();
}
cleanup();
}
我希望将其复制为两个版本,即:
void myfuncA()
{
introduction();
minorchangeA();
while(condition())
{
complex();
loop();
interior();
code();
}
cleanup();
}
void myfuncB()
{
introduction();
minorchangeB();
while(condition())
{
complex();
modifiedB();
loop();
interior();
code();
}
cleanup();
extracleanupB();
}
git声称跟踪内容而不是文件,所以我需要告诉它这里有块对myfuncA
和myfuncB
都是通用的,这样当与myfunc
的上游更改合并时,这些更改应该同时传播到myfuncA
和myfuncB
?如果是,怎么做
代码的编写可以使myfuncAB通过测试条件A或B在每一点上都做了正确的事情,但这可能会严重妨碍可读性或性能。事实上,git是一个很棒的源代码管理系统,但它很少为您编程。不要重复代码。这就是问题所在 git和任何人都不会为此帮助你 此外,您误解了git的作用:git跟踪文件内容,而不是块。无法告诉git某个文件中的某个或某个块是相同的。git实际上跟踪内容。但无论如何,你应该强调的是音轨;-)它不产生任何内容。我没有要求它产生内容:-)我说我希望它能认识到我复制并粘贴了内容。不复制和粘贴代码是个好主意,但所有规则都可能有例外。这样的git特性不会立即违反DRY原则,因为“真相”只有一个来源。当对另一个进行
myfuncA
或myfuncB
的某些修改时,会出现一个问题,因为它们现在是分开的,所以没有进行修改。谢谢你的反馈。