重命名 Git 存储库有哪些副作用

Which are the side effects of renaming a Git repository

假设我需要重命名一个 Git 存储库,该存储库已被许多开发人员下载。

如果我重命名这个存储库,会发生什么副作用,如果有的话?我的意思是除了开发人员必须在他们的本地存储库中执行更改以更改其远程存储库之外这个

git remote set-url origin new_url

为了论证,请考虑 Git 服务器是私人服务器,所有开发人员都属于同一家公司。

关于它的价值,我已经检查了 Git 中关于重命名存储库的其他问题,但其中 none 专门谈到了副作用,除了 git remote 更改。

How do I rename a Git repository?

How do I rename a repository on GitHub?

正如我所说 ,更改名称唯一真正的“副作用”是每个人都使用 使用 名称必须更改 他们的用途也是如此。这不完全是副作用,因为它是主要作用:您已更改名称!

因此更有趣的问题是:谁使用这个名字?这里的一些答案是显而易见的:它存储在各种 URL 中,通常在各种 "遥控器”,如 origin:

$ git config --get remote.origin.url
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/

(此克隆早于 GitHub 上的 public 访问权限,例如 https://github.com/torvalds/linux,否则我可能会使用那个)。如果 Linus Torvalds 在这里重命名他的 Git 存储库,我将不得不更改存储的 URL。但是你自己已经说出来了。

那么:else 存储库的名称可能存储在哪里?我能想到的唯一其他地方是:

  • 在各种 shell 脚本和 YAML 文件等中,无论出于何种原因,它们都存储在其中;和
  • in --shared and/or --reference 克隆,它在存储库中设置 Git 调用的 alternates

如果你做了这样的克隆,你应该检查一下。如果 Git 有更方便的方法来做它可能会很好,但基本上现有的方法是找到所有 .git 目录并检查其中的 objects/info/alternates。另见 What are the differences between git clone --shared and --reference?

Shell 脚本、YAML 文件等有多种形式,虽然明显的“grep”样式检查很明显,但没有通用的方法来找到它们。 (它仍然可能会遗漏任何通过 and/or 压缩转换为二进制文件的内容。)