使用Git分布式版本控制系统

GIT(分布式版本控制系统)

  Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

  Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。  Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

  Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。例如 很多 Freedesktop 的项目迁移到了 Git 上。

  

  分布式版本控制系统最大的特点是不需要每次提交都把文件推送到版本控制服务器,而是采用分布式版本库的机制,使得每个开发人员都够从服务器中克隆一份完整的版本库到自己计算机本地,不必再完全依赖于版本控制服务器,使得源代码的发布和合并更加方便,并且因为数据都在自己本地,不仅效率提高了,而且即便我们离开了网络依然可以执行提交文件、查看历史版本记录、创建分支等等操作,真的是开发者的福音啊。

  Git不仅是一款开源的分布式版本控制系统,而且有其独特的功能特性,例如大多数的分布式版本控制系统只会记录每次文件的变化,说白了就是只会关心文件的内容变化差异,而Git则是关注于文件数据整体的变化,直接会将文件提交时的数据保存成快照,而非仅记录差异内容,并且使用SHA-1加密算法保证数据的完整性。

  

使用Git服务程序

在正式使用前,我们还需要弄清楚Git的三种重要模式,分别是已提交、已修改和已暂存:

已提交(committed):表示数据文件已经顺利提交到Git数据库中。

已修改(modified):表示数据文件已经被修改,但未被保存到Git数据库中。

已暂存(staged):表示数据文件已经被修改,并会在下次提交时提交到Git数据库中。

提交前的数据文件可能会被随意修改或丢失,但只要把文件快照顺利提交到Git数据库中,那就可以完全放心了,流程为:

1.在工作目录中修改数据文件。

2.将文件的快照放入暂存区域。

3.将暂存区域的文件快照提交到Git仓库中。

部署Git服务器

  主机名称    操作系统         IP地址
  GIT服务器   Centos 7    192.168.126.137
  GIT客户端   Centos 7    192.168.126.138

  首先我们在Git服务器和客户端上安装Git服务程序

 

[[email protected] ~]# yum install -y git
Loaded plugins: langpacks, product-id, subscription-manager
………………省略部分安装过程………………
Installing:
 git                    x86_64       1.8.3.1-4.el7            rhel7       4.3 M
Installing for dependencies:
 perl-Error             noarch       1:0.17020-2.el7          rhel7        32 k
 perl-Git               noarch       1.8.3.1-4.el7            rhel7        52 k
 perl-TermReadKey       x86_64       2.30-20.el7              rhel7        31 k
………………省略部分安装过程………………
Complete!

然后创建Git版本仓库,一般规范的方式要以.git为后缀:
[[email protected] ~]# mkdir accommate.git

 修改Git版本仓库的所有者与所有组:

[[email protected] ~]# chown -Rf git:git accommate.git/

 初始化Git版本仓库:

[[email protected] ~]# cd accommate.git/
[[email protected] accommate.git]# git --bare init
Initialized empty Git repository in /root/accommate.git/

  其实此时你的Git服务器就已经部署好了,但用户还不能向你推送数据,也不能克隆你的Git版本仓库,因为我们要在服务器上开放至少一种支持Git的协议,比如HTTP/HTTPS/SSH等,现在用的最多的就是HTTPS和SSH,我们切换至Git客户机来生成SSH密钥:

[[email protected] /]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory ‘/root/.ssh‘.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
b0:74:b6:97:98:ad:a3:f0:24:a8:b6:f4:e5:d8:31:73 [email protected]
The key‘s randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|      o o        |
|     . = = .     |
|      . S +      |
|   .     o       |
| .. o=.Eo        |
|.o. ===. .       |
|o..o oo          |
+-----------------+

 将客户机的公钥传递给Git服务器:

[[email protected] /]# ssh-copy-id 192.168.126.137
The authenticity of host ‘192.168.126.137 (192.168.126.137)‘ can‘t be established.
ECDSA key fingerprint is 0a:89:0f:71:fb:0e:75:f7:37:9b:50:37:56:b7:95:25.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]192.168.126.137‘s password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh ‘192.168.126.137‘"
and check to make sure that only the key(s) you wanted were added.

 此时就已经可以从Git服务器中克隆版本仓库了(此时目录内没有文件是正常的):

[[email protected] /]# git clone [email protected]192.168.126.137:/accommate.git
Cloning into ‘accommate‘...
warning: You appear to have cloned an empty repository.

 向Git版本仓库提交一个新文件:

[[email protected] accommate]# echo "I successfully cloned the Git repository" > readme.txt
[[email protected] accommate]# git add readme.txt
[[email protected] accommate]# git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#    new file:   readme.txt
#
[[email protected] accommate]# git commit -m "Clone the Git repository"
[master (root-commit) 1709f48] Clone the Git repository
 1 file changed, 1 insertion(+)
 create mode 100644 readme.txt
[[email protected] accommate]# git status
# On branch master
nothing to commit, working directory clean

 但是这次的操作还是只将文件提交到了本地的Git版本仓库,并没有推送到远程Git服务器,所以我们来定义下远程的Git服务器吧:

[[email protected] accommate]# git remote add server [email protected]192.168.126.137:/accommate.git

 将文件提交到远程Git服务器吧:

[[email protected] accommate]# git push -u server master
Counting objects: 3, done.
Writing objects: 100% (3/3), 272 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To [email protected]192.168.126.137:/accommate.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from server.

 为了验证真的是推送到了远程的Git服务,你可以换个目录再克隆一份版本仓库(虽然在工作中毫无意义):

[[email protected] accommate]# cd ../Desktop
[[email protected] accommate Desktop]# git clone [email protected]192.168.10.10:/root/accommate.git
Cloning into ‘accommate‘...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.
[[email protected] Desktop]# cd accommate/
[[email protected] linuxprobe]# cat readme.txt
I successfully cloned the Git repository
				
时间: 2024-10-28 16:18:53

使用Git分布式版本控制系统的相关文章

第1章Git分布式版本控制系统

今天在高铁闲来无事,决定把我之前遗漏的Git好好整理一番. 首先感谢老男孩架构师班赵班长深入讲解Git,综合自己实践整理而来,特此在今天分享给大家. 笔者QQ:572891887 Linux架构交流群:471443208 1.1Git诞生历史 我想大家还记得Linus torvalds在1991年时发布了Linux操作系统吧,从那以后Linux系统变不断发展壮大,因为Linux系统开源的特性,所以一直接受着来自全球Linux技术爱好者的贡献,志愿者们通过邮件向Linus发送着自己编写的源代码文件

手把手教你玩转Git分布式版本控制系统!

目录 Git诞生历史 Git环境准备 Git安装部署 Git常用命令 Git基本操作 Git管理分支结构 Git管理标签 GitLab安装部署 GitHub托管服务 Git客户端工具 1 Git诞生历史 我 想大家还记得Linus torvalds在1991年时发布了Linux操作系统吧,从那以后Linux系统变不断发展壮大,因为Linux系统开源的特性,所以一直接受着来自 全球Linux技术爱好者的贡献,志愿者们通过邮件向Linus发送着自己编写的源代码文件,然后由Linus本人通过手工的方式

Git分布式版本控制系统最佳实践

今天在高铁闲来无事,决定把我之前遗漏的Git好好整理一番. 首先感谢老男孩架构师班赵班长深入讲解Git,综合自己实践整理而来,特此在今天分享给大家. 笔者QQ:572891887 Linux架构交流群:471443208 1.1Git诞生历史 我想大家还记得Linustorvalds在1991年时发布了Linux操作系统吧,从那以后Linux系统变不断发展壮大,因为Linux系统开源的特性,所以一直接受着来自全球Linux技术爱好者的贡献,志愿者们通过邮件向Linus发送着自己编写的源代码文件,

GIT分布式版本控制系统使用教程

版本控制工具大概有: RCS单机版 CVS.SVN集中式版本控制系统 GIT分布式版本控制系统 这里介绍GIT,它四大位置:本地代码工作区---待提交列表staging area---本地仓库local repo---远程仓库remote repo(git服务器).从左往右是上传代码,从右往左是下载代码. 备注1:git比svn多了待提交列表. 备注2:最好本地一个分支.远程一个分支,没有必要搞多个分支,只有每个人合并的时候就要花很多时间. 备注3:帮git当作高级svn来用. 备注4:更改服务

GIT分布式版本控制系统-1

在Linux上安装Git: 1.输入Git,看看系统有没有安装Git: $ git The program 'git' is currently not installed. You can install it by typing: sudo apt-get install git 如上提示Git没有安装,通过sudo apt-get install git就可以直接完成Git安装 在Windows上安装Git: 在windows上使用Git,可以从Git官网直接下载安装程序,然后按默认选项安

Git分布式版本控制系统

1.版本控制 是否依稀记得你的毕业论文? 毕业论文_初稿.doc 毕业论文_修改1.doc 毕业论文_修改2.doc 毕业论文_修改3.doc 毕业论文_完整版1.doc 毕业论文_完整版2.doc 毕业论文_完整版3.doc 毕业论文_最终版1.doc 毕业论文_最终版2.doc 毕业论文_死也不改版.doc ... 是否还记得老师让你重新自己写的项目? blog1 blog2 blog3 blog4 ... 以上是使用文件或文件夹进行版本管理,以上方式有缺点: 多个文件,保留所有版本时,需要

Git分布式版本控制系统学习笔记

Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.[4] Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件. Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具.开放源码社区中的有些人觉得 BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵

git分布式版本控制系统常用的操作

Git是一个版本控制系统,用来追踪计算机文件的变化的工具,也是一个供多人使用的协同工具.它是一个分布式的版本控制系统,本文将简单介绍如何使用.简单来说,就是你要和你的伙伴一起完成一项任务,但是你们要互相交换修改,查看自己的历史版本等.版本控制系统就是帮助我们做这个的. 网上一堆教程,难得讲得清楚的.这里也不废话介绍原理之类的,直接说明如何使用.由于Git是一个分布式文件控制系统,所以一般采用一个服务器方便大家交换修改用的.每个人本地都有一个版本库,保存自己的历史版本,然后每个人可以把自己的修改提

Git是目前世界上最先进的分布式版本控制系统(没有之一)。

http://zhidao.baidu.com/link?url=NSYPiSvtGTMoqMA9vt68FRRF8WbfYVmwWeMh47_2lkp0K3jFMl--1Co1tg1R4VshTQV2De1JeG-fh3Ezu5j-3q Git是什么?Git是目前世界上最先进的分布式版本控制系统(没有之一).Git有什么特点?简单来说就是:高端大气上档次!那什么是版本控制系统?如果你用Microsoft Word写过长篇大论,那你一定有这样的经历:想删除一个段落,又怕将来想恢复找不回来怎么办?