如何重命名Git存储库?


433

git mv重命名存储库中的文件或目录。如何重命名Git存储库本身?


1
我试过使用mv重命名我的“存储库主机”中的PROJ0.git,它可以工作。但是我不知道这是对的还是正确的。
谢艳涛2010年

5
您的问题很好。Git有存储库,如果您决定将项目放置在git存储库中,那么它们可以包含诸如Eclipse项目之类的项目。如果那是您想要的,请在下面的答案中查看如何进行。
Danny Remington-OMS

3
git本身没有提供指定存储库名称的规定。根目录名称是与存储库名称有关的唯一事实来源.git/description尽管该文件仅由某些应用程序使用,例如Gitweb
Ujjwal Singh

Answers:


620

重命名Git存储库的含义有多种可能的解释:显示的名称,存储库目录或远程存储库名称。每个步骤都需要不同的步骤来重命名。

显示名称

重命名显示的名称(例如,显示为gitweb):

  1. 编辑.git/description以包含存储库的名称。
  2. 保存文件。

仓库目录

Git不引用所使用的包含存储库的目录的名称git clone master child,因此我们可以简单地重命名它:

  1. 打开命令提示符(或文件管理器窗口)。
  2. 转到包含存储库目录的目录(即,不要进入存储库目录本身)。
  3. 重命名目录(例如,mv从命令行使用或F2从GUI 使用热键)。

远程仓库

重命名远程存储库,如下所示:

  1. 转到远程主机(例如,https://github.com/User/project)。
  2. 按照主机的说明重命名项目(主机之间会有所不同,但通常“设置”是一个很好的起点)。
  3. 转到本地存储库目录(即,打开命令提示符并更改为存储库目录)。
  4. 确定新的网址(例如,git@github.com:User/project-new.git
  5. 使用Git设置新的URL:

    git remote set-url origin git@github.com:User/project-new.git
    

3
在第二种情况下,无论谁克隆了存储库,将会发生什么?
Frederico Schardong 2014年

3
没什么不好。他们保留了原来的名称,但是现在他们的遥控器是错误的:如果要提取更新,则需要连接到新名称。如果你和他们synching或中央存储库将保留原来的名字,一切都将继续工作
亚历克斯·布朗

14
请注意,如果使用子模块,则在第二种情况下的断言“ git不引用此目录名”是错误的:git使用绝对路径引用子模块,因此重命名存储库目录将破坏子模块。参见stackoverflow.com/questions/10144149/…–
爱德华

我将GitHub用于Windows GUI,并且不必更改.git / description文件(我没有一个)。完成最后一个重置原点的步骤后,GUI中显示的名称发生了变化。
乔·恩斯特

4
人们总是提到.git / description,但是却没有提到您实际上对重命名
仓库进行的更改

24

Git存储库没有名称。您可以根据需要重命名包含工作树的目录。


7
是的,一个git repo有个名字。重命名后出现此错误:$ git status fatal: Not a git repository: C:/xxx/.git/xxx fatal: git status --porcelain failed
Sawny 2012年

@Sawny,我不知道这与任何事情有关。
东武2012年

19
您说过git repo没有名字,但这不是事实。如果您使用子模块并且仅重命名文件夹,则会从git中得到错误。见stackoverflow.com/questions/9878860/...
Sawny

6
好的,git存储库中子模块的路径很重要。是真的,但与这个特定问题无关。
东武2012年

5
当然,存储库有一个名称。参见下面的更改方法。
Danny Remington-OMS

19

重命名PRJ0.gitPROJ1.git,然后编辑位于.git/config项目文件中的URL变量。


15

例如,在新的存储库中,。之后$ git init,.git目录将包含文件.git / description。

看起来像这样:

Unnamed repository; edit this file 'description' to name the repository.

在本地存储库上进行编辑不会在远程上对其进行更改。


亚历克斯·布朗的答案包括你的。
谢艳涛2012年

13

如果要重命名存储库,请转到存储库并单击“管理员”,然后重命名。

看到红框警告您有一些天塌下来的东西时,请阅读此问题


12
可能会帮助其他人注意,这是Github的特定建议,一般来说不适用于Git。
Founddrama

1
从2013年1月开始,github指令现在应该是:(登录github),转到您的存储库,然后转到“设置” >>“选项”,然后在其中查找“重命名”按钮。关于发生坏事的红色警告,Droogans链接到另一个,因此仍然强烈建议您进行提问。
食虫性的,2013年

12

要重命名GitHub帐户的任何存储库:

  1. 转到要重命名的特定存储库
  2. 导航到设置选项卡
  3. 在那里,在“存储库名称”部分中,键入要放置的新名称,然后单击 Rename

不是GitHub问题,这是关于git的问题。
robrecord

10

如果您使用的是GitLab或GitHub,则可以以图形方式修改这些文件。

使用GitLab

转到项目设置。在这里,您可以修改项目的名称,最重要的是,您可以重命名您的存储库(那是您开始进入“危险”部分的时间)。

完成此操作后,必须使用以下命令更新本地客户端配置

git remote set-url origin sshuser@gitlab-url:GROUP/new-project-name.git

9
  • 在服务器端,只需像往常一样使用mv命令重命名存储库:

    mv oldName.git newName.git
    
  • 然后在客户端,将[remote "origin"]URL 的值更改为新值:

    url=example.com/newName.git
    

它为我工作。


8

如果您在Eclipse中并已安装Egit,则可以通过执行以下操作来重命名包含项目的存储库:

1)在Eclipse中:关闭存储库中的所有项目。

2)在文件系统中:找到包含存储库的目录/文件夹。

3)在文件系统中:重命名包含存储库的目录/文件夹。

4)在文件系统中:打开包含存储库的目录/文件夹,并重命名要重命名的任何项目的项目目录/文件夹,以使其与项目的新名称匹配。(这不是必需的,但是它使Eclipse中的项目名称与存储库中的项目目录/文件夹保持一致。)

5)在Eclipse中:删除存储库中的所有项目,但请确保不要选中“从文件系统中删除内容”复选框。(项目不应再包含文件系统内容的正确位置,因此在任何情况下都不能删除数据,但是安全起来总比遗憾好。)

6)在Eclipse中:从菜单中选择File | Import ...选项。

7)在Eclipse中:在对话框中打开“ Git”文件夹,选择“ Projects from Git”,然后单击“ Next”。

8)在Eclipse中:在对话框中选择“本地”,然后单击“下一步”。

9)在Eclipse中:在对话框中,单击“添加...”按钮。

10)在Eclipse中:在对话框中,确保选中存储库旁边的复选框,然后单击“完成”。

11)在Eclipse中:在对话框中选择存储库,然后单击“下一步”。

12)在Eclipse中:在对话框中,选择“导入现有项目”单选按钮,选择“工作目录”,然后单击“下一步”。

13)在Eclipse中:在对话框中,选中要处理的项目旁边的复选框,然后单击“完成”。

14)在Eclipse中:如果需要,重命名存储库中的所有项目。(为了使Eclipse和文件系统保持一致,请为它们提供与存储库目录/文件夹中项目目录/文件夹相同的名称。)


+1(在Eclipse中为此所需的14个步骤感到很有趣,尤其是“如果您已经安装了Egit”,还需要数十个步骤...)
Jack Wasey

7

Git本身没有规定指定存储库名称。根目录的名称是与存储库名称有关的唯一事实来源。

.git/description虽然仅由某些应用程序,如使用的GitWeb


5

对于Amazon AWS codecommit用户,

aws codecommit update-repository-name --old-name MyDemoRepo --new-name MyRenamedDemoRepo

参考:这里



4

用Github作为您的遥控器

在Github上重命名远程仓库

关于远程存储库,如果您将Github或Github Enterprise用作远程保存/分发存储库的服务器位置,则可以直接在存储库设置中直接重命名存储库。

在主存储库页面上,设置选项卡在右侧,存储库名称是页面上的第一项:

在此处输入图片说明

Github会将请求重定向到新网址

重命名存储库时,Github中的一个非常不错的功能是,Github将保存旧的存储库名称和所有相关URL,并将流量重定向到新URL。由于您的用户名/组织和回购名称是URL的一部分,因此重命名将更改URL。

由于Github保存了旧的存储库名称并将请求重定向到新的URL,因此,如果任何人在尝试访问问题,Wiki,星号或关注者时都使用基于旧存储库名称的链接,它们仍将到达Github网站上的新位置。Github上也重定向较低级别Git命令喜欢git clonegit fetch

Github重命名存储库帮助中有更多信息

重命名本地仓库名称

正如其他人提到的那样,回购协议的本地“名称”通常被认为是根文件夹/目录名,您可以对其进行更改,移动或将文件夹复制到任何位置,并且完全不会影响回购协议。

Git旨在仅担心根文件夹中的文件。


“如果有人使用基于旧存储库名称的链接...他们仍然会到达Github网站上的新位置”。是的,有这样的功能。对于BitBucket来说,同样的事情是有效的:community.atlassian.com/t5/Bitbucket-questions/…。很高兴知道如何完全销毁所有对旧名称的引用,因为据我了解,它不是重命名而是复制。知道完全重命名的正确过程(并销毁所有旧内容)将非常高兴。
亚历山大·萨莫洛夫

@AlexanderSamoylov我只是在这里猜测,但是我真诚地怀疑任何内容都以旧格式保存。Github应该只是保留旧的存档名称,并将旧存档名称上出现的所有流量重定向到新的存档名称。即https://github.com/oldrepo/some_path只会重定向到https://github.com/newrepo/some_path,这里的一切已经被移动到。唯一的缺点是,旧的回购名称是永久保留的,因此不能重复使用(也可以避免保存旧url的人访问它)。
LightCC

3

主要名称更改在此处(img 1),但也更改了readme.md(img 2)

在此处输入图片说明

在此处输入图片说明


7
问题是关于git而不是github。
谢艳涛

没有重新命名,就像这样
Manjitha teshara


0

在浏览器上打开git存储库,转到“设置”,您可以看到“重命名”按钮。

输入新的“存储库名称”,然后单击“重命名”按钮。


0

您是否尝试过更改项目名称package.json并执行命令git init来重新初始化现有的Git?

您现有的Git历史记录将仍然存在。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.