Git的使用教程

1.0 什么叫做git?

Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理

2.0 git的功能特性

Git的功能特性:

从一般开发者的角度来看,git有以下功能:

1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。

2、在自己的机器上根据不同的开发目的,创建分支,修改代码。

3、在单机上自己创建的分支上提交代码。

4、在单机上合并分支。

5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。

6、生成补丁(patch),把补丁发送给主开发者。

7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。

8、一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。

从主开发者的角度(假设主开发者不用开发代码)看,git有以下功能:

1、查看邮件或者通过其它方式查看一般开发者的提交状态。

2、打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。

3、向公共服务器提交结果,然后通知所有开发人员。

3.0 主流程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WWJccvSZ-1667553308171)(https://bkimg.cdn.bcebos.com/pic/a71ea8d3fd1f4134ca7667d8251f95cad0c85ed6?x-bce-process=image/watermark,image_d2F0ZXIvYmFpa2U5Mg==,g_7,xp_5,yp_5)]

Workspace:工作区,平时存放项目代码的地方。

Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息。

Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本。

Remote:远程仓库 ,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换。

4.0 目录结构

Directory:使用Git管理的一个目录,也就是一个仓库,包含我们的工作空间和Git的管理空间。

WorkSpace:需要通过Git进行版本控制的目录和文件,这些目录和文件组成了工作空间。

.git:存放Git管理信息的目录,初始化仓库的时候自动创建。

Index/Stage:暂存区,或者叫待提交更新区,在提交进入repo之前,我们可以把所有的更新放在暂存区。

Local Repo:本地仓库,一个存放在本地的版本库;HEAD会只是当前的开发分支(branch)。

Stash:隐藏,是一个工作状态保存栈,用于保存/恢复WorkSpace中的临时状态。

5.0 git的分支

git分支

1、git有一个中心仓库,库中有一个产品A的设计图纸,这个就是master。

2、码农A和B打算改进产品A;于是他们从仓库下载原始图纸到本地,然后在本地修改

3、码农A做出初步改进后打算提交,若其它任何码农均未提交,则可以直接提交;但却发现码农B已经提交自己的版本了

4、码农A认为自己的改进其实还有地方需要完善;那么如果每次合并主版本都要检查并合并B的修改(以及之后可能有的其它修改),显然会浪费很多时间,耽误后续开发;若草草检查就合入,就容易影响主版本的稳定。

5、于是码农A产生了一个分支,叫做产品A之码农A改进版;以后自己的改进都合进这个分支

6、码农B、C、D继续改进产品A的master版

7、N个月后,码农A认为自己的改进已经尽善尽美了,于是合并自己的“产品A之码农A改进版”到当前的主版本

8、但是两者冲突太多;于是码农A利用各种diff工具检查主版本和自己的分支版本之异同,注意观察自己的代码能否直接插入主版本而不引起逻辑故障;若不引起就合入,否则可能就要前后错几行、在合适位置合入。

9、合入后,经过重新测试,码农A就可以废止自己的分支版本,新功能开发完成。

10、任何参与开发的人,只要不是一次性修改,都应该这样开一个分支,把自己的工作先合入这个分支;等开发完全完成后再合并自己的分支到主版本。

6.0 git操作

在这里插入图片描述

7.0 git的例子

1.进入demo文件夹cd demo
2.初始化仓库git init

3.仓库中创建readme.txt文件,内容:test

5.添加文件到暂存区中 git add readme.txt

6.提交文件到仓库 git commit -m “readme.txt提交”

8.提交到远程库 git push

9.修改文件后可以使用diff查看文件修改前后对比 git diff readme.txt

10.git log来查看最近到最远的历史提交日志

11.回退版本 git reset --hard 版本号

8.0 git的冲突解决

在这里插入图片描述

9.0 git所使用的软件

git本身,官网下载,https://git-scm.com/

TortoiseGit ,主要是提供了跟svn类似的客户端操作界面,尤其是他提供了右键菜单功能

vscode的插件,(1),git history (2),git lens,(3)git graph-- 图像显示,效果更好

vscode除了插件的方法,以外,可以直接使用vscode的功能进行git源代码管理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值