这是我的情况:我有一个位于公司防火墙后面的上游回购。但是开发机器在防火墙之外。我怎么能在他们之间进行交流?我能够通过远程桌面\\ tsclient
从ExternalPC访问InternalPC文件UpstreamRepo <--> InternalPC <--|firewall|--> ExternalPC
目前,我所做的是使用InternalPC来执行所有git命令(获取,合并,提交,推送等)。然后我手动在InternalPC和ExternalPC之间来回复制文件。但这不允许我在ExternalPC上进行分支和提交,因为当我将文件从InternalPC复制到ExternalPC时它们会被覆盖。
有更好的方法吗?我有一个想法,如果我可以从ExternalPC做git fetch <InternalPC>
和git push <InternalPC>
。有可能吗?
答案 0 :(得分:2)
您当然可以在内部PC上使用来自外部PC的git pull,例如通过SSH。或者您可以使用上游回购推送。或者,您可以在防火墙中打开端口以访问内部PC。哪个端口是开放的,顺便说一下?
答案 1 :(得分:0)
Erik的想法是正确的。 Git的工作原理很棒。这正是我所做的:
ExternalPC:
git remote set-url origin //tsclient/C/Users/yourname/git
git pull
InternalPC :(推送时无法检出主分支,因此您可以结帐任何其他分支)
git checkout <some-branch-not-master>
ExternalPC:
git push origin master
答案 2 :(得分:0)
如果您的方案是:
初始步骤:
H:\
H:\Code
cd //tsclient/H/Code
git clone --no-checkout --local file://C:/Projects/MyImportantProject
H:\Code\MyImportantProject
cd //tsclient/H/Code/MyImportantProject
git remote add remotebox file://C:/Projects/MyImportantProject
备份步骤:
cd //tsclient/H/Code/MyImportantProject
git pull remotebox master