基本信息
文件名称:SE0.2 Git介绍及使用电子课件.pptx
文件大小:4.77 MB
总页数:31 页
更新时间:2025-06-05
总字数:约3.54千字
文档摘要

Git使用介绍

毛新军

国防科技大学计算机学院

xjmao@

内容

分布式版本管理概述

分布式版本控制的基本思想

何为Git?

Git的基本理念、功能和服务

Git使用

Git的操作

问题提出

如何将多人开发的不同代码管理起来

程序代码存储

代码冲突处理

代码版本变更

程序代码追踪

工作量的统计……

需要对代码进行版本控制(RevisionControl)

张三

李四

王五

版本控制的重要性

版本控制是有效管理程序文档、提高协作效率的重要手段

多人协作(横向视角)

版本迭代(纵向视角)

开发者1

开发者2

开发者3

开发者4

项目管理者

v1

v2

v3

v4

版本控制概念

版本控制是对软件制品(程序、文档、数据等)的更改和管理,它是软件配置管理的重要组成部分

组织和保护软件制品:源代码和文档

实现跨区域、多人的协同开发

记载和追踪一个或者多个文件的历史记录

跟踪记录软件开发过程

统计软件开发工作量

版本控制的二种方式

集中式与分布式

集中式版本控制

集中式版本控制

版本库集中存放在中央服务器之中

开发前先从中央服务器取得最新版本

开发完再把自己的工作推送给中央服务器

中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完后再放回图书馆

特点

高度集中、难以有效支持协同开发

典型系统:CVS、SVN、ClearCase

版本库

开发者

开发者

开发者

分布式版本管理

分布式版本控制

有一个中央仓库

开发前在本机上拷贝一个完整软件仓库

开发完把自己工作提交到本地仓库中

需要同步给协作者时再递交到中央仓库

版本库分步存储于各协作者电脑中

优点

不依赖中央服务器、可在本地开发、有效支持协同开发

典型系统:Git

中央仓库

本地仓库

本地仓库

本地仓库

本地仓库

版本控制的发展

RCS(1982)

CVS(1990),SVN(2001)

Git(2005)

BitKeeper(1999)

何为Git?

Git是一种分布式的版本控制系统

支持存储代码、跟踪修订历史记录、合并代码更改等,可在需要时恢复较早的代码版本,可实现团队的高效协作

LinusTorvalds研制和开发

为了帮助管理Linux内核开发而开发的一个开源的版本控制软件

成为行业标准

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

LinusTorvalds

Git采用分部式管理模式

分布式版本管理

本地拥有完整版本库,支持离线操作

有效应对了中心服务器崩溃带来的影响

有效支持代码审查、持续集成等开发活动

Git的基本功能

版本管理

管理各种源代码和文档、切换不同版本等

过程管理

跟踪开发过程、查阅历史记录等

代码评审

可视化评估代码质量,决断是否合并代码等;

扩展功能

企业DevOps自动化、代码Issue联动管理;

……

Workspace:工作区

Index/Stage:暂存区

Repository:仓库区(或本地仓库)

Git的仓库构成

远端仓库

本地端仓库

本地仓库

暂存区

工作区

Remote:远程仓库

Git版本管理的基本概念

仓库(Repository)软件所有文件的完整修订历史

版本(Revision)代码库的编号方案,如Tag0.1

分支(Branch)对代码库并行修改时的代码库副本

如master,develop,branch1,…

提交(Commit)对分支的一次修订

下拉(Pull)将远程的一个分支读取并保存到本地分支

推送(Push)将本地分支代码发送到远程某个分支

合并(Merge)将对相同文件在不同分支的修改合并到一个分支中

冲突(Conflict)当两个分支中存在对同一文件的不同修改,并试图合并这两个分支时,就会发生冲突

master和develop是标准分支,master是缺省的主分支

Git各项操作

本地仓库

暂存区

工作区

Git分支的理念和操作

使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线

master

branch2

branch1

create

merge

commit

create

merge

commit

分支本地操作

分支本地操作

Git的使用

分支管理流程:初始化过程(组长)

1创建版本库(默认master分支),push初始代码

2创建远程develop分支

分支管理流程:基本过程(组员)

3克隆代码,切换到develop分支

4新建自己的分支my_branch(各组员分支名不同)

5修改my-branch:正常开发,修改完成后将修改的内容推送到远程my_branch分支

合并分支:基本过程(组长)

6切换develop分支,pull代码

7合并组员的分支(my_branch)到develop分支

8解决