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的基础知识(后续会跟新相关的操作比如Github、gitee、gitlab等) -> 正文阅读

[开发工具]git的基础知识(后续会跟新相关的操作比如Github、gitee、gitlab等)

第一章?Git概述

Git是一个免费的开源的分布式版本控制系统,可以快速高效的处理从小型到大型的各种项目。

Git易于学习,所占内存小,性能优秀,具有廉价的本地库,方便暂存区域和多个工作流分支等特性。

1.1何为版本控制

版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。

版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本方便版本切换。

1.2为什么需要版本控制

个人开发过渡到团队协作

1.3版本控制工具

集中式版本控制工具:CVS、SVN(Subversion)、VSS......

集中化的版本控制系统,都有一个单一的集中管理服务器,保存所有文件,而协同工作的人通过客户端连接到服务器,取出最新的文件或者提交更新。

好处:每个人都可以在一定程度上看到项目中的其他人正在做什么,而管理员也可以掌握每个开发者的权限,且管理维护容易。

坏处:如果服务器单点故障,就会导致大家都不能进行对版本的控制,即版本控制的权限仅在中央服务器上存在。

分布式版本控制工具:Git、Mercurial、Bazaar、Dares......

像分布式版本控制工具,客户端是把代码仓库完整的镜像下来(本地库)这样任何一处的协同工作文件发生故障,事后都可以通过其他的客户端的本地仓库进行恢复,因为每个客户端的每一次文件提取操作,实际上都是一次对整个文件仓库的完整备份。

分布式的版本控制系统出现后,解决了集中式版本控制系统的缺陷:

1.?服务器断网时也可以进行开发(因为版本控制是在本地进行的)

2.?每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)

1.4Git简史

由linus创建从1991年到2002年Linux都是linus自己手动合并由各地提交的对于Linux优化改进的代码,2002年BitKeeper公司免费使用版本控制系统但是到了2005年Linux社区Andrew对于BirKeeper协议进行破解被发现BitKeeper收回Linux免费使用该软件的权限linus花费两周时间开发出了分布式版本控制系统Git,一个月后Linux系统代码由Git管理。

1.5Git的工作机制

工作区(本地存放的代码的磁盘地址)写代码—git add——》暂存区(临时存储)此时还未提交,可以删除——git commit——》本地库(此时生成历史版本)除了销毁本地库基本上你的文件的历史版本是删除不掉的——git push——》远程库

1.6Git和代码托管中心

代码托管中心是基于网络服务器的远程代码仓库,我们简称为远程库。

局域网:

GItLab

互联网:

GitHub(外网)

Gitee码云(国内网站)

第二章?Git安装

这里我就不具体细说了,去官网上下载下Git最新版本,安装的时候一路选择默认就好了。

第三章?Git常用命令

3.1 Git常用命令

命令名称

作用

git config-global user.name?用户名

设置用户签名

git config-global user.emall?邮箱

设置用户签名

git init

初始化本地库

git status

查看本地库状态

git add文件名

添加到缓存区

git commit-m”日志信息”文件名

提交到暂存区

git reflog

查看历史记录

Git reset--hard版本号

版本穿梭

3.2?设置用户签名

(1)基本语法

git config-global user.name?用户名

git config-global user.emall?邮箱

(2)说明

签名作用是区分不同操作者身份,用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。Git首次安装必须设置一下用户名,否则无法提交代码。

注意:这里设置的用户签名和将来登录GitHub(或者其他代码托管中心)的账号没有任何关系。

3.3?查看本地库状态

(1)基本语法

git init

(2)在你的的本地磁盘创建一个git?的仓库(文件夹),创建完成后在该文件里面(因为没有放东西,所以暂时是空的)鼠标右键一下打开Git Bash Here然后输入git init命令回车即可

此时你的文件里会生成一个.git文件夹里面是一些配置文件(尽量别去动它),如果没有就在你的操作栏上点击查看把隐藏文件勾选上(电脑一般是未勾选的)

?

这里的Git Bash Here弹出的操作框跟Linux系统一样,所用命令都相同。

而这里的.git就是你的工作区

3.4添加暂存区(就是git追踪文件的过程)

(1)基本语法

git ?add?文件名

(2)在Git Bash Here操作框里输入git add?文件名,里面的waring可以不用管一般是自动换换行符

?

之后可以继续查看文件的状态,当文件名从红色变为绿色

?说明你的文件提交到了暂存区,如果想要删除该文件可以根据里面的提示内容(就是跟Linux系统的删除文件一样)命令是git rm--cached?文件名,这里只是把暂存区的文件删掉了,但是你的工作区里还是有该文件的。

3.5将暂存区的文件提交到本地库

(1)基本语法

git ?commmit ?-m“日志信息”文件名

(2)操作

红色下划线是提交的版本号

git ?log查看完整的日志信息

git ?reflog查看简化的日志信息

3.6修改文件

(1)操作命令

vim?文件名

修改后再wq保存下

(2)修改后你需要将文件再次的追踪以及提交本地库

这里说下,每次修改都相当再建了一个文件需要去再次的提交追踪

3.7历史版本

3.7.1查看历史版本

基本语法

git ?refolg查看版本信息

git ?log查看版本详细信息

3.7.2版本穿梭

基本语法0

git ?reset ?--hard?版本号

第四章?分支操作

从右向左看

4.1什么是分支

在版本控制过程中,同时推进多个任务,我们就可以创建每个任务的单独分支,使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单的理解为副本,一个分支就是一个单独的副本。(分支底层其实也就是指针的引用)

4.2分支的好处

同时并行推进多个功能开发,提高开发效率。

各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响,失败的分支删除重新开始即可。

4.3分支的操作

命令名称

作用

git??branch?分支名

创建分支

git??branch??-v

查看分支

git??checkout?分支名

切换分支

git??merge分支名

把指定的分支合并到当前分支上

4.3.1查看分支

(1)基本语法

git ?branch ?-v

(2)案例实操

4.3.2创建分支

(1)基本语法

git ?branch?分支名

(2)案例实操

4.3.3修改分支

(1)基本语法

git ?branch?分支名

4.3.4切换分支

(1)基本语法

git ?branch?分支名

(2)案例实操

红色标注?说明现在所处的分支,而星号*说明确实在该分支

4.3.5合并分支

(1)基本语法

git ?branch?分支名

(2)案例实操(在master分支上合并hot-fix分支)

4.3.6产生冲突

冲突产生的表现:后面状态为MERFING

冲突产生的原因:

合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改,GIt无法替我们决定使用哪一个,必须人为决定新代码的内容。

4.3.7解决冲突

(1)编辑有冲突的文件,删除特殊符号,决定要使用的内容

修改前

修改后

然后保存下添加到暂存区提交本地库(这一步不可以使用原来的文件名称)

(2)特殊符号:<<<<<<<HEAD?当前分支的代码 ?======= ?合并过来的代码 ?>>>>>>>hot-fix

注意:合并修改的只是当前的文件内容(比如我当前在master主线将hot-fix合并到master上我的hot-fix文件是不改变的,改变的只是master文件而已)

master、hot-fix其实都是指向具体版本记录的指针,当前所在的分支,其实是由HEAD决定的,所以创建分支的本质就是多创建一个指针。

HEAD如果指向master,那么我们现在就在master分支上

HEAD如果指向hot-fix,那么我们现在就在hot-fix分支上

所以切换分支的本质就是移动HEAD指针

第五章?Git团队协作机制

5.1团队协作机制

A先将自己的本地库推送(push)到代码托管中心(2)然后B从代码托管中心克隆(clone)A提交的代码到自己的本地库然后再完善下(3)当B完善好了再将完善过的代码推送(push)到代码托管中心(4)此时A再将代码托管中心里经过B完善后的代码拉取(pull)到自己的本地代码仓库。经过此番操作后完成了A、B、代码托管中心的代码统一。

5.2跨团队协作

(1)先将自己团队的代码公布到远程库(代码托管中心)(2)另一团队fork(叉)过来该代码然后克隆到本地仓库进行修改完善(3)代码修改完善后推送到远程库上(4)联系接受团队进行核实(5)审核通过后原来的团队将修改完善后的代码与自己原来的代码进行合并。

  开发工具 最新文章
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常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-07-04 23:10:55  更:2022-07-04 23:12:48 
 
开发: 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/26 0:35:00-

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