服务器上的 Git - 在服务器上部署 Git

在服务器上部署 Git

开始架设 Git 服务器前,需要先把现有仓库导出为裸仓库 — 即一个不包含当前工作目录的仓库。做法直截了当,克隆时用 --bare 选项即可。裸仓库的目录名一般以 .git 结尾,像这样:

$ git clone --bare my_project my_project.git
Cloning into bare repository 'my_project.git'...
done.

该命令的输出或许会让人有些不解。其实 clone 操作基本上相当于 git init 加 git fetch,所以这里出现的其实是 git init 的输出,先由它建立一个空目录,而之后传输数据对象的操作并无任何输出,只是悄悄在幕后执行。现在 my_project.git 目录中已经有了一份 Git 目录数据的副本。

整体上的效果大致相当于:

$ cp -Rf my_project/.git my_project.git

但在配置文件中有若干小改动,不过对用户来讲,使用方式都一样,不会有什么影响。它仅取出 Git 仓库的必要原始数据,存放在该目录中,而不会另外创建工作目录。

把裸仓库移到服务器上

有了裸仓库的副本后,剩下的就是把它放到服务器上并设定相关协议。假设一个域名为git.example.com 的服务器已经架设好,并可以通过 SSH 访问,我们打算把所有 Git 仓库储存在/opt/git 目录下。只要把裸仓库复制过去:

$ scp -r my_project.git user@git.example.com:/opt/git

现在,所有对该服务器有 SSH 访问权限,并可读取 /opt/git 目录的用户都可以用下面的命令克隆该项目:

$ git clone user@git.example.com:/opt/git/my_project.git

如果某个 SSH 用户对 /opt/git/my_project.git 目录有写权限,那他就有推送权限。如果到该项目目录中运行 git init 命令,并加上 --shared 选项,那么 Git 会自动修改该仓库目录的组权限为可写(译注:实际上 --shared 可以指定其他行为,只是默认为将组权限改为可写并执行 g+sx,所以最后会得到rws。)。

$ ssh user@git.example.com
$ cd /opt/git/my_project.git
$ git init --bare --shared

由此可见,根据现有的 Git 仓库创建一个裸仓库,然后把它放上你和同事都有 SSH 访问权的服务器是多么容易。现在已经可以开始在同一项目上密切合作了。

值得注意的是,这的的确确是架设一个少数人具有连接权的 Git 服务的全部 — 只要在服务器上加入可以用 SSH 登录的帐号,然后把裸仓库放在大家都有读写权限的地方。一切都准备停当,无需更多。

下面的几节中,你会了解如何扩展到更复杂的设定。这些内容包含如何避免为每一个用户建立一个账户,给仓库添加公共读取权限,架设网页界面,使用 Gitosis 工具等等。然而,只是和几个人在一个不公开的项目上合作的话,仅仅是一个 SSH 服务器和裸仓库就足够了,记住这点就可以了。

小型安装

如果设备较少或者你只想在小型开发团队里尝试 Git ,那么一切都很简单。架设 Git 服务最复杂的地方在于账户管理。如果需要仓库对特定的用户可读,而给另一部分用户读写权限,那么访问和许可的安排就比较困难。

SSH 连接

如果已经有了一个所有开发成员都可以用 SSH 访问的服务器,架设第一个服务器将变得异常简单,几乎什么都不用做(正如上节中介绍的那样)。如果需要对仓库进行更复杂的访问控制,只要使用服务器操作系统的本地文件访问许可机制就行了。

如果需要团队里的每个人都对仓库有写权限,又不能给每个人在服务器上建立账户,那么提供 SSH 连接就是唯一的选择了。我们假设用来共享仓库的服务器已经安装了 SSH 服务,而且你通过它访问服务器。

有好几个办法可以让团队的每个人都有访问权。第一个办法是给每个人建立一个账户,直截了当但略过繁琐。反复运行 adduser 并给所有人设定临时密码可不是好玩的。

第二个办法是在主机上建立一个 git 账户,让每个需要写权限的人发送一个 SSH 公钥,然后将其加入git 账户的 ~/.ssh/authorized_keys 文件。这样一来,所有人都将通过 git 账户访问主机。这丝毫不会影响提交的数据 — 访问主机用的身份不会影响提交对象的提交者信息。

另一个办法是让 SSH 服务器通过某个 LDAP 服务,或者其他已经设定好的集中授权机制,来进行授权。只要每个人都能获得主机的 shell 访问权,任何可用的 SSH 授权机制都能达到相同效果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在Linux服务器部署Git,您可以按照以下步骤操作: 1. 安装Git软件包。您可以使用以下命令在Ubuntu上安装Git: sudo apt-get update sudo apt-get install git 2. 创建Git用户。您可以使用以下命令创建一个名为“git”的用户: sudo adduser git 3. 创建Git仓库。您可以使用以下命令在服务器上创建一个Git仓库: sudo mkdir /opt/git sudo chown git:git /opt/git cd /opt/git sudo git init --bare myrepo.git 4. 允许Git用户访问仓库。您可以使用以下命令将Git用户添加到仓库的访问列表中: sudo chown -R git:git /opt/git/myrepo.git sudo chmod -R 755 /opt/git/myrepo.git 5. 配置SSH访问。您需要在服务器上配置SSH访问,以便Git用户可以通过SSH协议访问仓库。您可以使用以下命令生成SSH密钥: sudo su - git ssh-keygen -t rsa 6. 将公钥添加到Git仓库。您可以使用以下命令将Git用户的公钥添加到仓库的授权密钥列表中: cat ~/.ssh/id_rsa.pub >> /opt/git/myrepo.git/authorized_keys 7. 在本地计算机上克隆仓库。现在,您可以在本地计算机上使用以下命令克隆Git仓库: git clone git@yourserver:/opt/git/myrepo.git 这些步骤应该能够帮助您在Linux服务器部署Git。 ### 回答2: 在 Linux 服务器部署 Git 首先需要安装 Git。可以通过以下命令在 Ubuntu 系统上安装 Git。 ```` sudo apt-get update sudo apt-get install git ```` 完成安装后,我们需要创建一个 Git 用户和组,用于 Git 服务运行。 ```` sudo addgroup --system git sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' --ingroup git --disabled-password git ```` 考虑使用 SSH 公钥连接 Git 服务,因此需要先为 Git 用户创建一个 SSH 密钥对。 ```` sudo su - git ssh-keygen -t rsa ```` 接着需要将公钥存储在可以访问的地方。在这里我们使用 Git 的默认存储方式,将公钥添加到用户主目录下的 .ssh/authorized_keys 文件中。 ```` cat /home/git/.ssh/id_rsa.pub > /home/git/.ssh/authorized_keys ```` 现在我们可以测试 SSH 连接。 ```` ssh git@localhost ```` 如果提示如下信息,则说明 SSH 连接已经设置成功。 ```` Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-44-generic x86_64) * Documentation: https://help.ubuntu.com/ Last login: Fri Apr 15 22:33:31 2016 from 10.0.2.2 # 确保再次切换到主用户 ```` 接着需要为 Git 用户设置默认 shell 环境变量。 ```` sudo su nano /etc/passwd # 找到 `git:x:113:65534:Git Version Control:/home/git:/bin/bash`,将 `/bin/bash` 修改为 `/usr/bin/git-shell` ```` 完成了上述步骤后,我们可以通过 Git 客户端进行连接测试。 ```` git clone git@localhost:/srv/git/sample.git ```` 此时 Git 应该可以正常工作了。 以上就是在 Linux 服务器部署 Git 的步骤。请注意,部署 Git 仅作为参考,部署的步骤因系统版本、具体需要和个性化需求可能发生变化。请在进行部署时做好备份和相应的准备工作。 ### 回答3: 在Linux服务器部署Git是一个非常常见的任务。通过部署Git,您可以让开发人员更加轻松地进行代码的版本控制和管理。在下面的文章中,我将介绍如何在Linux服务器部署Git,包括安装、配置、创建和管理Git仓库等步骤。 一、 安装Git 在Linux服务器上安装Git非常简单,只需运行以下命令即可。 sudo apt-get update sudo apt-get install git 二、 配置Git 安装Git后,下一步是在服务器上配置Git。在配置Git之前,您需要设置自己的用户名和电子邮件地址。您可以使用以下命令来定义用户名和电子邮件地址。 git config --global user.name "Your Name" git config --global user.email "youremail@example.com" 三、 创建Git仓库 在服务器上创建Git仓库也很简单。只需在要存储代码的目录中运行以下命令即可。 cd /path/to/your/project git init 四、 添加和提交代码 创建Git仓库后,您需要将代码添加到仓库中并提交更改。为此,您可以使用以下命令。 git add . git commit -m "Initial commit" 五、 克隆现有的Git仓库 如果您需要在服务器上使用现有的Git仓库,则可以克隆该仓库。要克隆仓库,请运行以下命令。 git clone your-git-repository-url 六、 Git分支管理 在Git中,您可以创建和管理不同的分支。要创建新分支,请使用以下命令。 git branch new-branch 要检查可用分支,请运行以下命令。 git branch 默认情况下,您将使用“主要”分支进行开发。如果您需要追踪其他分支,请使用以下命令。 git checkout branch-name 七、 合并分支 您可以合并两个不同的分支以将代码更改合并到主分支中。要合并分支,请使用以下命令。 git merge branch-name 八、 在Git中回滚代码更改 Git允许您回滚代码更改。如果您需要回滚代码,请使用以下命令。 git reset --hard commit-hash 九、 将Git仓库推送到远程服务器 一旦您在服务器上完成了必要的更改,您可以将Git仓库推送到远程服务器。要将Git仓库推送到远程服务器,请使用以下命令。 git push origin master 以上就是在Linux服务器部署Git的基本步骤,希望这些信息能够帮助您了解如何在Linux服务器上配置和使用Git
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值