Git

建议去看廖雪峰老师的Git教程点击打开链接

一: 介绍

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

Git与常用的版本控制工具CVS, Subversion等不同, 它采用了分布式版本库的方式, 不必服务器端软件支持


Git 与 SVN 区别点

  • 1、GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。

  • 2、GIT把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。

  • 3、GIT分支和SVN的分支不同:分支在SVN中一点不特别,就是版本库中的另外的一个目录。

  • 4、GIT没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比GIT缺少的最大的一个特征。

  • 5、GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏


二: 多人协作开发过程(安装, 基础去看教程)

1. 多人协作原理


2. 多人协助实现

分为如下几步骤:

1. 创建一个git裸服务器

2. 从裸服务器将版本克隆至本地(git clone)

3. 本地常规操作

4. 推送版本至服务器

5. 从远处服务器拉取版本

在windows系统上模拟这个操作过程

1>创建一个git裸服务器

由负责人来完成, 服务器新建一个项目目录. 如git-server

2> 从裸服务器将版本库克隆至本地(git clone)

在git版本服务器, 一般是不做任何开发工作的. 如果要开发项目. 就需要将版本库从服务器克隆到本地

假设有一个程序员甲, 开始自己的工作

使用命令 git clone 版本服务器地址

然后, 甲就可以在克隆下来的git_server文件目录中, 进行常规开发

3> 本地常规操作

git add

git commit -m

甲第一个功能开发完毕, 需要将其推送至服务器

4> 推送版本至服务器

首先查看服务器


推送至服务器



至此, 对于甲程序员来说, 它的工作已经告一段落了, 现在轮到乙程序员出场了


乙程序员和甲程序员一样都要讲版本库从git服务器上克隆到本地, 然后进行本地常规操作, 当然在乙程序员操作的同时, 甲程序员也可以在继续他的常规开发

当乙在本地开发完成后, 将完成的工作推送git服务器



甲在乙程序员推送至服务器后, 还在继续开发, 当他完成开发, 推送至git服务器时结果出错了!



在这里, 之所以会出错, 原因在于, 其它程序员已经将最新的一个版本提交到git服务器上, 但是你在提交之前, 已近不是最新的版本了!


5> 从远程服务器拉取版本(git pull)

在多人协助开发时, 每个开发人员在推送自己的最新版本时, 都需要获取最新版本, 也就是说需要从服务器拉取最新版本到本地


需要使用 git pull 命令



如此一来, 甲当前就是最新的版本

然后再次使用git push 命令推送只服务器



到这时, 在对于乙程序员来说, 他使用的版本库已经不是最新版的, 索引也需要git pull 拉取最新版本


所以, 对很多开发人员而言, 一打开电脑, 马上先git pull, 拉取最新, 然后在进行常规开发, 开发完毕之后, 在git push之前, 还需要使用git pull再拉取一遍


三: 分支(基础看教程)

基本操作有如下几个

1. 查看当前分支 git branch

2. 创建分支 git branch 分支名

3. 切换分支 git checkout 分支名

4. 分支合并 git merge 分支名

5. 删除分支 git branch -d 分支名


分支原理:

默认只有master的情况下,master总是指向最新的版本,而HEAD指针总是指向master的。


现在,我创建了一个新的分支dev,将当前分支指定为dev,此时,master和dev都指向当前最新版本,但是HEAD指针已经指向了dev分支。


接下来,我们提交了新的版本,dev指向最新版本,而master则原地不动。HEAD指向当前分支dev的。


当在dev分支上完成开发之后,可以将它合并到主分支master上。
合并时,需要先切换到master,意味着HEAD指向了master,合并的时候其实就是将master和dev的最新版本同步。


dev分支的使命已经完成,没有什么作用了,将其删除掉。只剩下一个主分支。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

她最爱橘了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值