目录
-
Git
Git需要清楚的几个术语
Workspace:工作区 Index/Stage:暂存区,也叫索引 Repository:仓库区(或本地仓库),也存储库 Remote:远程仓库
-
名词解释
工作区: 通过git init
创建的代码库的所有文件但是不包括.git
文件(版本库) 暂存区: 通过git add ./*/
Xxx/Xxxx
添加的修改,都是进入到暂存区了,肉眼不可见 通过 git status
可以看到修改的状态。
-
什么是修改?
比如你新增了一行,这就是一个修改, 删除了一行,也是一个修改, 更改了某些字符,也是一个修改, 删了一些又加了一些,也是一个修改, 甚至创建一个新文件,也算一个修改。
-
版本控制
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。
-
本地版本控制系统
许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别。 这么做唯一的好处就是简单,但是特别容易犯错。 有时候会混淆所在的工作目录,一不小心会写错文件或者覆盖意想外的文件
其中最流行的一种叫做 RCS,现今许多计算机系统上都还看得到它的踪影。 甚至在流行的 Mac OS X 系统上安装了开发者工具包之后,也可以使用 rcs
命令。 它的工作原理是在硬盘上保存补丁集(补丁是指文件修订前后的变化);通过应用所有的补丁,可以重新计算出各个版本的文件内容。
-
集中化的版本控制系统
集中化的版本控制系统(Centralized Version Control Systems,简称 CVCS)。这类系统,诸如 CVS、Subversion(SVN) 以及 Perforce 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。
缺点是中央服务器的单点故障。 如果宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。 如果中心数据库所在的磁盘发生损坏,又没有做恰当备份,毫无疑问您将丢失所有数据——包括项目的整个变更历史,只剩下人们在各自机器上保留的单独快照。
-
分布式版本控制系统
于是分布式版本控制系统(Distributed Version Control System,简称 DVCS)。在这类系统中,像 Git、Mercurial、Bazaar 以及 Darcs 等,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。 因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。
-
Gerrit
Gerrit由Shawn Pearce在Google开发,是用Java,Servlet,GWT(Google Web Toolkit)编写的。Gerrit的稳定版本是2.12.2
,它根据Apache许可证v2许可,于2016年3月11日发布。
-
为什么要使用Gerrit?
-
使用Gerrit可以很容易地找到源代码中的错误。
-
如果有常规的Git客户端,则无需安装任何Gerrit客户端。
-
Gerit可以用作开发人员和git存储库之间的中介(中间部分)。
-
Gerrit特点
-
Gerrit是一个免费和开源的git版本控制系统。
-
Gerrit用户界面是在Google Web Toolkit上构建的。
-
它是审查每个提交的轻量级框架。
-
Gerrit充当存储库,它允许推送代码并为您的提交创建审查。
-
Gerrit的优点
-
Gerrit为Git仓库和Web前端提供了访问控制来进行代码审查。
-
可以推送代码而不使用其他命令行工具。
-
Gerrit可以允许或拒绝存储库级别和分支级别的权限。
-
Gerrit在eclipse中集成支持。
-
缺点
-
审查,验证和重新提交代码会影响产品上线时间。
-
Gerrit只能使用git工作。
-
Gerrit很慢,无法更改列出更改的排序顺序。
-
需要管理员权限才能在Gerrit上添加存储库。
-
安装Git客户端
安装Git客户端
Linux 可以使用软件包管理工具在Linux上安装Git。例如,如果使用Fedora,那么可以使用:
如果您使用基于Debian的发行版,如Ubuntu,那么使用以下命令:
Windows 可以从Git网站下载Git在Windows上安装。打开链接:msysgit.github.io,点击下载按钮。
Mac 可以通过使用以下命令,在Mac上安装Git:
也可以通过从Git网站下载Git来安装。下载链接:Git - Downloading Package 。
-
Gerrit配置Git环境
当安装了Git,需要自定义配置变量来添加您的个人信息。可以使用Git工具(叫作git config
)和-l
选项(此选项提供当前配置)来获取和设置配置变量。
git config -l
当运行上面的命令,应该会看到配置的变量,结果如下所示:
-
Gerrit设置用户名和电子邮件
可以通过设置名称和电子邮件变量来跟踪每个提交。name
变量指定名称,email
变量标识与Git提交相关联的电子邮件地址。可以使用以下命令设置这些:
git config --global user.email "your_email@mail.com"
git config --global user.name "your_name"
Shell
当您运行上述命令时,将获得用户名和电子邮件地址,如下图所示:
-
Gerrit生成新的SSH密钥
SSH表示Secure Shell
或有时用于从远程计算机安全访问网络服务的Secure Socket Shell
协议。可以设置SSH密钥用来在计算机和Gerrit之间提供可靠的安全连接。
Git Bash中使用以下命令查看本地计算机上的SSH密钥:
Welcome to Git (version 1.9.5-preview20150319)
Run 'git help git' to display the help index.
Run 'git help <command>' to display help for specific commands.
Administrator@Y-PC /C/Users/Administrator/Desktop (master)
$ ls ~/.ssh/
id_rsa id_rsa.pub known_hosts
Administrator@Y-PC /C/Users/Administrator/Desktop (master)
$
按下Enter键后,将看到现有的SSH密钥,如下图所示:
-
生成新的SSH密钥
可以在Git Bash中,使用以下命令生成新的SSH密钥以进行身份验证:
$ ssh-keygen -t rsa -C "your_email@mail.com"
Shell
如果已经有了SSH密钥,那么就不要再生成新密钥。即生成新的密钥,也只是覆盖原来的密钥。
当运行上面的命令,它将在~/.ssh
目录中创建2
个文件。
-
~/.ssh/id_rsa
: 它是私钥或识别密钥。 -
~/.ssh/id_rsa.pub
: 它是公钥。
-
Gerrit添加SSH密钥
Gerrit - Add Your SSH Key
可以在不同平台上向SSH
密钥添加SSH
密钥,如下所示:
Linux系统
在Linux系统上使用以下命令添加SSH密钥:
cat /home//.ssh/id_rsa.pub
Shell
Windows
打开GIT GUI,并转到帮助 ->显示SSH密钥,如下图所示:
然后单击复制到剪贴板按钮,将键复制到剪贴板。
苹果电脑
在Mac OS X中,可以使用以下命令将id_rsa.pub
内容复制到剪贴板:
$ pbcopy < ~/.ssh/id_rsa.pub
未完待续。。。。。