上一章Git教程请查看:linux Git环境部署和自定义Git环境
这一章我们讨论Git的生命周期的基本概念,以及Git远程仓库的两个重要操作:创建远程仓库和克隆远程仓库。
一、Git生命周期
这里我们将讨论Git的生命周期, 在后面的章节中,我们将介绍Git的每个操作命令。
Git的一般生命周期如下:
- 将Git仓库克隆为工作副本。
- 可以通过添加/编辑文件来修改工作副本。
- 如有必要还可以通过使用其他开发人员的更改来更新工作副本。
- 在提交之前查看更改。
- 提交更改,如果一切正常,则将更改推送到仓库。
- 提交后如果发现有问题,请更正最后一次提交并将更改推送到仓库。
下面显示的是生命周期的图表示。
二、创建远程Git仓库
这里我们将了解如何创建远程Git仓库,从现在开始我们将其称为Git Server,我们需要一个Git服务器来允许团队协作。
1、创建新用户
# 添加新组
$ groupadd dev
# 添加新用户
$ useradd -G dev -d /home/gituser -m -s /bin/bash gituser
$ 更改密码
$ passwd gituser
上面的命令将产生以下结果。
$ sudo passwd gituser
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
passwd:已成功更新密码
2、创建一个空仓库
首先要切换到新用户su gituser,然后让我们通过使用init命令以及–bare选项来初始化一个新的仓库。它在没有工作目录的情况下初始化仓库。按照惯例,空仓库必须命名为.git。
$ pwd
/home/gituser
$ mkdir project.git
$ cd project.git/
$ ls
$ git --bare init
$ ls
3、生成公共/专用RSA密钥对
让我们逐步完成配置Git服务器的过程,ssh-keygen实用程序将生成公共/私有RSA密钥对,并将其用于用户身份验证。
打开一个终端并输入以下命令,然后为每个输入按Enter,成功完成后,它将在主目录中创建一个.ssh目录。
$ pwd
$ ssh-keygen
上面的命令将产生以下结果。
ssh-keygen已生成两个密钥,第一个是私有密钥skey(即id_rsa),第二个是公开密钥skey.pub(即id_rsa.pub)。
注意:切勿与他人共享你的私钥。
4、将密钥添加到authorized_keys
假设有两个开发人员在一个项目上工作,分别是userA和userB,两个用户都生成了公共密钥,让我们看看如何使用这些密钥进行身份验证。
userA通过使用ssh-copy-id命令将他的公钥添加到服务器如下:
$ pwd
/home/userA
$ ssh-copy-id -i ~/.ssh/skey.pub gituser@git.server.com
同样userB使用ssh-copy-id命令将其公钥添加到服务器。
$ pwd
/home/userB
$ ssh-copy-id -i ~/.ssh/skey.pub gituser@git.server.com
5、将更改推送到仓库
我们在服务器上创建了一个空仓库,并允许两个用户访问,从现在开始userA和userB可以通过将其更改添加为仓库来将其更改推送到仓库。
Git init命令每次从.git/config文件中读取配置时,都会创建.git目录来存储有关仓库的元数据。
userA创建一个新目录,添加README文件,并将其更改作为初始提交进行提交,提交后他通过运行git log命令验证提交消息。
$ pwd
/home/userA
$ mkdir usera_repo
$ cd usera_repo/
$ git init
$ echo 'TODO: Add contents for README' > README
$ git status -s
$ git add .
$ git status -s
$ git commit -m 'Initial commit'
userA可以通过执行git log命令检查日志消息。
userA将更改提交到本地仓库,现在该将更改推送到远程仓库了,但是在此之前,我们必须将仓库添加为远程仓库,这是一次性操作,此后他可以安全地将更改推送到远程仓库。
默认情况下Git仅推送到匹配的分支:对于本地存在的每个分支,如果已经存在相同名称的分支,则将更新远程端。在我们的教程中,每次我们将更改推送到Origin主分支时,请根据你的要求使用适当的分支名称。
$ git remote add origin gituser@git.server.com:project.git
$ git push origin master
三、克隆Git远程仓库
我们在Git服务器上有一个空仓库,userA也推出了他的第一个版本,现在userB可以查看他的更改,克隆操作将创建远程仓库的实例。
userB在其主目录中创建一个新目录并执行克隆操作。
$ mkdir userb_repo
$ cd userb_repo/
$ git clone gituser@git.server.com:project.git
userB可以将目录更改为新的本地仓库,并列出其目录内容。
$ cd project/
$ ls
README
评论前必须登录!
注册