由于 space 问题,如何更改 git-bare 存储库位置?
How to change git-bare repository location due to space issues?
我在 x:/Archivos Python/EPPTRA2.git/
下有一个 git-bare
存储库位置,所有团队都在从该存储库中拉取和推送更改。 /x
是我们办公室网络中的共享磁盘。
不够space
不过最近推了很多大文件,发现不够space。
$ git push
Counting objects: 1077, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (1073/1073), done.
remote: fatal: write error: Not enough space
fatal: sha1 file '<stdout>' write error: Broken pipe
error: failed to push some refs to 'x:/Archivos Python/EPPTRA2.git/'
我想达到的目标
我想将 git-bare
存储库移动到另一个位置,假设 /s/EPPTRA.git/
在其他共享网络磁盘中,有足够的 space。然后更新我队友的本地存储库以确保它们指向新的 git-bare
存储库位置。
问题
如何更改 git-bare
存储库位置?
如何将我的最后一次提交推送到新的 git-bare
存储库位置?
我需要执行哪些步骤才能让我的所有队友都指向 git-bare
存储库新位置?
我正在寻找来自 git-bash
的命令以执行这些任务。
我相信我可以正确地实现我想要的。我想可能还有其他方法。
第 1 步:创建新的 git-裸存储库
首先从新位置 /s
我创建了一个裸仓库:
$ cd /s
$ git init --bare EPPTRA2.git
Initialized empty Git repository in S:/EPPTRA2.git/
第 2 步:将非裸仓库镜像到新的 git-裸仓库
之后我去了一个非裸存储库,它没有我最后一次提交,并将存储库镜像到裸存储库(我实际上在 /s/epptra2
下有一个非裸存储库,可以使用那个):
$ cd /s/epptra2
$ git push --mirror /s/epptra2.git
Counting objects: 22412, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (7300/7300), done.
Writing objects: 100% (22412/22412), 1.68 GiB | 1.96 MiB/s, done.
Total 22412 (delta 17271), reused 19487 (delta 15075)
第 3 步:更改远程源位置
然后我不得不删除以前的来源并创建一个新的:
$ cd /d/epptra2
$ git remote rm origin
$ git remote add origin /s/epptra2.git
$ git config master.remote origin
$ git config master.merge refs/heads/master
$ git branch -u origin/master
第 4 步:将提交的更改推送到新的裸存储库
最后我推送了我从本地存储库完成的提交:
$ git push
Counting objects: 1077, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (1073/1073), done.
Writing objects: 100% (1077/1077), 4.53 GiB | 922.00 KiB/s, done.
Total 1077 (delta 441), reused 0 (delta 0)
To S:/epptra2.git
da05677..d1c8610 master -> master
第 5 步:更新所有本地存储库的远程来源
对于我队友的本地存储库,我必须重复步骤 3,然后执行 git pull
以确保一切正常。
注意:/d
是我PC中的本地磁盘,/s
和/x
是网络挂载的驱动器。
我在 x:/Archivos Python/EPPTRA2.git/
下有一个 git-bare
存储库位置,所有团队都在从该存储库中拉取和推送更改。 /x
是我们办公室网络中的共享磁盘。
不够space
不过最近推了很多大文件,发现不够space。
$ git push
Counting objects: 1077, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (1073/1073), done.
remote: fatal: write error: Not enough space
fatal: sha1 file '<stdout>' write error: Broken pipe
error: failed to push some refs to 'x:/Archivos Python/EPPTRA2.git/'
我想达到的目标
我想将 git-bare
存储库移动到另一个位置,假设 /s/EPPTRA.git/
在其他共享网络磁盘中,有足够的 space。然后更新我队友的本地存储库以确保它们指向新的 git-bare
存储库位置。
问题
如何更改 git-bare
存储库位置?
如何将我的最后一次提交推送到新的 git-bare
存储库位置?
我需要执行哪些步骤才能让我的所有队友都指向 git-bare
存储库新位置?
我正在寻找来自 git-bash
的命令以执行这些任务。
我相信我可以正确地实现我想要的。我想可能还有其他方法。
第 1 步:创建新的 git-裸存储库
首先从新位置 /s
我创建了一个裸仓库:
$ cd /s
$ git init --bare EPPTRA2.git
Initialized empty Git repository in S:/EPPTRA2.git/
第 2 步:将非裸仓库镜像到新的 git-裸仓库
之后我去了一个非裸存储库,它没有我最后一次提交,并将存储库镜像到裸存储库(我实际上在 /s/epptra2
下有一个非裸存储库,可以使用那个):
$ cd /s/epptra2
$ git push --mirror /s/epptra2.git
Counting objects: 22412, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (7300/7300), done.
Writing objects: 100% (22412/22412), 1.68 GiB | 1.96 MiB/s, done.
Total 22412 (delta 17271), reused 19487 (delta 15075)
第 3 步:更改远程源位置
然后我不得不删除以前的来源并创建一个新的:
$ cd /d/epptra2
$ git remote rm origin
$ git remote add origin /s/epptra2.git
$ git config master.remote origin
$ git config master.merge refs/heads/master
$ git branch -u origin/master
第 4 步:将提交的更改推送到新的裸存储库
最后我推送了我从本地存储库完成的提交:
$ git push
Counting objects: 1077, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (1073/1073), done.
Writing objects: 100% (1077/1077), 4.53 GiB | 922.00 KiB/s, done.
Total 1077 (delta 441), reused 0 (delta 0)
To S:/epptra2.git
da05677..d1c8610 master -> master
第 5 步:更新所有本地存储库的远程来源
对于我队友的本地存储库,我必须重复步骤 3,然后执行 git pull
以确保一切正常。
注意:/d
是我PC中的本地磁盘,/s
和/x
是网络挂载的驱动器。