使用 Git 重命名远程(裸)仓库

8

我运行了一个仅包含裸仓库的 git 服务器。假设我有一个名为 DIG.git 的裸仓库,我通常使用以下命令进行克隆:

git clone 55.66.77.88:git/DIG.git

我想把服务器上的裸仓库从DIG.git重命名为DIGit,这样我就可以执行以下操作

git clone 55.66.77.88:git/DIGit

我可以直接登录服务器并执行该操作吗?

mv DIG.git DIGit

那么,这被认为是不良行为吗?如果是的话,重命名裸远程的正确方式是什么?

1个回答

11
您可以随意更改git repo(裸体或非裸体)的顶级文件夹名称。 当它是一个裸体repo时,将其命名为带有.git扩展名的文件夹只是命名约定,但这并不是强制性的。 一旦您已经在服务器上重命名了repo,您必须更改之前所做的本地克隆的原始url。
cd /path/to/local/clone
git remote set-url origin 55.66.77.88:git/DIGit

谢谢!这个操作也可以在本地完成,即只使用git命令来重命名远程裸库并相应地更改URL。例如,在我完全控制裸远程的服务器上,但无法登录到该服务器时,这将非常有趣。 - lord.garbage
1
@brauner,您可以在本地重命名存储库,但仍需要保持相同的原始URL,因为您无法从本地工作站重命名远程存储库:您需要访问服务器(或在服务器上安装像gitolite这样的ACL系统)。 - VonC
@brauner 使用 gitolite,可以参考 http://gitolite.com/gitolite/gitolite.html#cb-commands,在 https://dev59.com/j2445IYBdhLWcg3wws4u#5164868 中描述的实现重命名。 - VonC
@LéaMassiot a:/.git/?那是本地路径吗? - VonC
在Windows环境中,考虑局域网上的两台机器A和B。在B上,包含.git目录的目录是一个共享目录。在A上,我们将网络驱动器a:映射到这个.git目录上。我之所以提到这一点,是因为几乎所有的git命令示例都是使用URL给出的...所以,是的,我们可以说它是一个本地路径... - Léa Massiot
@LéaMassiot 没错!本地协议(https://git-scm.com/book/id/v2/Git-on-the-Server-The-Protocols#_local_protocol)指的是 file:///a/.git(顺便说一下,这也是一个URL!) - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接