Git讲义

GIT

1.   为什么要开发项目要有版本控制

在企业开发中,企业项目代码都需要有版本控制

为什么要有版本控制?

公司5个员工同时开发一个项目,不同员工开发的代码相互之间如何同步呢?让A来管理,剩下四个代码都发给A,让A来一个个文件对,一行行对,看看今天大家都开发了什么代码?很显然不现实

 

解决方案:使用专业版本控制工具

 

CVS :最早期的版本控制工具(现在基本已经淘汰)

SVN :集中式版本控制工具,目前还有一定市场份额

GIT : 目前最流行的分布式版本控制系统

2.   GIT简介

2.1. Git是什么?

Git是目前世界上最先进的分布式版本控制系统。

 

Linux 操作系统的作者 林纳斯·托瓦兹


林纳斯·托瓦兹花了两种时间 git 第一个版本,使用c 语言编写的分布式版本控制系统

 

 

工作原理 / 流程:

 



Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:远程仓库

 

2.2.   集中式 VS 分布式 介绍

2.2.1.   集中式版本控制

 

 

 

 

先说集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。

 

缺点:

集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,可能提交一个 10M 的文件就需要 5 分钟,这还不得把人给憋死啊。

 

2.2.2.   分布式版本控制

 

那分布式版本控制系统与集中式版本控制系统有何不同呢?首先,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件 A,你的同事也在他的电脑上改了文件 A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

 

和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。

 

在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。

 

当然,Git 的优势不单是不必联网这么简单,后面我们还会看到 Git 极其强大的分支管理,把 SVN 等远远抛在了后面。

 

 

 

 

 

2.3. GIT的发明

Linux 操作系统 林拉斯,花了两周时间写了第一版本,使用C语言编写

 

 

 

3.   Git 安装及初始化

1 安装

 

 

3.1.1.   在windows上如何安装Git?

要使用 Git,第一步当然是安装 Git 了。msysgit 是 Windows 版的 Git,从 https://git-for-windows.github.io 下载,然后按默认选项安装即可。

 

msysgit是 windows版的Git,如下:



需要从网上下载一个,然后进行默认安装即可。安装完成后,在开始菜单里面找到 "Git --> Git Bash",如下:
出来 git 菜单就表示安装成功

 

 

 

 

 

 

4.   远程仓库

  1. 远程仓库可以 自己使用 gitlib 搭建,需要购买一个一台云服务器vps
  2. 使用第三方托管服务器

(1)     Github https://github.com/

(2)     Gitee https://gitee.com/

这个两个第三托管网站都有 免费版,和收费版

 

 

5.   github

 

Git 是分布式版本控制系统,同一个 Git 仓库,可以分布到不同的机器上。怎么分布呢?最早,肯定只有一台机器有一个原始版本库,此后,别的机器可以“克隆”这个原始版本库,而且每台机器的版本库其实都是一样的,并没有主次之分。

 

找一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。

 

可以自己搭建一台运行 Git 的服务器,不过现阶段,为了学 Git 先搭个服务器绝对是小题大作。好在这个世界上有个叫 GitHub 的神奇的网站,从名字就可以看出,这个网站就是提供 Git 仓库托管服务的,所以,只要注册一个 GitHub 账号,就可以免费获得 Git 远程仓库。

 

5.1. 生成公钥私钥

在了解之前,先注册github账号,由于你的本地Git仓库和github仓库之间的传输是通过SSH加密的,所以需要一点设置:

5.1.1.   创建SSH Key。

在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果有的话,直接跳过此如下命令,如果没有的话,打开命令行,输入如下命令:

ssh-keygen -t rsa –C "youremail@example.com", 由于我本地此前运行过一次,所以本地有,如下所示:

id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

 

 

5.1.2.   Github 设置秘钥

登录github,打开” settings”中的SSH Keys页面,然后点击“Add SSH Key”,填上任意title,在Key文本框里黏贴id_rsa.pub文件的内容。

 

 

 

 

 

 

 

5.2. 如何添加远程库


现在的情景是:我们已经在本地创建了一个Git仓库后,又想在github创建一个Git仓库,并且希望这两个仓库进行远程同步,这样github的仓库可以作为备份,又可以其他人通过该仓库来协作。

首先,登录github上,然后在右上角找到“create a new repo”创建一个新的仓库。如下:

 

 

 

 

 

 

 

 

 

 

 
 
 

5.3. 从远程库克隆

 

git clone [url]

 

会自动创建一个 masetr 分支跟踪远程分支 origin/master

 

 

5.4. 从远程仓库抓取数据

fetch 命令只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支,只有当你确实准备好了,才能手工合并。

若设置了某个分支用于跟踪某个远端仓库的分支,可以使用 git pull 命令自动抓取数据下来,然后将远端分支自动合并到本地仓库中当前分支。

默认情况下 git clone 命令本质上就是自动创建了本地的 master 分支用于跟踪远程仓库中的 master 分支(假设远程仓库确实有

master 分支)。所以一般我们运行 git pull,目的都是要从原始克隆的远端仓库中抓取数据后,合并到工作目录中当前分支。

 

到远程仓库中拉取所有你本地仓库中还没有的数据

git fetch [remote-name]

git merge origin/master

git pull origin master

 

 

5.5. 推送数据到远程仓库

只有在所克隆的服务器上有写权限,或者同一时刻没有其他人在推数据,这条命令才会如期完成任务。

若在你推数据前,已经有其他人推送了若干更新,那你的推送操作就会被驳回。你必须先把他们的更新抓取到本地,并到自己的项目中,然后才可以再次推送。

 把本地的 master 分支推送到 origin 服务器上

 

git push origin master

 

 

 

5.6. 使用Eclipse管理git项目

如果项目已经开发一个阶段,把项目放入到和githu上远程仓库本地git仓库里面

 

 

5.6.1.   在Eclipse中导入项目

 

 

 

5.6.2.   把项目提交到仓库被仓库管理

 

 

 

 

5.6.3.   忽略target目录的管理

Target 是maven项目打包安装以后生成的目录,我们开发只需要同步开发,不需要同步安装包,所以 maven的-target需要忽略

 

 

5.6.4.   添加项目到git仓库

 

 

添加后效果

 

 

 

5.7. 将代码提交到git仓库

 

 

提交操作

 

 

提交后的效果

 

 

 

5.7.1.   将本地仓库同步到远程仓库

 

 

 

 

 

 

 

 

5.7.2.   修改后代码效果

 

 

 

 

5.8. 同步git其他团队代码

aib

 

 

6.   码云-https://gitee.com

码云是一个国产的基于git分布式托管中心,比较符合国情,速度快,可以有个人版本和企业版本。

 

1. 注册账号

2. 登录账号

6.1. 创建远程仓库

 

 

 

 

 

6.2. 把仓库克隆到本地电脑

 

 

 

其他的代码同步操作和 github一样

6.3. 添加团队协作开发成员

首先你添加用户必须在码云上注册账号

 

 

 

 

 

 

转载于:https://www.cnblogs.com/meizhoulqp/p/11313721.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值