Git 多服务器源码同步
概要: 以本地为支点,将服务器A上的仓库同步到服务器B上
创建时间: 2023.08.08 22:46:28
更新时间: 2023.08.24 22:43:31
准备工作
- 确保在服务器A和B上有
git push
的权限
- 确保服务器B上已经新建
my-repo
空仓库
从服务器A克隆源码到本地
Bash |
---|
| git clone ssh://server-a/username/my-repo.git
|
进入本地仓库配置目标服务器B
Bash |
---|
| cd my-repo
git remote add target ssh://server-b/username/my-repo.git
|
推送本地源码到目标服务器B
提示
如果需要推送本地所有分支到新的服务器B,首先需要在本地检出这些分支,命令为
for remote in $(git branch -r | grep -v master); do git checkout --track $remote ; done
然后执行下面的操作
推送本地所有的分支
推送本地所有的tag
推送本地所有的分支和tag
推送简易流程
Bash |
---|
| git clone old-url
git remote add target new-url
git push -u target --tags 'refs/remotes/origin/*:refs/heads/*'
git push target --delete HEAD # 避免远程认为HEAD也是一个分支名
|
如何将服务器B设为主服务器?
使用下面的命令可以查看当前git仓库的远程服务器信息
下面的操作将会把服务器B作为默认的origin源服务器,注意此举将覆盖已有的配置
Bash |
---|
| git remote set-url origin ssh://server-b/username/my-repo.git
|
参考
Push local Git repo to new remote including all branches and tags - Stack Overflow