1. 简介
Git 是一个开源的分布式版本控制系统,由 Linus Torvalds 于 2005 年创造。在过去的 15 年里,Git 已成为世界上最受欢迎的版本控制系统之一。Git 可以轻松地管理代码、文档等文件的版本控制,而且非常简单易用。
2. Git 主仓库搭建步骤
2.1 在服务器上安装 Git
首先,需要在服务器上安装 Git。可以使用以下命令在 Ubuntu 系统上安装 Git:
sudo apt-get update
sudo apt-get install git
如果服务器使用其他操作系统,请参考 Git 官方文档进行安装。
2.2 创建 Git 仓库
创建 Git 仓库的步骤如下:
确定要创建仓库的目录
使用 git init 命令初始化仓库
添加文件到仓库
使用 git add 命令将文件添加到 Git 仓库
使用 git commit 命令提交变更
以下是具体步骤:
2.2.1 确定要创建仓库的目录
在服务器上创建一个 Git 仓库的目录,例如,/home/git/myrepo。可以使用以下命令创建目录:
sudo mkdir /home/git/myrepo
sudo chown -R git:git /home/git/myrepo
在上述命令中,git 是新创建的用户,该用户将成为 Git 仓库的所有者。可以使用以下命令创建 git 用户:
sudo adduser git
2.2.2 初始化仓库
使用 git init 命令初始化 Git 仓库。在 /home/git/myrepo 目录下执行以下命令:
sudo su git
cd /home/git/myrepo
git init --bare
在上面的命令中,--bare 选项表示该仓库是一个空白的 Git 仓库,它没有工作目录,不能进行代码的修改和提交。
2.2.3 添加文件到仓库
将要上传的文件添加到 Git 仓库中,可以使用以下命令:
echo "# Git repository" >> README.md
git add README.md
在上述命令中,README.md 文件是需要添加和上传到 Git 仓库中的文件。
2.2.4 提交变更
使用 git commit 命令提交变更,可以使用以下命令:
git commit -m "initial commit"
在上面的命令中,-m 选项表示该提交的变更说明为 “initial commit”。
2.3 配置访问权限
为了确保代码和文件的安全,必须正确配置 Git 仓库的访问权限。可以使用 SSH 进行访问控制,SSH 是一种用于加密连接的网络协议,支持在不安全的网络中安全地进行通信。
2.3.1 创建 SSH 公钥
使用 ssh-keygen 命令创建一个 SSH 公钥。SSH 公钥用于身份验证,只有拥有该 SSH 公钥的用户才能访问 Git 仓库。具体步骤如下:
在客户端上打开终端,使用以下命令创建 SSH 公钥:
ssh-keygen -t rsa -C "your_email@example.com"
在客户端上将 SSH 公钥复制到服务器上。
将该 SSH 公钥复制到服务器上,可以使用以下命令:
ssh-copy-id git@server
在上述命令中,git 是服务器的用户名,server 是服务器的 IP 或域名。
2.3.2 配置 Git 仓库
使用 Git 仓库的所有用户都必须在他们的计算机上配置 Git 用户名和电子邮件地址,以便在提交变更时使用。可以使用以下命令配置 Git 用户名和电子邮件地址:
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
2.3.3 禁止 Git 登录用户
如果禁止 Git 登录用户,则不能使用 SSH 方式进行访问控制,可以修改 Git 仓库目录下的 authorized_keys 文件来禁止 Git 登录用户。具体步骤如下:
在 /home/git/myrepo 目录下创建 authorized_keys 文件。
将要禁止访问的 SSH 公钥复制到该文件中。
要禁止 Git 登录用户,可以在 authorized_keys 文件中添加以下内容:
command="/bin/false",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...your_key... your_name
在上述命令中,/bin/false 表示禁止登录用户使用 shell,no-port-forwarding 表示禁止端口转发,no-X11-forwarding 表示禁止 X11 转发,no-agent-forwarding 表示禁止代理转发,no-pty 表示禁止终端操作。新增加的公钥名称(your_key)和密钥(your_name)使用的是上面生成的公钥。
2.4 使用 Git 主仓库
我们现在已经成功创建了一个 Git 主仓库。使用 Git 客户端来上传和下载代码。
2.4.1 下载代码
可以使用以下命令从 Git 主仓库下载代码:
git clone git@server:/home/git/myrepo
在上述命令中,server 是服务器的 IP 或者域名。
2.4.2 上传代码
在 Git 主仓库中上传文件和代码的过程如下:
在本地的工作目录中创建、修改或删除文件。
使用 git add 命令将变更添加到 Git 仓库中。
使用 git commit 命令提交变更到 Git 仓库。
使用 git push 命令将修改上传到 Git 主仓库。
以下是具体的上传代码命令:
git add ...
git commit ...
git push ...
3. 总结
在本文中,我们介绍了如何搭建 Git 主仓库,并使用 SSH 进行访问控制。使用 Git 可以轻松地管理代码、文档等文件的版本控制,非常简单易用。如您还不了解 Git 命令的操作,建议阅读更多文档和教程,熟悉 Git 的基本操作和注意事项。希望这篇文章对您有所帮助。