Git – 使用多个遥控器来跟踪同一个分支和服务器

我正在尝试在我的远程服务器上设置一个
Git仓库,我正在与其他人共享.唯一的问题是,这位于我的局域网中,我并不总是这样.

我希望能够有2个遥控器使用相同的分支,所有同步,几乎像一个符号链接(但配置).

为了使事情变得更难,如果我尝试在局域网中使用外部IP作为远程IP,它将失败,因为它映射到我的路由器自己的内部IP.
我希望能够在局域网中执行git push / pull lan,并在没有时使用git push / pull wan,并确保不会抱怨任何与他们两个分开的事情.

我还想确保他们使用相同的数据进行同步,因为目标服务器在任何一种情况下都是相同的.我对Git有一些经验,但还不足以做到这一点,并确保它能按计划运行.

我不想尝试通过为一个分支设置2个远程URL来同时同步它们,因为它会因为超时而使推/拉非常慢.

假设我已经设置了LAN,是最新的,并且已经进行了初始提交,并且尚未设置WAN.

假设服务器的内部IP是myserver.lan,而外部IP是mydomain.org,我该怎么做呢?

最佳答案
As I commented below,可以根据需要为本地仓库添加多个遥控器:

git remote add upstream1 /url/first/repo
git remote add upstream2 /url/first/repo

然后git push可以选择要使用的右边的遥控器:

git push upstream1
# or
git push upstream2

最简单的是添加一个脚本,该脚本将:

>测试正确的URL(例如,使用git ls-remote / url / to / remote / repo)
>使用在当前环境中工作的url替换origin

git remote set-url origin /url/that/works

这样,你总是只有一个遥控器来管理:默认的一个名为’origin’.
但是每次切换环境时,您的脚本都可以更新原始URL.

点赞