分布式版本控制工具Git

1.概述

分布式版本控制工具:
请添加图
片描述
版本控制: 管理代码的版本迭代

  • 协同修改
    多人并行不悖的修改服务器端的同一个文件
  • 数据备份
    不仅保存目录和文件的当前状态,还能够保存每一个提交过的历史状态
  • 版本管理
    在保存每一个版本的文件信息的时候要做到不保存重复数据,以节约存储空 间,提高运行效率(而 Git 采取了文 件系统快照的方式)
  • 权限控制
    对团队中参与开发的人员进行权限控制
    对团队外开发者贡献的代码进行审核——Git 独有
  • 历史记录
    查看修改人、修改时间、修改内容、日志信息
    将本地文件恢复到某一个历史状态
  • 分支管理
    允许开发团队在工作过程中多条生产线同时推进任务,进一步提高效率

Git: 分布式版本控制系统没有“中央服务器”,每个人的电脑都是一个完整的版本库。


Git工作流程图:
请添加图片
描述

工作区: 写代码
简单的理解为在电脑里能看到的目录,比如自己创建的本地项目目录

暂存区: 临时存储
Git的版本库里存了很多东西,其中最重要的就是称为index(或者叫stage)的暂存区,还有Git自动创建的第一个分支master,以及指向master的一个指针叫HEAD

本地仓库: 历史版本
工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库

远程仓库: 一个可以共享资源的服务器,如Github,Gitee

指令:

  • clone: 从远程仓库中克隆代码到本地仓库
  • checkout : 从本地仓库中检出一个仓库分支然后进行修订
  • add: 在提交前先将代码提交到暂存区
  • commit: 提交到本地仓库。本地仓库中保存修改的各个历史版本
  • fetch: 从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少。
  • pull: 从远程库拉到本地库,自动进行合并(merge),然后放到到工作区,相当于
    fetch+merge
  • push: 修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库

2.安装&配置

1 安装

官网下载https://git-scm.com/download

很慢!不建议使用

镜像下载: https://npm.taobao.org/mirrors/git-for-windows/
请添加
图片描述
之后运行exe一直next就OK了
右键如下,表示安装成功:

Git GUI:Git提供的图形界面工具
Git Bash:Git提供的命令行工具

2 基本配置

配置用户基本信息:

  1. 右键打开GitBash
  2. 设置用户信息
    git config --global user.name “xxx”
    git config --global user.email "xxx"
  3. 查看配置信息
    git config --global user.name
    git config --global user.email
    git config --global --list
  4. 删除配置信息
    git config --global --unset user.name
    git config --global --unset user.email

解决GitBash乱码问题:
1.打开GitBash执行命令:

git config --global core.quotepath false

2.安装目录/etc/bash.bashrc 文件最后加入:

export LANG="zh_CN.UTF-8" 
export LC_ALL="zh_CN.UTF-8"

3 卸载

  1. 清除环境变量
  2. 电脑设置打开应用与功能,卸载Git

4 配置SSH公钥

#切换到某个目录,存公钥
cd ~/.ssh
#生成公钥
ssh-keygen

#查看公钥,并复制 ctrl+insert
cat id_rsa.pub

在码云中粘贴SSH公钥

5 获取本地仓库

要使用Git对我们的代码进行版本控制,首先需要获得本地仓库

  1. 在电脑任意目录中建立一个用作本地仓库的目录
  2. 在此目录中打开GIt Bash
  3. 执行git init初始化本目录为一个本地仓库
  4. 创建成功刷新,目录中会多一个 .git 目录

3.基础操作

1 指令

使用命令来控制以下状态之间的转换
请添加图片
描述

指令说明格式
status查看的修改的状态(暂存区、工作区)git status
add添加工作区一个或多个文件的修改到暂存区`git add 单个文件名
commit提交暂存区内容到本地仓库的当前分支git commit -m '注释内容'
log查看提交记录git log [分支]
分支:
--all 显示所有分支
--pretty=oneline 将提交信息显示为一行
--abbrev-commit 使得输出的commitId更简短
--graph 以图的形式显示
reset版本切换git reset --hard commitID
commitID 可以使用 git-loggit log 指令查看
reflog查看已经删除的提交记录git reflog
cat显示版本库对象的内容、类型及大小信息·git cat file

添加文件至忽略列表:
忽略一些不必要的文件不上传

1.创建一个 .gitignore 文件
直接创建或GitBashtouch .gitignore

2.在此文件中书写需要忽略的文件

filename		#忽略此目录
filename.idea	#忽略此文件
filename/*		#忽略此目录下的所有文件
filename/*.idea	#忽略此目录下的.idea文件

3.保存退出

2 分支

指令:

指令说明
branch查看本地分支
git branch 分支名创建本地分支
git checkout 分支名切换分支
git checkout -b 分支名创建新的分支并切换到此分支
git merge 分支名称合并分支(提交过程)
git branch -d b1删除分支时,需要做各种检查
git branch -D b1不做任何检查,强制删除

注意
□ 合并分支一般是合并其他分支到master分支上
  首先切换到master分支,然后合并分支

□ 不能删除当前分支,只能删除其他分支


解决冲突:
当>=2个人修改到同一处时,会产生冲突,Git会提示:CONFLICT (content): Merge conflict in...,而此冲突需要人手动解决

  1. 处理文件中冲突的地方(多人协商)
  2. 将解决完冲突的文件加入暂存区(add)
  3. 提交到仓库(commit)

使用规范:

  • master分支
    线上分支,主分支,中小规模项目作为线上运行的应用对应的分支
  • develop分支
    从master创建的分支,一般作为开发部门的主要开发分支,如果没有其他并行开发不同期上线要求,都可以在此版本进行开发,阶段开发完成后,需要是合并到master分支,准备上线
  • feature/xxxx分支
    从develop创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完成后合并到develop分支
  • hotfix/xxxx分支分支
    从master派生的分支,一般作为线上bug修复使用,修复完成后需要合并到master、test、develop分支
  • test分支
    用于代码测试
  • pre分支
    预上线分支

请添加图
片描述

4.Git基本原理

1 算法

Git 底层采用的是 SHA-1 算法,哈希算法可以被用来验证文件。
请添加图片描
述
算法原理如下图:
请添加图片
描述
Git 就是靠这种机制保证数据的完整性

2 版本

Git 把数据看作是小型文件系统的一组快照。
每次提交更新时 Git 都会对当前的全部文件制作一个快照并保存这个快照的索引。为了高效,如果文件没有修改, Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。所以 Git 的 工作方式可以称之为快照流。

请添加图片
描述

3 分支

请添加图
片描述

5.远程仓库

团队内部协作:
请添加图
片描述

跨团队协作:
请添加图
片描述

代码托管中心: 维护远程库

  • 局域网——GitLab服务器
  • 外网——GitHub、Gitee

GItHub: https://github.com/
面向开源及私有软件项目的托管平台,只支持 Git 作为唯一的版本库格式进行托管

Gitee: https://gitee.com/
国内的一个代码托管平台,由于服务器在国内,所以相比于 GitHub,码云速度会更快

GitLab: https://about.gitlab.com/
用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务,一般用于在企业、学校等内部网络搭建git私服

GitHub使用教程

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

364.99°

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

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

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

打赏作者

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

抵扣说明:

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

余额充值