Git 的安装、使用、分支、命令 一篇博客全都学会

目录

1 版本控制

1.1 什么是版本控制

1.2 为什么需要版本控制

2 Git概述

2.1 Git的工作机制

2.2 分布式版本控制工具与集中式的区别

2.3 Git是如何诞生的

3 Git的安装

4 Git常用命令

4.1 用户签名的设置和修改

4.2 查看用户签名的设置

4.3 初始化本地库

4.4 添加、删除文件到暂存区

​ 4.5 提交文件到本地库形成历史版本

 4.6 修改文件内容

 4.7 修改当前版本

 5 Git分支

5.1 分支是什么

5.2 使用分支的好处

5.3 分支的常用操作命令

5.3.1 查看分支

5.3.2 创建分支

5.3.3 修改分支

5.3.4 切换分支 

 5.3.5 分支的合并

5.3.6 删除分支

6 Git常见命令速查表


1 版本控制

1.1 什么是版本控制

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

        下面让我们以毕业论文的多次修改为例来了解版本控制的思想:

1.2 为什么需要版本控制

        个人开发时版本控制的必要性不是很突出,当过渡到团队协作开发代码的时候,版本控制就显得格外重要了 。

        下面以两人共同开发代码为例,每天的工作量都保存在服务器上。

 没有版本控制工具

使用了版本控制工具

2 Git概述

        Git是一个开源免费的分布式版本控制工具,它具有廉价的本地库即指Git的库在本地电脑的磁盘上。

2.1 Git的工作机制

  • 工作区

        工作区就是编写完代码之后,代码存储在磁盘中的位置。存储在工作区的代码是随时可以删除更新的,更新之后的代码可以添加(add)到缓存区。

  • 缓存区

        缓存区用来在工作区和本地库之间起到一个缓冲的作用,添加进缓存区的代码也是可以随时删除的。缓存区的代码可以提交(commit)到本地库。

  • 本地库

        提交到本地库的代码会生成该项目代码的历史版本,既然是历史版本这个库里的代码就无法随意更改了,只能基于这个版本的代码进行修改,就算修改后生成新的版本,这个历史版本依旧存在。

  • 远程库

        远程库又叫做代码托管中心,是将本地库的代码推送(push)到远程库,远程库又分为局域网和互联网两种,互联网远程库中的代码都是开源的,局域网中的代码只有连接到本局域网才能查看。目前比较常用的只要有以下三种:

GitHub:配合Git使用的 【国外代码托管中心】GitHub_扎哇太枣糕的博客-CSDN博客

Gitee:配合Git使用的 【国内代码托管中心】Gitee **墙裂推荐**_扎哇太枣糕的博客-CSDN博客

GitLab:基于局域网代码托管中心,若有需要可自行了解。

2.2 分布式版本控制工具与集中式的区别

        参考博客:集中式和分布式版本控制系统的区别_贫下中农-CSDN博客_分布式控制 

2.3 Git是如何诞生的

        Git的产生也是十分有趣的,想要了解的朋友可以看看,万一哪天跟别人装13用得上呢。参考博客:git的诞生历史_u012028371的博客-CSDN博客_git的历史

3 Git的安装

Git官网:Git 

        点击后会自动下载适合你电脑的最新版本的安装包,双击安装包(除了选择安装目录位置,其他选项全都无脑下一步即可)。安装之后在桌面右键然后选择Git Bash Here,键入命令git --version返回安装的版本号即证明安装成功。

4 Git常用命令

        Git中的所有命令基本上都和Linux中相同,你完全可以在Git中使用Linux的命令去秀翻室友。

4.1 用户签名的设置和修改

        第一次使用时设置用户签名,用来区分不同的操作者身份,不然提交代码时可能会报错,如果想要对用户签名进行修改的话,只需要再次键入该命令修改后面的值即可。

git config --global user.name 自己设置的用户名
git config --global user.email 自己的邮箱

4.2 查看用户签名的设置

🔥使用命令查看

git config user.email
git config user.name

🔥文件内容查看

C盘-->用户-->asus--> .gitconfig文件(具体地址因电脑而异,我的是华硕所以说可能是asus)

4.3 初始化本地库

        在想要使用git进行托管的项目文件下右键选择Git Bash Here,键入命令git init,即可成功初始化本地库。初始化本地库之后会在项目文件夹下生成一个.git文件夹(一个隐藏的文件夹),文件夹里的内容切勿作丝毫的修改。

 使用ll命令对文件进行查看,ll -a 是查看所有的文件(包括隐藏文件)

4.4 添加、删除文件到暂存区

git add 文件名
git rm --cached 文件名

 4.5 提交文件到本地库形成历史版本

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

查看大致版本信息 

git reflog

查看详细版本信息

git log

 4.6 修改文件内容

       Git中的修改文件命令跟Linux中一样。修改后的文件不再存在于缓存区,想要提交修改后的文件到本地库必须再次使用add命令,将修改后的文件添加进缓存区才能继续提交。

vim 文件名

 点击键盘上的insert键可以对文件进行修改,修改完成后点击键盘上的esc退出修改模式,再点击键盘的:键,然后键入wq点击ENTER键,即可退出文件修改。

 4.7 修改当前版本

版本修改成功后工作区的文件内容也变成相应版本的内容。

 git reset --hard 版本号

 5 Git分支

5.1 分支是什么

        在版本控制的过程中,如果需要同时推进多个任务,我们就可以为每个任务创建一个单独的分支,用来单独推进其中的一个任务。使用分支意味着程序员可以把自己的工作从主线上分离开来进行开发,开发自己的分支的时候,并不会影响到主线分支的运行。

        以王者荣耀的每次更新为例,在版本1.0的时候我们想要在游戏中添加几个英雄并新增一个玩法,此时从主分支上拉取1.0的项目形成两个分支,同时开始研发。当添加英雄的任务完成之后,将其与主分支进行合并形成1.1版本,新增玩法则继续开发。1.1版本上线后根据用户反馈发现有一个bug影响游戏体验,于是我们拉取1.1的项目形成一个热修分支,将bug修改完成后与主分支进行合并形成1.2版本。此时新增的玩法终于完成,将其与主分支进行合并,由于此次是一次大更新,所以我们姑且将它定义为2.0版本。

 所以现在能够理解为什么王者的每次更新都需要我们去下载资源了吧

5.2 使用分支的好处

        并行推进多个功能的开发,提高开发效率。各个分支在开发的过程中,如果某一个分支开发失败,不会对其他分支产生任何的影响,失败后删除分支重新开始即可。

5.3 分支的常用操作命令

5.3.1 查看分支

git branch -v

5.3.2 创建分支

git branch 分支名

5.3.3 修改分支

        修改分支实际上就是在该分支上使用vim命令对项目的文件内容进行修改,在一个分支上修改文件并不会对影响该文件在其他分支上的内容信息,切换分支后再查看该文件会发现文件内容并没有改变 。

5.3.4 切换分支 

git checkout 分支名

 5.3.5 分支的合并

git merge 分支名

5.3.6 删除分支

git branch -d 分支名

6 Git常见命令速查表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/535149.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

生成一个GitHub的token用于git推送本地库至远程库

1 一步步选择设置 2 使用链接直接跳转到最后一步的设置页 git push 的时候需要token,所以在GitHub上生成一个临时的token 1 一步步选择设置 2 使用链接直接跳转到最后一步的设置页 前提是你已经在这个浏览器上登陆了GitHub https://github.com/settings/tokens

都2021年了,还不会使用GitHub创建、推送、拉取、克隆远程库、团队协作开发?

1 对自己的远程库操作 1.1 在GitHub上创建远程库 1.2 推送本地库至远程库 1.3 拉取远程库到本地库 1.4 克隆远程仓库到本地 2 对别人的远程库两种操作方式 2.1 使用GitHub进行团队内协作开发 2.2 使用GitHub进行跨团队协作开发 众所周知,GitHub是一个大型的国…

2021 最新 IDEA集成Gitee、Gitee迁移GitHub【图文讲解】

1 创建远程库 2 IDEA集成Gitee 2.1 安装gitee插件并绑定账号 2.2 IDEA推送本地库至远程库的两种方式 2.3 修改后推送本地库至远程库 2.4 拉取远程库 2.5 使用IDEA克隆远程库 3 Gitee迁移GitHub的远程库的两种方式 3.1 自己的账户之间迁移 3.2 使用链接进行迁移 3.3 强制刷…

只需五步学会Maven 3.6.1OR 3.6.3及其他版本的下载安装与配置【图文详解】

第一步,下载并解压缩包 ​第二步,配置两个环境变量 ​第三步,测试是否安装成功 ​第四步,指定本地仓库的路径 第五步,修改镜像仓库 第一步,下载并解压缩包 Maven官方下载地址:https://mav…

只需四步完成java JDK1.8的下载安装与配置【图文详解】

第一步,下载安装包并安装 第二步,安装JDK 第三步,配置三个环境变量 第四步,测试是否安装成功 第一步,下载安装包并安装 Oracle的官方下载地址:https://www.oracle.com/java/technologies/downloads/#ja…

从Maven中央仓库网站下载jar包的两种方式,将会伴随java后端开发者的整个职业生涯

这个肥肠重要的网站就是:https://mvnrepository.com/ 下面我会以mysql-connector-java-8.0.26.jar为例,教会你使用两种方式下载使用jar包资源 首先在搜索栏使用全称或者是关键字对jar包进行搜索 选择你想要的版本 方式一:导入pom文件依赖(…

2021 使用IDEA创建并编写你的第一个Maven项目【图文详解】

1 使用IDEA创建你的第一个Maven项目 2 使用IDEA编写一个Maven项目 1 使用IDEA创建你的第一个Maven项目 新建一个空白项目 File-->New-->Project-->Empty Project 在IDEA中配置JDK 在IDEA中配置Maven 新建一个Maven模块 在test目录下面新建一个resources文件夹 2 使…

能让你的Intellij IDEA 起飞的几个设置(设置背景 字体 快捷键 鼠标悬停提示 提示忽略大小写 取消单行显示)

1 设置主题(背景图片) 2 设置字体 2.1 设置默认的字体及其大小、行间距**墙裂推荐** 2.2 设置字体大小可以随意改变**墙裂推荐** 3 设置鼠标悬停提示 4 提示的时候忽略大小写**墙裂推荐** ​​5 取消单行显示tabs**墙裂推荐** 6 修改类头的文档注释信息 7 设置项目文…

控制台:Unable to import maven project: See logs for details日志:Unable to create injector, see the follow

问题描述: 当我在使用IDEA 完成一个Maven项目的时候,在第一步的pom.xml文件导入依赖时就发生了这个问题,弹窗弹出Uable to import maven project 控制台报 Unable to import maven project: See logs for details的异常。 既然人家都让查看l…

Maven基础教程

1 Maven简介 2 Maven基础概念 2.1 仓库 2.2 坐标 3 依赖的相关知识点 4 生命周期与插件 5 使用Inteli idea完成第一个Maven项目 1 Maven简介 Maven的本质就是一个项目管理工具,用于将项目开发和管理过程抽象成一个项目对象模型(project object model POM) Ma…

【Java从入门到头秃专栏 】(一)学在Java语法之前

目录 1 初识Java 2 Java环境JDK 3 Java规范 1 初识Java Java是美国的sun(Stanford University Network)公司在1995年推出的一门计算机高级编程语言,虽然说当时参与开发Java的人员有好几名,但是业内公认的Java之父是詹姆斯高斯林(James Gosling)。 Jav…

【Java从入门到头秃专栏 】(二) 注释 数据类型 变量 常量 关键字 标识符 运算符 输入输出

目录 1 注释 2 数据类型 3 变量与常量 4 关键字、标识符 5 运算符 6 键入值、输出值 1 注释 注释就是写在程序中对代码进行解释说明的文字,方便自己和其他人查看,以便大家更加容易理解程序。注释虽然写在程序中,但是并不参与程序的执行&#…

【Java从入门到头秃专栏 】(三) 控制流程 Math Date DateFormat Calendar System BigDecimal Random

目录 1 控制流程 2 Math类 3 Date类 4 DateFormat类 5 Calendar类(日历类) 6 System类 7 BigDecimal类 8 Random类(随机数) 1 控制流程 1.1 块作用域 块(即复合语句)就是指由若干条Java语句组成的语句,并用一条大括号括起来,并借此形式确定了变量…

IntelliJ IDEA最常用的一些快捷键,学会了室友还以为你在祖安对线

目录 1 快速生成语句 1.1 main语句 1.2 输出语句 1.3 流程控制语句 1.3.1 if判断语句 1.3.2 while循环 1.3.3 for循环 1.3.4 数组、集合的循环操作 1.3.5 迭代器循环操作 1.4 对象实例化、定义变量 1.5 try-catch异常 2 快捷键 2.1 Ctrl系列 2.2 alt系列 2.2.1…

【Java从入门到头秃专栏 6】语法篇(五) :多线程 线程池 可见、原子性 并发包 Lambda表达式

目录 1 多线程 1.1 基本概念 1.2 创建线程的三种方式 1.4 解决线程安全问题的三种方法 1.5 线程通信 1.6 线程状态 2 线程池 2.1线程池的概念 2.2 创建并提交任务 3 可见性 3.1 变量不可见性 3.2 变量不可见性的解决方案 4 原子性 4.1 原子性的概念 4.2 保证原…

【Java从入门到头秃专栏 7】语法篇(六) :Lambda表达式(->) 方法引用(::) stream流

目录 1 Lambda表达式( -> ) ​ 2 方法引用( :: ) 3 Stream流 接下来介绍的三种语法叫:Lambda表达式 方法引用 stream流,这三种语法的使用要有特定条件,在一定条件下借助这三种语法可以使代码十分简单且优雅,但是不要舍本逐末…

【Java从入门到头秃专栏 4】语法篇(三) :字符串 数组

目录 1 String字符串 2 数组 1 String字符串 Java没有内置的字符串类型,而是在Java类库中提供了一个预定义类--String。 在Java中把每一个使用双引号括起来的字符串都看做是String类的一个实例化对象。 String常被称作是不可变字符串类型,那么有人就有…

【Java从入门到头秃专栏 8】语法篇(七) :反射 动态代理 注解

目录 1 反射机制 2 反射的应用:动态代理 3 注解 1 反射机制 反射机制(Reflect Machanism),是指在程序运行期间借助Reflect API获取任何类的内部信息,并能直接操作对象的内部属性以及方法,Java本身而言是静态语言但是由于Java反…

【SSM面向CRUD编程专栏 1】Spring简介 xml配置文件 依赖注入 数据注入

🛫更多ssm知识见SSM_面向CRUD编程专栏 🚕本博客总结自黑马程序员的ssm框架视频 🚒博主对于该知识尚在学习阶段 🚄如果发现存在问题请毫不吝啬的指出 🚀🚀扎哇太枣糕的博客主页🚀🚀 目…

【SSM面向CRUD编程专栏 2】Spring相关API 数据源(连接池)的配置 注解开发 整合junit

🛫更多ssm知识见SSM_面向CRUD编程专栏 🚕本博客总结自黑马程序员的ssm框架视频 🚒博主对于该知识尚在学习阶段 🚄如果发现存在问题请毫不吝啬的指出 🚀🚀扎哇太枣糕的博客主页🚀🚀 目…