如何实现提交在多个Git仓库间流转?跨仓库提交操作求助
跨Git服务器中转提交代码的实操方案

问题背景
笔记本没VPN权限,连不上台式机,得靠中间Git服务器(仓库C)把代码提交到目标仓库B,但之前从仓库A拉B的代码后推去C失败了。
一步步解决
给中间仓库C加目标仓库B的远程地址
登到仓库C所在的服务器,进到裸仓库目录里,跑这条命令:git remote add upstream <仓库B的完整地址>upstream是自定义的远程名称,用来指代目标仓库B即可。本地仓库配置中间仓库C的远程
在笔记本上从仓库A克隆B的代码后,给本地仓库加个指向C的远程:git remote add middle <仓库C的完整地址>之后正常进行本地代码提交:
git add . git commit -m "你的提交备注"推代码到中间仓库C
把本地代码推去C:git push middle <你的分支名>如果推送失败,先确认C是裸仓库(只有裸仓库能接收推送),不是的话删掉重建:
git init --bare <仓库名.git>从C同步到目标仓库B
再登到仓库C的服务器,进到裸仓库目录,把代码推去B:git push upstream <你的分支名>嫌手动同步麻烦的话,在C的
hooks文件夹里建个post-receive脚本,内容如下:#!/bin/sh git push upstream <你的分支名>然后给脚本加执行权限:
chmod +x post-receive这样以后每次推代码到C,它会自动同步到B。
踩坑排查
- 推送失败如果提示权限问题,先检查C的访问权限(SSH密钥、账号密码是否正确),以及C能不能正常访问B。
- 确认本地分支和远程分支名称一致,或者推送时明确指定分支对应关系。
内容的提问来源于stack exchange,提问作者user225500
相关产品推荐
相关产品推荐

