SSH协议下的Git远程仓库搭建与使用实例

随笔2个月前发布 暴走的风
45 0 0

SSH协议下的Git远程仓库搭建与使用实例

在上一篇教程中,我们学习了如何通过本地协议在文件系统上托管一个中央仓库。本教程将介绍如何通过SSH协议实现相同的功能。我们将在Linux Mint机器上设置远程仓库,并演示如何从Windows 10机器(作为客户端)克隆、拉取和推送仓库。

服务器上的SSH和Git设置

要通过SSH托管Git仓库,我们需要在Linux机器上运行SSH服务器,并安装Git。

设置SSH服务器

登录到Linux Mint服务器。检查SSH服务器是否已安装并运行:

joe@mint-smtx:~$ ps -A | grep sshd

  • 1

如果没有输出,则需要安装OpenSSH。首先更新包列表:

joe@mint-smtx:~$ sudo apt-get update

  • 1

然后安装OpenSSH服务器:

joe@mint-smtx:~$ sudo apt-get install openssh-server

  • 1

安装完成后,sshd应该正在运行。再次检查:

joe@mint-smtx:~$ ps -A | grep sshd

  • 1

现在我们可以通过SSH访问服务器。

安装Git

检查Git是否已安装:

joe@mint-smtx:~$ git --version

  • 1

如果未安装,可以通过以下命令安装:

joe@mint-smtx:~$ sudo apt install git

  • 1

再次检查Git版本:

joe@mint-smtx:~$ git --version

  • 1

在服务器上创建Git远程仓库

在用户主目录下创建名为my-project.git的文件夹,并将其初始化为Git裸仓库:

joe@mint-smtx:~$ mkdir my-project.git
joe@mint-smtx:~$ cd my-project.git/
joe@mint-smtx:~/my-project.git$ git init --bare

  • 1
  • 2
  • 3

现在,我们可以通过SSH访问和使用这个裸仓库。

获取服务器IP地址

我们需要知道Linux服务器在本地网络中的IP地址,以便客户端可以通过SSH访问。使用ifconfig命令获取IP地址:

joe@mint-smtx:~$ ifconfig

  • 1

在客户端机器上创建项目

现在让我们登录到Windows 10客户端机器,并使用Git Bash for Windows创建示例项目:

joe@jpc MINGW64 /d/git-example
$ mkdir my-project
$ cd my-project/
$ git init

  • 1
  • 2
  • 3
  • 4

初始化空的Git仓库,并添加readMe.txt文件:

$ echo test-content > readMe.txt
$ git add -A
$ git commit -m "adding project"

  • 1
  • 2
  • 3

通过SSH从客户端推送项目到远程仓库

使用push命令推送项目:

$ git push ssh://192.168.0.13/home/joe/my-project.git master

  • 1

我们使用了完整的路径ssh://192.168.0.13/home/joe/my-project.git作为前缀。

查看远程仓库的Git日志

我们可以使用PuTTY或Git Bash for Windows的SSH客户端访问服务器,而无需再次登录到服务器机器:

$ ssh joe@192.168.0.13
joe@mint-smtx:~$ cd my-project.git/
joe@mint-smtx:~/my-project.git$ git log

  • 1
  • 2
  • 3

日志显示了预期的提交。

从新客户端克隆远程项目

在客户端机器上,创建一个新的目录表示另一个客户端,并使用SSH克隆远程项目:

$ mkdir other-client
$ cd other-client/
$ mkdir my-project
$ cd my-project/
$ git clone ssh://192.168.0.13/home/joe/my-project.git .

  • 1
  • 2
  • 3
  • 4
  • 5

推送新更改

在新客户端项目中添加新文件并推送到中央仓库:

$ echo some-content > newFile.txt
$ git add -A && git commit -m "new changes"
$ git push origin master

  • 1
  • 2
  • 3

这次我们使用了仓库引用名称origin而不是整个URL。

再次检查远程仓库的Git日志

$ ssh joe@192.168.0.13
joe@mint-smtx:~$ cd my-project.git/
joe@mint-smtx:~/my-project.git$ git log

  • 1
  • 2
  • 3

新更改显示在日志中。

拉取新更改

转到原始客户端项目并从远程仓库通过SSH拉取新更改:

$ git pull ssh://192.168.0.13/home/joe/my-project.git

  • 1

现在,原始客户端项目中包含了新文件newFile.txt

通过本教程,我们学习了如何在本地网络中通过SSH协议设置和使用Git远程仓库,以及如何在客户端之间同步项目更改。希望这对你的项目协作有所帮助。

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...