gpt4 book ai didi

python - 在不更改贡献者的情况下重命名 git 中的文件夹

转载 作者:行者123 更新时间:2023-12-04 07:53:53 25 4
gpt4 key购买 nike

我有一个问题:我们正在使用一个暂时没有维护的包。所以我们 fork 了它以便自己维护它。包已经存在假设它被命名为 package_a .大部分代码和__init__package_a/文件夹。
现在我们想要制作我们自己的包,其中包含我们维护的代码,我们想要命名为 package_b .到目前为止一切顺利,但问题是 package_b想要代码和__init__package_b/重命名文件夹时,文件夹和 github 会更改所有文件的贡献。而且我希望贡献的功劳保持在应有的位置,10k+ 行代码不会凭空出现在我的本地存储库中。任何建议我们如何将包命名为 package_b但保留原始文件夹中的代码package_a/ ?
我正在考虑尝试一些巧妙的导入方式package_a进入 package_b或类似的东西,但我希望有一个明确的答案。

最佳答案

不要复制代码或尝试将 A 导入 B,而是将公共(public)代码提取到 A 和 B 都导入的第三个包中。或者也许是一个子类。这并不能解决您的贡献问题,但它确实避免了通过复制和粘贴 10,000 行代码来造成大的维护麻烦。

Git 不会记录副本和重命名,但它可以识别它们何时发生。为了给 Git 识别副本的最佳机会,请仅在其自己的提交中执行副本。不更改内容。然后在第二次提交中对复制的代码进行任何必要的更改。
在普通 Git 中,您可以轻推 git loggit blame使用 -C 尊重副本和重命名. Git 默认不这样做,因为它更昂贵。
Github 会做 Github 会做的事情。
不管 Github 说谁写了哪一行,他们的贡献仍然会留在项目历史中。事情就是这样。你做出你的贡献,然后其他人把他们自己的工作放在上面。这很正常。他们的贡献永存于历史。
“历史纯粹”也很正常,即一个变化涉及多条线,但在其他方面微不足道。例如,如果您要重新设计会导致历史纯粹的代码。 git blame会说这是触摸代码的最后一次提交。 git blame -w在某种程度上缓解了这种情况,Github 有一个“忽略空格”选项。历史纯粹是正常的,学习跳过它也是正常的。
这些工具对我们有用。不要为了工具的利益而弯曲自己。
如果您想特别向您的贡献者大声疾呼,请在您的 README.md 中创建贡献者部分。

关于python - 在不更改贡献者的情况下重命名 git 中的文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66804369/

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