[英]Backing up full remote git repository with history to another remote server
Assume that I have to GIT servers behind a fence, say at git.mycompany.com
(with gitea UI) and at git.myclient.com
(with github-like UI), both heavily security with VPN, multi factor-authentication etc. I want to deliver my full repository myProduct
to git.myclient.com/alice/myProduct
since Alice is my point of contact. Assume that I have to GIT servers behind a fence, say at
git.mycompany.com
(with gitea UI) and at git.myclient.com
(with github-like UI), both heavily security with VPN, multi factor-authentication etc.我想将我的完整存储库myProduct
交付给git.myclient.com/alice/myProduct
,因为 Alice 是我的联系人。
Can I do that directly without the detour over a local repository on my computer?我可以直接执行此操作而无需绕过计算机上的本地存储库吗?
Since I am working remote, and the uplink of mycompany.com
is much faster than my own...由于我在远程工作,而且
mycompany.com
的上行速度比我自己的快很多...
In detail, the detour over my computer looks as follows:详细来说,我电脑上的弯路如下:
git.myclient.com
called myProduct
.git.myclient.com
创建一个名为myProduct
的空存储库。git pull
.git pull
确保我的本地存储库是最新的。 Check my current remote origin with git config --get remote.origin.url
, see eg an answer to How can I determine the URL that a local Git repository was originally cloned from? Check my current remote origin with
git config --get remote.origin.url
, see eg an answer to How can I determine the URL that a local Git repository was originally cloned from?
In my case, the result simply is https://git.mycompany.com/b--rian/myProduct.git
就我而言,结果只是
https://git.mycompany.com/b--rian/myProduct.git
git remote set-url origin git@git.myclient.com:alice/myProduct.git
.git remote set-url origin git@git.myclient.com:alice/myProduct.git
将此配置更改为目标存储库。ssh-keygen -o
, see https://git-scm.com/book/en/v2/Git-on-the-Server-Generating-Your-SSH-Public-Keyssh-keygen -o
为 ssh 生成一个键值对,请参阅https://git-scm.com/book/en/v2/Git-on-the-Server-Generating-Your-SSH-Public-Keyeval $(ssh-agent -s)
inside the GIT Bash, see https://help.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent eval $(ssh-agent -s)
inside the GIT Bash, see https://help.github.com/en/github/authenticating-to -github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agentgit push --all origin
.git push --all origin
将大部分内容推送到客户端。 This is the slow step which I would like to speed up.git push origin --tags
, see How do you push a tag to a remote repository using Git?git push origin --tags
,请参阅如何使用 Git 将标签推送到远程存储库?remote.origin.url
to back what it was in step 3, in my case it is a git remote set-url origin https://git.mycompany.com/b--rian/myProduct.git
. remote.origin.url
to back what it was in step 3, in my case it is a git remote set-url origin https://git.mycompany.com/b--rian/myProduct.git
. Is there an easier way?有没有更简单的方法?
Maybe you could use Git mirroring on git.myclient.com
.也许您可以在
git.myclient.com
上使用 Git 镜像。
It's up to clients VCS (Git).这取决于客户 VCS (Git)。 Most implementations have mirroring options.
大多数实现都有镜像选项。
For example, if the client is using Gitlab: https://docs.gitlab.com/ee/user/project/repository/repository_mirroring.html For example, if the client is using Gitlab: https://docs.gitlab.com/ee/user/project/repository/repository_mirroring.html
I think it would be much simpler to add a second remote... and then push into that remote:我认为添加第二个遥控器会更简单......然后推入那个遥控器:
git remote add second url-to-new-repo
git push second master develop # push master and develop to second
And so on.等等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.