Git 在没有VCS客户端的本地文件系统上使用远程版本控制(VCS)命令

Git 在没有VCS客户端的本地文件系统上使用远程版本控制(VCS)命令,git,ssh,Git,Ssh,假设我有两台机器设置: 客户 让我们假设一个windows框 让我们假设这是一个dev框,因此所有要置于源代码管理下的文件都将 在这里 假设这里没有安装源代码管理 服务器 让我们假设一个linux机器 让我们假设Git是首选的源代码管理(已安装) 启用SSH 问题: 是否可以从客户机连接到服务器,比如说通过SSH进行连接,并在登录到服务器后调用Git命令,但在客户机(本地)系统的文件上 e、 g.SSH客户端(仅SSH)---SSH服务器(此处安装了SSH和git) send命令-->命

假设我有两台机器设置:

客户

  • 让我们假设一个windows框
  • 让我们假设这是一个dev框,因此所有要置于源代码管理下的文件都将 在这里
  • 假设这里没有安装源代码管理
服务器

  • 让我们假设一个linux机器
  • 让我们假设Git是首选的源代码管理(已安装)
  • 启用SSH
问题: 是否可以从客户机连接到服务器,比如说通过SSH进行连接,并在登录到服务器后调用Git命令,但在客户机(本地)系统的文件上

e、 g.SSH客户端(仅SSH)---SSH服务器(此处安装了SSH和git)

send命令-->命令:签出到
发送命令-->命令:从签入
理由:换句话说,我不想为VCS安装软件客户端,而是希望SSH充当启用程序;就Git而言,尽管mysys for Git和cygwin解决方案都存在,但它们都有各自的缺点——因此我希望在Linux机器上编译/设置全功能版本,但仍然允许从windows进行源代码控制

这可能吗?(不必是SSH,任何协议都可以,只要不需要VCS的软件客户端)

我是否可以通过ssh连接到服务器,将客户端路径装载到源文件,然后对该路径的所有文件执行版本控制命令

我是否可以通过ssh连接到服务器,将客户端路径装载到源文件,然后对该路径的所有文件执行版本控制命令

是的,你可以,很容易。看一看SAMBA for Linux或安装Windows Services for Unix,并将客户端盒用作NFS服务器;无论哪种方法都可以

就linux应用程序而言,如果它安装在/下,那么它必须通过网络才能访问文件这一事实是无关紧要的——文件系统驱动程序负责这一点


因此,是的,如果您在linux服务器上以
/mnt/windows/c/mysource
的形式安装了
c:\mysource
,则没有理由不能在该目录中的文件的linux框中使用git as。当然,结果将通过网络传输。

除了NineFinger的回答之外,如果远程机器无法直接到达客户端机器,您可以使用SSH端口转发。这个特性在OpenSSH、Putty和许多其他客户端中都可用

通常,您使用端口转发来访问远程计算机网络上的服务。例如,要访问远程SSH服务器网络中10.0.0.4上的HTTP服务,您需要执行以下操作:

ssh -L 8888:10.0.0.4:80 user@remotehost
然后,使用客户端计算机上的浏览器访问
localhost:8888

但是,您可以反过来使用,并使远程计算机可以使用本地服务。对于Windows共享(SMB),您可以尝试以下操作:

ssh -R 9445:localhost:445 user@remotehost
(您应该在Windows中使用的任何SSH客户端中找到等效选项。)

然后从远程shell将共享装载到某个位置:

mount -t cifs //localhost:9445/SomeShare /mnt/mountpoint

我必须补充一点,我没有亲自测试过这个,但值得一试。

我不明白为什么您不希望本地客户端与源代码管理服务器进行接口,比如说Ortoisegit?()谢谢您的确认/补充信息!我会给它一个机会。谢谢你的信息,我会给它一个机会,除了九个天使的回答。
mount -t cifs //localhost:9445/SomeShare /mnt/mountpoint