我试图找出一些明智的解决方案,以便能够跟踪多个环境中的变化。
基本上我有以下设置:
我可以从MyPC访问gitlab存储库。无法从Internet访问此存储库,只能通过某些VPN连接访问。在另一个实例中,我需要在PC上的远程实例上测试和开发代码,我只有一个(加密的)RDP连接。从远程PC我无法访问互联网;既没有办法连接到远程gitlab存储库。但我确实通过RDP将Windows网络驱动器连接到MyPC。
所以我在想:是否可以在远程PC上进行更改;然后将它们推送到MyPC;并且可能进行其他修改后将其推送到gitlab的远程存储库?
我想我需要找出一个裸存储库的配置。但说实话,我没有线索。
我尝试或试图避免的事情:
我该怎么办?
答案 0 :(得分:0)
如果MyPC可以从远程PC访问文件共享,这将更容易(您只需将远程PC&#39的repo添加为MyPC仓库中的第二个远程,这样您就可以{{1 (然后fetch
(或merge
)本地)而不是rebase
);但听起来并非如此。
因此,您可以从远程PC的回购推送到MyPC回购,但默认情况下您无法推送到当前已检出的分支机构。 (如果MyPC也被积极用于开发,那么我建议反对更改默认行为。)
听起来你已经在远程PC的回购中添加了MyPC repo作为遥控器(尽管如果你使用了push
我建议你重新使用它取而代之的是/just/a/path/to/the/repo
类型的网址。然后你只需要设置一个file://localhost/just/a/path/to/the/repo
refspec,避免写入MyPC repo检出的分支。例如,如果MyPC是名为push
的远程,那么
origin
会在git config remote.origin.push +refs/heads/*:refs/heads/myRemote/*
上设置默认行为,例如push
到master
。 (基本上在推送之后,它将在myRemote/master
仓库中查看,就好像您从名为myPC
的远程编辑fetch
。然后您可以像往常一样合并或重新定义更改。)