是否可以为现有配置指定新的本地git存储库位置?

时间:2019-01-15 14:49:26

标签: git git-init

默认情况下,我通常运行git init并将本地存储库放在根目录中。我将项目文件存储和使用在很小的SSD上,但同一台计算机上的BIG OL'SATA HD表现不佳。我当时在想应该将其用于每个项目的实际存储库的实践。


编辑:
我的意思是我具有目录结构:

SMALL-DRIVE>我的项目> .git>存储库文件...
小驱动器>我的项目> src>开发文件...

虽然我想保留第二个,但我想将第一个移到

BIG-DRIVE>存储库>我的项目> .git>存储库文件... (或类似的东西)

一切都停留在同一台计算机上,我推送到的远程存储库将保持不变。

相信,我可以为新项目传递git init这个新路径(很确定我可以自己弄清楚),但是有一种方法可以将现有配置更新为使用新路径?如果是这样,是否有一条命令将移动存储库中的当前文件,还是我将手动移动.git目录?

3 个答案:

答案 0 :(得分:2)

是的,可以。

选项1(首选):镜像

只需运行以下命令即可镜像存储库:

git clone --mirror git@example.com/upstream-repository.git
cd upstream-repository.git
git push --mirror git@example.com/new-location.git

了解有关镜像here

的更多信息

选项2:手动克隆并推送

第一步是将存储库git clone到本地目录。

然后,您使用git remote add <name> <url>

添加新的远程存储库

然后,您只需git push <name> --all即可将所有内容发送到那里

答案 1 :(得分:2)

  

[...]有没有办法更新现有配置以使用新路径?

如果我正确理解了您的问题,那么您目前有一个小型但快速的高清存储库,并且您想

  • 将存储库的.git目录移至大而慢的HD,
  • 但仍将存储库的工作树保留在小型快速HD上。

我对吗?

在这种情况下,git init --separate-git-dir就在您的小巷上。引用git init's man page

  

--separate-git-dir=<git dir>   与其将存储库初始化为$GIT_DIR./.git/的目录,不如在其中创建一个包含实际存储库路径的文本文件。此文件充当到存储库的与文件系统无关的Git符号链接。

     

如果这是重新初始化,则存储库将移动到指定的路径。

因此,只需cd到您的仓库,然后运行

git init --separate-git-dir <desired-location-on-big-and-slow-drive>

  

相信,我可以为新项目通过git init这个新路径[...]

正确。使用与上面相同的命令。

答案 2 :(得分:0)

将新的远程git添加到您的Git Repo

git remote add origin git@yourgit.repo

验证新的远程仓库

git remote -v