gpt4 book ai didi

git - 使用不同版本的 API 维护 git 分支的策略?

转载 作者:太空狗 更新时间:2023-10-29 13:46:35 26 4
gpt4 key购买 nike

有没有一种有效的方法可以使用 git 来管理基于相同代码逻辑但支持不同 API 的两个分支?下面是一个具体示例:假设我有一个存储库,其中包含一个名为 abc.py 的 Python 2 文件。在分支 py2 上的提交 A 中,文件内容为:

print 'A'

现在我从 A 分支出一个新的 py3 分支,并使用以下内容提交 A3:

print('A')

回到 py2 分支,有人用内容做了一个新的提交 B

print 'A'
print 'B'

py3 上,我 merge py2 以获得 B 更新并得到这个 merge 冲突:

<<<<<<< HEAD
print('A')
=======
print 'A'
print 'B'
>>>>>>> 9d898

因此关于print 'A' 的冲突再次出现。我解决这个问题

print('A')
print('B')

现在在 py2 中有提交 C

print 'A'
print 'B'
print 'C'

并将其 merge 到 py3 中会产生冲突

<<<<<<< HEAD
print('A')
print('B')
=======
print 'A'
print 'B'
print 'C'
>>>>>>> 2c5a5

因此所有更改再次作为 merge 冲突重新提出。

似乎使用这种频繁从 py2 merge 到 py3 的方法,每次 merge 都会比前一个更复杂和痛苦。有没有一种方法可以使用git来维护这样的两个分支,可以更好地 merge 以前的 merge 历史?如果没有,我想我最好尽可能少地进行大的“ catch ” merge ,而不是频繁地进行小 merge ,这通常是最好的方法。

背景:我正在尝试将一个项目从 Python 2 移植到 Python 3。如果我能立即做到这一点,我会这样做并放弃对 Python 2 的支持,但我不能立即做到,所以我必须允许开发在 Python 2 分支上,而 Python 3 端口在另一个分支中完成。我知道许多大型项目通过一个代码库同时支持 2 和 3 的阶段进行过渡。因为一旦 Python 3 工作,我就不需要支持 Python 2,我认为如果我只进行单向移植,移植过程会更简单,但是从 Python 2 移植更新的过程似乎比我最初想象的要困难.

免责声明:我知道我的示例很简单,可以通过使用 Python 2 中的 __future__ 中的打印功能来解决,但并不是所有事情都如此简单。此外,我认为这个问题更广泛地适用于其他情况,而不仅仅是 Python 2/3。

最佳答案

尽管听起来可能令人失望,但我认为分支机构可能不是完成这项工作的正确工具。这些分支通常被称为“长时间运行的分支”,通常在实践中从未像它们最初在理论上看起来那么有用。

我建议更好的工具是文本预处理器,如 gpp、m4 或(如果是 c/c++ 项目)cpp。

关于git - 使用不同版本的 API 维护 git 分支的策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44547032/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com