个性化阅读
专注于IT技术分析

深入Git开发:Git生命周期和Git远程仓库操作详解

上一章Git教程请查看:linux Git环境部署和自定义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服务器的过程,ss​​h-keygen实用程序将生成公共/私有RSA密钥对,并将其用于用户身份验证。

打开一个终端并输入以下命令,然后为每个输入按Enter,成功完成后,它将在主目录中创建一个.ssh目录。

$ pwd

$ ssh-keygen

上面的命令将产生以下结果。

生成公共和专用RSA密钥对

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
赞(0)
未经允许不得转载:srcmini » 深入Git开发:Git生命周期和Git远程仓库操作详解

评论 抢沙发

评论前必须登录!