git实操图文详解系列教程——git原理与实践(代码片段)

谷哥的小弟 谷哥的小弟     2023-03-16     562

关键词:


版权声明

  • 本文原创作者:谷哥的小弟
  • 作者博客地址:http://blog.csdn.net/lfdfhl

开发环境

本系列教程所涉开发环境,详情如下:

  • 1、Win10
  • 2、JDK1.8
  • 3、Git2.31.1
  • 4、IDEA 2021.2.1

参考资料

本系列教程在撰写过程中所涉及参考资料,详情如下:

https://git-scm.com/book/zh/v2

http://git.oschina.net/progit/

https://www.liaoxuefeng.com/wiki/896043488029600

https://marklodato.github.io/visual-git-guide/index-zh-cn.html


Git释义

Git在英国俚语表示“混帐”的意思;该名字来源于 Linus 的自嘲:

I’m an egotistical bastard, and I name all my projects after myself. First Linux, now Git.

Git概述

Git 是一个免费的、开源的分布式版本控制系统;它可以快速、高效地对软件开发领域的各种项目进行版本管理。

Git之父

Git是Linux创始人Linus Torvalds于2005年为Linux内核开发而创作的分布式版本管理系统。

Git官网

https://git-scm.com/

大家注意到Git的ICON图标没有呢?是不是有点像一颗带有枝蔓的树苗呢?

Git下载

请从Git官网或镜像下载Git安装文件;链接如下:

https://mirrors.edge.kernel.org/pub/software/scm/git/

https://registry.npmmirror.com/binary.html?path=git-for-windows/

本教程以2.31.1为例进行讲解;图示如下:


请下载安装文件并保存至本地,图示如下:

Git文档

Git中文参考文档如下:

https://git-scm.com/book/zh/v2

Git安装

在此,详述Git的安装过程及其注意事项。

请双击安装文件执行安装;图示如下:


选择安装位置;图示如下:


点击Next执行下一步;图示如下:


点击Next执行下一步;图示如下:

点击Next执行下一步;图示如下:


点击Next执行下一步;图示如下:


请注意:不必修改环境变量,所以选择第一种方式;点击Next执行下一步;图示如下:


点击Next执行下一步;图示如下:


点击Next执行下一步;图示如下:


点击Next执行下一步;图示如下:


点击Next执行下一步;图示如下:


点击Next执行下一步;图示如下:


全部勾选后点击Next执行下一步;图示如下:


点击Install执行安装;图示如下:


点击Finish完成安装;图示如下:


在电脑任意位置右键菜单里选择 Git Bash Here 即可打开 Git Bash 命令行终端;图示如下:

在 Git Bash 终端里输入 git --version 查看 git 版本;图示如下:


在完成Git的安装后请配置用户签名;其作用是区分不同操作者身份。Git首次安装必须设置用户签名,否则无法提交代码。

设置签名,命令如下:

git config --global user.name 输入用户名再回车
git config --global user.email 输入邮箱再回车

查看签名,命令如下:

git config --global user.name 回车
git config --global user.email 回车

示例代码:

请注意:此处设置用户签名与以后登录 GitHub(或其它代码托管中心)的账号没有任何关系。

Git原理

在此,简述Git的组成部分及其工作原理详解。

组成部分


在Git中由3个本地区域和1个远程仓库构成,概述如下:

工作区(Working Directory):本地硬盘存放代码的目录叫做工作区。

缓冲区(Stage): 缓冲区又被称为index,它被当做工作区与本地仓库的过渡。在工作区的代码可通过add或stash命令将代码加入到缓冲区。

本地仓库: 缓冲区的代码通过commit命令来提交至本地仓库。

远程仓库: 本地仓库中的代码通过push命令将代码推送至远程仓库

工作原理

  • 1.从远程仓库中clone克隆代码到本地仓库
  • 2.从本地仓库中checkout代码到工作区后再进行修改
  • 3.将修改后的代码add添加到暂存区
  • 4.将暂存区的代码commit提交到本地仓库
  • 5.将本地仓库的代码push推送到远程仓库

四种状态

Git文件存在四种状态,详情如下:

Untracked: 即文件未跟踪状态。表示此文件在工作区中,但并没有加入到git库不参与版本控制。在此状态下,可通过git add 将其状态变为Staged.

Unmodify: 即文件已提交至本地仓库。本地库中的文件快照内容与工作区中完全一致。该类型的文件有两种去处:如果它被修改则变为Modified;如果使用git rm移出版本库, 则成为Untracked状态。

Modified: 即文件已修改状态。该文件有两个去处:通过git add进入暂存staged状态;或者使用git checkout 丢弃已作的修改返回到unmodify状态,因为git checkout表示从库中取出文件覆盖当前被修改的文件。

Staged: 即文件暂存状态。执行git commit则将修改提交到本地库,此时本地库中的文件和工作区文件一致,文件为Unmodify状态。在该状态下若执行git reset HEAD取消暂存则文件状态为Modified。

Git分支

分支是Git非常重要的概念和功能,在此对其进行详解。

分支概念

在版本控制过程中常常需要同时推进多个任务。所以,可以为每个任务创建单独的分支。使用分支意味着开发人员可以把自己的工作从开发主线master上分离开来,在开发自己的分支时不会影响主线分支的运行。

对于初学者而言可以简单地把分支理解为副本,一个分支就是一个独立的副本。

合并分支(正常情况)

假设原本只有一个主分支master,再在此基础上创建新的分支feature-game分支。当feature-game完成开发任务后,我们需要将两个分支进行合并。

合并思路

将feature-game分支合并到master主分支。所以,我们应该切换到master分支再进行合并。通俗地说:我们应该站在master分支的视角进行分支的合并。

合并步骤

  • 1、切换到master分支
  • 2、合并feature-game分支

合并分支(发生冲突)

当两个分支都修改了同一个文件后在合并分支可能发生冲突。通俗地说:两个分支修改同一个文件导致Git不知所措,不知道删除哪些保留哪些。所以,此时必须人为解决代码冲突。

解决步骤:

  • 1、请打开发生冲突的文件,例如:user.java
  • 2、<<<<<<< HEAD 与 =======之间的代码是master分支的代码
  • 3、=======与>>>>>>>之间的代码是feature-game分支的代码
  • 4、请谨慎整理发生冲突的代码并删除无用的代码
  • 5、请删除<<<<<<< HEAD和=======以及>>>>>>>等标识
  • 6、请执行git add user.java 将文件添加至暂存区
  • 7、请执行git commit -m "merge codes"提交代码至本地库
------未发生合并冲突的code------
------未发生合并冲突的code------
------未发生合并冲突的code------
<<<<<<< HEAD
master分支的代码
=======
feature-game分支的代码
>>>>>>>

分支与指针

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

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

也就是说:切换分支的本质就是移动 HEAD 指针。

Git团队协作

在此,以示例的形式介绍Git在团队开发中协作。

  • 1、岳不群利用 git 初始化自己的本地库并写了一套华山剑法
  • 2、岳不群利用push 命令将自己的本地库推送到远程的代码托管中心
  • 3、令狐冲通过 clone 命令将剑法完整地复制到自己的本地库
  • 4、令狐冲在以往的基础上修改几招之后将自己的本地库 push 到远程代码托管中心
  • 5、岳不群通过 pull 命令拉取令狐冲修改的招式来更新自己本地库中的剑法。

git实操图文详解系列教程——idea集成git(代码片段)

版权声明本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl开发环境本系列教程所涉开发环境,详情如下:1、Win102、JDK1.83、Git2.31.14、IDEA2021.2.1参考资料本系列教程在撰写过程中所涉及参考资料,... 查看详情

git实操图文详解系列教程——idea集成git(代码片段)

版权声明本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl开发环境本系列教程所涉开发环境,详情如下:1、Win102、JDK1.83、Git2.31.14、IDEA2021.2.1参考资料本系列教程在撰写过程中所涉及参考资料,... 查看详情

git实操图文详解系列教程——idea集成github

版权声明本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl开发环境本系列教程所涉开发环境,详情如下:1、Win102、JDK1.83、Git2.31.14、IDEA2021.2.1参考资料本系列教程在撰写过程中所涉及参考资料,... 查看详情

git实操图文详解系列教程——idea集成gitee

版权声明本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl开发环境本系列教程所涉开发环境,详情如下:1、Win102、JDK1.83、Git2.31.14、IDEA2021.2.1参考资料本系列教程在撰写过程中所涉及参考资料,... 查看详情

git实操图文详解系列教程——idea集成gitee

版权声明本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl开发环境本系列教程所涉开发环境,详情如下:1、Win102、JDK1.83、Git2.31.14、IDEA2021.2.1参考资料本系列教程在撰写过程中所涉及参考资料,... 查看详情

git实操图文详解系列教程——github核心操作(代码片段)

版权声明本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl开发环境本系列教程所涉开发环境,详情如下:1、Win102、JDK1.83、Git2.31.14、IDEA2021.2.1参考资料本系列教程在撰写过程中所涉及参考资料,... 查看详情

❤️git图文使用教程详解(代码片段)

✍、Git图文使用教程说明Git版本:v2.33.0IDEA版本:2021.1主要记录git的常用命令、IDEA集成git、git与GitHub、IDEA集成GitHub、Gitee等(详细图文步骤记录)配套视频参考:【尚硅谷】5h打通Git全套教程❤️Git图文使用教程详解地... 查看详情

❤️git图文使用教程详解(代码片段)

✍、Git图文使用教程说明Git版本:v2.33.0IDEA版本:2021.1主要记录git的常用命令、IDEA集成git、git与GitHub、IDEA集成GitHub、Gitee等(详细图文步骤记录)配套视频参考:【尚硅谷】5h打通Git全套教程❤️Git图文使用教程详解地... 查看详情

❤️git图文使用教程详解(代码片段)

✍、Git图文使用教程说明Git版本:v2.33.0IDEA版本:2021.1主要记录git的常用命令、IDEA集成git、git与GitHub、IDEA集成GitHub、Gitee等(详细图文步骤记录)配套视频参考:【尚硅谷】5h打通Git全套教程❤️Git图文使用教程详解地... 查看详情

clickhouse极简教程-图文详解原理系列clickhouse主键索引的存储结构与查询性能优化...(代码片段)

概述这是AlexeyMilovidov(ClickHouse的创建者)给出的关于复合主键的答案的翻译。原文:https://groups.google.com/g/clickhouse/c/eUrsP30VtSU/m/p4-pxgdXAgAJ问题:主键可以有多少列?存储驱动器上的数据布局是什么?有任何理论/实践... 查看详情

git初级实践教程(图文)

关于GitGit的由来Linux的创始人LinusTorvalds在2005年开发了Git的原型程序。当时,由于在Linux内核开发中使用的既有版本管理系统的开发方许可证发生了变更,为了更换新的版本管理系统,Torvalds开发了Git。说在前面Linux和Mac都预装了Gi... 查看详情

git学习系列之如何正确且高效地将本地项目上传到github(图文详解)(代码片段)

...Git的安装  见Git学习系列之Windows上安装Git详细步骤(图文详解)      1、进入Github首 查看详情

git系列教程

 【重学Git】整理提交记录【重学Git】高级命令篇【重学Git】基础命令篇githubpages与travisci运作原理用命令行撤销工作区的所有更改(修改文件&&新增文件)配置Gitlabpages和GitlabCI谈下git的基本操作 出处:https://www.cnblog... 查看详情

贺老师新作:git入门实践教程

...及其应用14在IDE中使用Git(3天后)《Git入门实践教程》文字版也好了。在CSDN当然要放一份,来点这里… 查看详情

图文详解如何利用git+github进行团队写作开发

图文详解如何利用Git与GitHub进行团队协作开发团队协作开发中,大部分都会用到版本控制软件,比如Git、Svn等。本文将通过一个实例,详细讲解在真实的工作环境中,一个团队应该如何利用Git+Github进行协作开发,即详解Git工作... 查看详情

github使用教程图文详解(代码片段)

1、首先要先在github的官网注册一个属于自己的账号。https://github.com/2、注册完成后需要一些简单的设置,先创建一个属于自己的仓库,repository3、创建仓库4、如何让自己电脑上的代码同步到Github上所创建的库当中?在这里,需要... 查看详情

git入门图文教程(1.5w字40图)🔥🔥--深入浅出图文并茂

...,免费、开源!核心能力就是版本控制。本文深入浅出、图文并茂的展示了Git的入门系列教程。01、认识一下Git!—简介Git是当前最先进、最主流的分布式版本控制系统,免费、开源!核心能力就是版本控制。再具体一点,就是... 查看详情

git系列教程三配置与基本命令

一、安装Git网上有很多安装教程,可以参考。这里使用的是Windows版本的Git,点击这里下载。二、基本设置安装完成后,通过点击鼠标右键就可以看到新添加了俩个Git命令:GitGUIHere和GitBashHere。这里我们使用命令行工具进行一些Gi... 查看详情