0

这是我的情况:我有一个位于公司防火墙后面的上游仓库。但是开发机器在防火墙之外。我如何在他们之间进行交流?我可以通过远程桌面 \\tsclient 从 ExternalPC 访问 InternalPC 文件

UpstreamRepo <--> InternalPC <--|firewall|--> ExternalPC

目前,我所做的是使用 InternalPC 执行所有 git 命令(获取、合并、提交、推送等)。然后我手动在 InternalPC 和 ExternalPC 之间来回复制文件。但这不允许我在 ExternalPC 上进行分支和提交,因为当我将文件从 InternalPC 复制到 ExternalPC 时它们会被覆盖。

有一个更好的方法吗?我的一个想法是如果我可以从 ExternalPC做一个git fetch <InternalPC>和。git push <InternalPC>是否可以?

4

3 回答 3

2

您当然可以在内部 PC 上使用外部 PC 的 git pull,例如通过 SSH。或者您可以使用 Upstream Repo 推送到。或者您可以在防火墙中打开一个端口来访问内部 PC。顺便说一句,哪些端口是开放的?

于 2013-09-10T18:57:54.617 回答
0

Erik的想法是正确的。令人惊讶的是 Git 是如何工作的。这正是我所做的:

外接电脑:

git remote set-url origin //tsclient/C/Users/yourname/git
git pull

InternalPC:(推送到主分支时无法签出,因此您可以签出任何其他分支)

git checkout <some-branch-not-master> 

外接电脑:

git push origin master
于 2013-09-26T23:48:49.147 回答
0

如果您的情况是:

  1. 你为政府工作,所以任何改变都很难
  2. Windows RDP 从本地到远程,共享驱动器
  3. 所有编码都在远程完成
  4. 你害怕 REMOTE 会死,你想备份到只有 LOCAL 可用的共享驱动器。

初始步骤:

  1. 检查映射的本地驱动器名称。因为它是H:\
  2. 为您的代码创建基本文件夹,对我来说是H:\Code
  3. 打开 git bash
  4. cd //tsclient/H/Code
  5. git clone --no-checkout --local file://C:/Projects/MyImportantProject
  6. 您已将存储库克隆到 LOCALH:\Code\MyImportantProject
  7. cd //tsclient/H/Code/MyImportantProject
  8. git remote add remotebox file://C:/Projects/MyImportantProject

备份步骤:

  1. 您是否在本地工作并提交
  2. 打开 git bash
  3. cd //tsclient/H/Code/MyImportantProject
  4. git pull remotebox master
于 2013-12-13T03:51:30.360 回答