Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 重命名git中的文件夹,而不更改贡献者_Python_Github - Fatal编程技术网

Python 重命名git中的文件夹,而不更改贡献者

Python 重命名git中的文件夹,而不更改贡献者,python,github,Python,Github,我有一个问题:我们正在使用一个暂时没有维护的包。所以我们用叉子叉它是为了自己维护它。包已经存在,可以说它名为package\u a。大多数代码和\uuuu init\uuuu都在包a/文件夹中 现在,我们想制作包含维护代码的自己的包,我们想命名为package\u b。到目前为止还不错,但问题是package\u b希望在package\u b/文件夹中包含代码和\u init\u,而github会在重命名文件夹时更改所有文件的贡献。我希望捐款的信用保持在到期的地方,一万多行代码并不是凭空出现在

我有一个问题:我们正在使用一个暂时没有维护的包。所以我们用叉子叉它是为了自己维护它。包已经存在,可以说它名为
package\u a
。大多数代码和
\uuuu init\uuuu
都在
包a/
文件夹中

现在,我们想制作包含维护代码的自己的包,我们想命名为
package\u b
。到目前为止还不错,但问题是
package\u b
希望在
package\u b/
文件夹中包含代码和
\u init\u
,而github会在重命名文件夹时更改所有文件的贡献。我希望捐款的信用保持在到期的地方,一万多行代码并不是凭空出现在我当地的回购协议中。有什么建议可以让包名为
package\u b
,但将代码保留在原始文件夹
package\u a/


我正在考虑用一些聪明的方法将
包a
导入
包b
或类似的东西,但我希望得到一个明确的答案。

与其复制代码或尝试将a导入b,不如将通用代码提取到a和b都导入的第三个包中。或者可能是一个子类。这并不能解决您的贡献问题,但它确实可以通过复制和粘贴10000行代码来避免维护上的麻烦


Git不记录副本和重命名,但它可以识别何时发生。为了让Git有最好的机会识别副本,只需在自己的提交中执行副本。不要更改内容。然后在第二次提交中,对复制的代码进行任何必要的更改

在普通Git中,您可以轻推
Git日志
Git日志
,以尊重副本并使用
-C
重命名。Git默认情况下不会这样做,因为它更昂贵。 Github将做Github将做的事情

不管Github说谁写了哪一行,他们的贡献仍然会出现在项目历史中。事情就是这样。你做出自己的贡献,然后其他人把自己的工作放在上面。这是正常的。他们的贡献仍在历史上

“纯粹的历史”也是正常的,也就是说,一个变化涉及到许多行,但在其他方面是无关紧要的。例如,如果要重新设置代码的样式,则会导致历史记录
git bull
会说这是最后一次提交代码
git bull-w
在某种程度上缓解了这一问题,Github有一个“忽略空白”选项。历史是正常的,学习跳过历史也是正常的

这些工具对我们有用。不要为工具的好处而弯腰


如果你想对你的贡献者发出特别的呼喊,在你的自述文件中创建一个贡献者部分。

你是否尝试过使用
git mv
将文件夹从
package\u a
移动到
package\u b
@ali是的,不幸的是,它没有像我希望的那样保存历史