IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 分布式版本控制工具Git -> 正文阅读

[开发工具]分布式版本控制工具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.安装&配置

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.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

解决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"

2.3 卸载

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

2.4 获取本地仓库

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

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

3.基础操作

3.1 指令

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

指令说明格式
status查看的修改的状态(暂存区、工作区)git status
add添加工作区一个或多个文件的修改到暂存区git 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.保存退出

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)

使用规范:

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

请添加图片描述

4.Git基本原理

4.1 算法

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

4.2 版本

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

请添加图片描述

4.3 分支

请添加图片描述

5.远程仓库

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

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

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

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

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

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

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

GitHub使用教程

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-12-03 13:14:29  更:2021-12-03 13:16:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:50:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码