Git mv重命名存储库中的文件或目录。如何重命名Git存储库本身?
对于重命名Git存储库的含义有多种可能的解释:显示的名称、存储库目录或远程存储库名称。每一种都需要不同的重命名步骤。
显示的名字
重命名显示的名称(例如gitweb所显示的名称):
编辑.git/description以包含存储库的名称。 保存文件。
存储库目录
Git不会引用包含存储库的目录的名称,就像Git克隆主子目录所使用的那样,所以我们可以简单地重命名它:
打开命令提示符(或文件管理器窗口)。 更改到包含存储库目录的目录(即,不要进入存储库目录本身)。 重命名目录(例如,从命令行使用mv或从GUI使用F2热键)。
远程存储库
重命名远程存储库如下所示:
转到远程主机(例如https://github.com/User/project)。 按照主机的指示重命名项目(将因主机而异,但通常设置是一个很好的起点)。 转到本地存储库目录(即,打开命令提示符并更改到存储库目录)。 确定新的URL(例如,git@github.com:User/project-new.git) 使用Git设置新的URL: git remote set-url origin git@github.com:User/project-new.git
例如,在一个新的存储库中,在$ git初始化之后,.git目录将包含文件.git/description。
看起来是这样的:
不愿透露姓名的库;编辑这个文件'description'来命名存储库。
在本地存储库上编辑它不会在远程存储库上更改它。
如果你在Eclipse中并且已经安装了Egit,那么你可以重命名包含项目的存储库,方法如下:
1)在Eclipse中:关闭存储库中的所有项目。
2)在文件系统中:找到存储库所在的目录/文件夹。
3)在文件系统中:重命名存储库所在的目录/文件夹。
4)在文件系统中:打开包含存储库的目录/文件夹,重命名任何您打算重命名的项目的项目目录/文件夹,使其与项目的新名称匹配。(这不是必需的,但它使Eclipse中的项目名称与存储库中的项目目录/文件夹保持一致。)
5)在Eclipse中:删除存储库中的所有项目,但确保不要勾选“从文件系统中删除内容”复选框。(该项目应该不再包含文件系统内容的正确位置,因此数据在任何情况下都不能被删除,但安全总比遗憾好。)
6)在Eclipse中:从菜单中选择文件|Import…选择。
7)在Eclipse中:在对话框中打开“Git”文件夹,选择“Projects from Git”,然后单击“Next”。
8)在Eclipse中:在对话框中选择“Local”,然后单击“Next”。
9)在Eclipse中:在对话框中点击“Add…””按钮。
10)在Eclipse中:在对话框中,确保存储库旁边的复选框被选中,然后单击“Finish”。
11)在Eclipse中:在对话框中选择存储库并单击“Next”。
12)在Eclipse中:在对话框中选择“Import existing projects”单选按钮,选择“Working Directory”,然后点击“Next”。
13)在Eclipse中:在对话框中选中你想要进行的项目旁边的复选框,然后单击“完成”。
14)在Eclipse中:如果需要,重命名存储库中的任何项目。(为了保持Eclipse和文件系统之间的一致性,将它们的名称与存储库目录/文件夹中的项目目录/文件夹相同。)
在服务器端,像往常一样使用mv命令重命名存储库: mv oldName。git newName.git 然后在客户端,将[remote "origin"] URL的值更改为新的值: url = example.com/newName.git
这对我很管用。
简单来说,只需删除Eclipse项目(不要选择磁盘上的内容),然后重新导入该项目。
Eclipse将识别连接到Git的项目,并将其放入Git透视图中。
这招很管用。
Git本身没有指定存储库名称的规定。根目录的名称是与存储库名称相关的唯一真实来源。
但是.git/description只被一些应用程序使用,比如GitWeb。
对于Amazon AWS codecommit用户,
aws codecommit update-repository-name --old-name MyDemoRepo --new-name MyRenamedDemoRepo
参考:
如果你正在使用GitLab或GitHub,那么你可以图形化地修改这些文件。
使用GitLab
转到项目设置。在那里,您可以修改项目的名称,最重要的是,您可以重命名存储库(这是您开始进入危险部分的时候)。
完成此操作后,必须使用更新本地客户机配置
git remote set-url origin sshuser@gitlab-url:GROUP/new-project-name.git
在Windows 10上,通过命令行,这个方法很管用:
git checkout <oldname>
git branch -m <newname>
从如何重命名本地和远程Git分支
这是一个本地存储库(不在任何远程设备上)。
Github作为你的遥控器
在Github上重命名远程回购
关于远程存储库,如果您使用Github或Github Enterprise作为远程保存/分发存储库的服务器位置,您可以直接在repo设置中重命名存储库。
从主回购页面,设置选项卡在右边,回购名称是页面上的第一项:
Github将把请求重定向到新的URL
当你重命名一个回购时,Github中一个非常好的功能是,Github将保存旧的回购名称和所有相关的url,并将流量重定向到新的url。由于您的用户名/org和回购名称是URL的一部分,重命名将改变URL。
由于Github保存旧的回购名称,并将请求重定向到新的url,如果任何人在试图访问问题、wiki、明星或追随者时使用基于旧回购名称的链接,他们仍然会到达Github网站上的新位置。Github还重定向低级Git命令,如Git克隆,Git获取等。
更多信息请参见Github帮助重命名回购
重命名本地回购名称
正如其他人所提到的,回购的本地“名称”通常被认为是根文件夹/目录名称,您可以更改该名称、移动或将文件夹复制到任何位置,这完全不会影响回购。
Git被设计成只关心根文件夹中的文件。
这是一个非常简单的解决方案,尽管有些人可能会认为它“不优雅”或“黑客”,它掩盖了我的git不专业。
Verify that your local repo has everything committed and pushed (to remote origin). Go to the website of the remote host (for example, https://github.com/User/project-original-name). Follow the host's instructions to rename the repo (will differ from host to host, but usually Settings is a good starting point). (For the purposes of this guide, suppose you renamed your repo to "project-new-name".) Locally remove your whole repo (e.g., rm -r project-original-name). Do a "fresh checkout": git clone https://github.com/User/project-new-name
注意:如果回购的另一个用户不遵循这些说明,只是在未来进行拉取,我不知道这会产生什么影响。
@Parison
Server Side: mv oldName.git newName.git
Client Side: ./.git/config change [remote "origin"] | url to newName.git
“重命名git存储库本身”的含义不明确,但有一种解释是更改远程git存储库的URL。
git remote set-url origin url
https://www.commands.dev/workflows/change_url_of_remote_git_repository
我收藏^页,它告诉我命令,并允许我玩周围的参数。超级有用,我觉得。
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的git添加?
- Rubymine:如何让Git忽略Rubymine创建的.idea文件
- Gitignore二进制文件,没有扩展名
- Git隐藏错误:Git隐藏弹出并最终与合并冲突
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?
- Git合并与强制覆盖
- Git拉另一个分支
- 在Bash命令提示符上添加git分支
- 如何更改Git日志日期格式
- git pull -rebase和git pull -ff-only之间的区别