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

标签 git ssh

假设我有两台机器设置:

客户端

  • 让我们假设一个窗口框
  • 假设这是一个开发箱,所有要置于源代码管理下的文件都将 在这里
  • 假设这里没有安装源代码控制

服务器

  • 让我们假设一个 linux box
  • 让我们假设 Git 是选择的源代码控制(已安装)
  • 已启用 SSH

问题: 是否可以从客户端连接到服务器,比方说通过 SSH 进行争论,并在登录到服务器后调用 Git 命令,但在客户端(本地)系统的文件上?

例如SSH client (only ssh) ----- SSH Server (这里安装了ssh和git)

            send command --> command: checkout to <client path>
            send command---> command: check-in from <client path>

基本原理:换句话说,我不想为 VCS 安装软件客户端,而是希望 SSH 充当启动器;在 Git 的情况下,虽然 mysys for git 和 cygwin 解决方案都存在,但每个都有自己的缺点——所以我想在 Linux 机器上编译/设置全功能版本,但仍然允许源代码控制发生在 window 。

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

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

最佳答案

Could I ssh to the server, mount the client path to the source files, then perform the version control commands on all files of that path?

是的,你可以,非常容易。查看用于 Linux 的 SAMBA 或安装用于 Unix 的 Windows 服务,并让客户端充当 NFS 服务器;无论哪种方式都可以。

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

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

关于git - 在没有 VCS 客户端的情况下在本地文件系统上使用远程版本控制 (VCS) 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2298754/

相关文章:

mysql - Jaspersoft/Pentaho - 通过 SSH 连接到 MySQL

python - 如何避免在源代码中保留版本号?

git - "git diff"、 "git diff HEAD"和 "git diff --staged"的奇怪输出?

linux - 版本控制软件将保留 POSIX FS (ext3/ext4) 中的所有文件及其元数据

git - 为什么 git 在标记为二进制的文件上警告 CRLF?

ruby - Teamcity 部署到 Heroku

git - 在不添加到索引的情况下开始在 Git 中跟踪文件

c# - 在 digi 6030dx 调制解调器上使用 SSH.NET 执行命令 - 以左方括号开头的字符序列是什么?

drupal - 如何通过 AWS 上的 Drush Make 从 Aegir 访问私有(private) github 存储库

batch-file - 使用 Plink 使用加密密码通过 SSH 连接到多个服务器