Git分布式版本控制软件
文章目录
1. 前言
1.1 前导知识
- 版本:也就是同一文件/工程的不同形态,我们往往需要克隆文件进行修改,修改前和修改后的文件就是不同的版本
1.2 前导概述
-
问题1:以写程序为例子,在我们写程序时,我们有了一个模板工程后,根据这个模板工程进行代码修改(以下图为例),有的版本改着改着就崩了,有的改着改着就好了。这时候我们需要删除错误的版本,或者回退旧的版本,如何解决克隆复制删除这一不方便的版本管理操作呢?
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XGxAe6N7-1688385001045)(D:\All\essential-knowledge\md\assets\image-20230702210421973.png)]](https://i-blog.csdnimg.cn/blog_migrate/db771a61fc37478d43caa427aa6a4791.png)
-
问题2:一个文件/工程不止被一个人修改,那么我们怎么处理协同呢?
解决1:复制这个工程给不同的人去修改,最后整合。
解决2:使用共享文件夹,大家一起修改,但是这种方法,只能被最后一个人提交的修改,且如果最后一个人提交,那如果有Bug我们怎么还原,比较麻烦。麻烦根源:因为我们都是在使用同一份文件 -
解决方法:这时候我们需要一款软件/工具帮我们完成可以进行版本控制,且可以多人协同的软件
2. 版本控制软件
2.1 版本控制软件定义
解决以上前导问题就需要我们有可以进行版本控制,且可以多人协同的软件,这就是版本控制软件VCS(Version Control System)了,他有以下特征:
- 能进行版本控制
- 能协同开发
- 能代码追溯
2.2 版本控制软件分类
2.2.1 集中式版本控制工具
版本库是集中存放在中央服务器的,队伍里每个人work时从中央服务器下载代码,是必须联网才能工作,局域网或互联网。个人修改后然后提交到中央版本库。
举例:SVN和CVS
2.2.2 分布式版本控制工具
没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样工作的时候,无需要联网了,因为版本库就在你自己的电脑上。多人协作只需要各自的修改推送到远程仓库,对方再进行pull拉取就可以了。
举例:Git
3. Git
3.1 认识Git
Git是一个开源的分布式版本控制系统软件。Git是起初为了帮助管理Linux内核开发(需要多人协同开发)而开发的一个开放源码的版本控制软件。
3.2 Git工作流程

命令如下:
clone(克隆):从远程仓库中克隆代码到本地仓库
fetch (抓取):从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少
checkout(检出):从本地仓库中检出一个仓库分支然后进行修订
add(添加):在提交前先将代码提交到暂存区
commit(提交):提交到本地仓库。本地仓库中保存修改的各个历史版本
pull (拉取):从远程库拉到本地库,自动进行合并(merge),然后放到到工作区,相当于fetch+merge
push(推送):修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库
3.3 Git基础概念
- 仓库:也就是本地的一个文件,这个文件包含.git这个文件
- 工作区:仓库内除了.git文件夹以外的区域
- 暂存区:存在于.git文件夹下的一个文件,包含我们文件的索引信息
- 分支:Git分支是指在版本控制系统中独立存在的、用于开发新功能或进行不同任务的并行线路。它可以将代码的不同版本进行隔离,使得团队成员可以在不影响主干代码(通常是
master分支)的情况下进行并行开发和实验,分支也是可以进行合并的,一般我们开发都是以分支为节点,进行协同开发- 本地仓库的分支对应着远程仓库的一个分支,当pull拉取时,他会默认找对应的分支找到最新的并更新我们的本地
- push推送时我们需要选择分支
- 在本地我们可以通过命令切换分支,其工作区也会不同
- 冲突:当一个人和另一个人都操作同一个文件时,git软件会自动进行文件比对,然后在合并分支时,会报错让我们二选一
3.4 Git安装
随便找个网上的教程就可以了
3.5 Git仓库创建
-
使用克隆clone服务器上的仓库,或者在本地git init把当前文件夹设置为一个仓库,再push推送到运程仓库,让远程仓库也建立一个对应的仓库
-
有了本地仓库和远程仓库,我们就可以进行很多操作了
3.6 Git常用指令
git init:在当前目录初始化一个新的本地仓库。
git clone <repository>:克隆远程仓库到本地。
git add <file>:将文件添加到暂存区。
git commit -m "<message>":提交暂存区的更改到本地仓库,并添加提交消息。
git status:检查工作目录的状态,显示已修改和未跟踪的文件。
git log:查看提交历史记录。
git diff <file>:查看文件的修改内容。
git branch:列出本地分支。
git checkout <branch>:切换到指定分支。
git merge <branch>:将指定分支合并到当前分支。
git pull:从远程仓库拉取最新更改并合并到当前分支。
git push:将本地提交推送到远程仓库。
git remote add <name> <url>:添加一个远程仓库。
git remote -v:显示远程仓库信息。
git stash:将当前修改暂存起来,切换到干净的工作目录。
git tag:列出所有标签。
git reset <commit>:将 HEAD 指针重置到指定提交。
git revert <commit>:创建一个新的提交,撤销指定提交的更改。
Git是一款开源的分布式版本控制系统,最初为管理Linux内核开发设计。它提供了版本控制、协同开发和代码追溯功能。Git工作流程包括克隆、添加、提交、拉取和推送等操作。与集中式版本控制工具如SVN和CVS不同,Git的每个副本都包含完整版本库,允许离线工作和灵活的分支管理,从而实现高效的团队协作。
671

被折叠的 条评论
为什么被折叠?



