【Git基础教程】

2021-12-28

1.Git介绍

1.1版本控制

无论是代码编写,还是文档编写,我们都会遇到对文档内容反复修改的情况

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QhggX4OY-1640674162235)(.\img\01_版本控制介绍.png)]

1.2开发中存在的问题

  • 程序员小明负责的模块就要完成了,就在即将提交发布之前的一瞬间,电脑突然蓝屏,硬盘光荣下岗!

几个月来的努力付之东流

  • 老王需要在项目中加入一个很复杂的功能,一边尝试,一边修改代码,就这样摸索了一个星期。
    可是这被改得面目全非的代码已经回不到从前了。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PbbYte2k-1640674162237)(.\img\03_开发中的麻烦.png)]

  • 小明和老王先后从文件服务器上下载了同一个文件

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SuAyo5u8-1640674162238)(.\img\04_开发中的麻烦.png)]

  • 因项目中Bug过多,导致项目进度拖延,项目经理老徐因此被骂,但不清楚Bug是手下哪一个程序员写的

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l0FvnEXi-1640674162239)(.\img\05_开发中的麻烦.png)]

  • 开发中要解决的问题

    • 代码备份
    • 版本控制
    • 协同工作
    • 责任追溯

1.3 SVN版本控制

S V N SVN SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而开发人员工作的时候,用的都是自己的电脑,
所以首先要从中央服务器下载最新的版本,然后开发,开发完后,需要把自己开发的代码提交到中央服务器。

  • 服务器单点故障

    将会导致所有人员无法工作

  • 而服务器硬盘损坏

    这意味着,你可能失去了该项目的所有历史记录,这是毁灭性的。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WT2fQklO-1640674162239)(.\img\06_svn和git的对比.png)]

1.4 Git版本控制

Git是在2005年,Linux系统的创建者Linus Torvalds,为了帮助全球的开发者,维护Linux系统内核的开发
而开发了自己的开源分布式版本控制工具,分为两种类型的仓库:本地仓库和远程仓库

  • 每一个客户端都保存了完整的历史记录

    服务器的故障,都可以通过客户端的记录得以恢复。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BPtAPBqA-1640674162240)(.\img\07_svn和git的对比.png)]

2.Git下载和安装

2.1Git的下载

官网下载地址:https://git-scm.com/downloads

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g0H8AkvP-1640674162241)(.\img\08_Git的下载.png)]

2.2Git的安装

  1. 双击安装包,进入安装向导界面

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-13heDzaW-1640674162241)(.\img\09_Git的安装01.png)]

  2. 指定安装目录

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fww80XIU-1640674162242)(.\img\10_Git的安装02.png)]

  3. 一路next下一步

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3lW949NC-1640674162242)(.\img\11_Git的安装03.png)]

  4. 等待安装

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G7JQAw4M-1640674162243)(.\img\12_Git的安装04.png)]

  5. 安装完成

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-54l5DnyR-1640674162244)(.\img\13_Git的安装05.png)]

  6. 安装完成后在电脑桌面(也可以是其他目录)点击右键,如果能够看到如下两个菜单则说明Git安装成功。

    在这里插入图片描述

  7. 运行Git命令客户端,使用git --version 命令,可以查看git版本

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Uy5Y5poh-1640674162245)(.\img\15_Git的安装07.png)]

2.3TortoiseGit的安装

  1. 双击安装包,进入安装向导界面

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iDPtoSxs-1640674162246)(.\img\16_TortiseGit的安装.png)]

  2. 一路next下一步

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SX6KhRPQ-1640674162246)(.\img\17_TortiseGit的安装.png)]

  3. 指定安装目录
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7vbtNpM5-1640674162247)(.\img\18_TortiseGit的安装.png)]

  4. 安装

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TCJVEo4d-1640674162247)(.\img\19_TortiseGit的安装.png)]

  5. 配置

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2kRMjjtY-1640674162248)(.\img\20_TortiseGit的安装.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VoMJyopX-1640674162249)(.\img\22_TortiseGit的安装.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ubb9gZYp-1640674162249)(.\img\23_TortiseGit的安装.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rUu7Bsbg-1640674162250)(.\img\24_TortiseGit的安装.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EkBIH2Y8-1640674162250)(.\img\25_TortiseGit的安装.png)]

  6. 安装TortoiseGit中文语言包,一路next即可

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3U36GMqe-1640674162251)(.\img\26_TortiseGit的安装.png)]

  1. 配置TortoiseGit中文语言

    在这里插入图片描述

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R92qzQZ0-1640674162252)(.\img\28_TortiseGit的安装.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y1MhhOAE-1640674162252)(.\img\29_TortiseGit的安装.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FsyCpAJU-1640674162253)(.\img\30_TortiseGit的安装.png)]

3.Git操作入门

3.1Git基本工作流程

本地仓库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vSbdoImd-1640674162254)(.\img\31_Git基本工作流程.png)]

3.2Git命令行操作(应用)

  • git常用命令

    命令作用
    git init初始化,创建 git 仓库
    git status查看 git 状态 (文件是否进行了添加、提交操作)
    git add 文件名添加,将指定文件添加到暂存区
    git commit -m ‘提交信息’提交,将暂存区文件提交到历史仓库
    git log查看日志( git 提交的历史日志)
  • 操作步骤

    1. 创建工作目录、初始化本地 git 仓库

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IxRDnFrB-1640674162254)(.\img\32_Git工作流程.png)]

    2. 新建一个 test.txt 文件(暂不执行添加操作)

    3. 使用 status 命令,查看状态

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fRsDR6ue-1640674162255)(.\img\33_Git工作流程.png)]

    4. 使用 add 命令添加,并查看状态

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q0H3wzF4-1640674162255)(.\img\34_Git工作流程.png)]

    5. 使用 commit 命令,提交到本地历史仓库

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b0X044G4-1640674162256)(.\img\35_Git工作流程.png)]

    6. 使用 log 命令,查看日志

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8ZKOpfsU-1640674162256)(.\img\36_Git工作流程.png)]

    7. 修改 test.txt 文件

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RWB6KyDY-1640674162257)(.\img\37_Git工作流程.png)]

    8. 添加并提交,查看日志

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XTqEmL0M-1640674162257)(.\img\38_Git工作流程.png)]

3.3Git图形化工具操作

  1. 创建工作目录、初始化本地 git 仓库

    在这里插入图片描述

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vrGh7HUD-1640674162258)(.\img\40_Git工作流程.png)]

  2. 新建一个 test.txt 文件(暂不执行添加操作)

  3. 选中文件右键,选择TortoiseGit,之后选择添加

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sxcfxobB-1640674162259)(.\img\41_Git工作流程.png)]

  4. 空白处右键,Git提交,提交到本地历史仓库

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IUt2N3Tv-1640674162259)(.\img\42_Git工作流程.png)]

  5. 空白处右键,TortoiseGit,显示日志,可以产看日志信息

    在这里插入图片描述

  6. 修改 test.txt 文件

  7. 添加并提交,查看日志

4.Git版本管理

4.1历史版本切换

在这里插入图片描述

  • 准备动作

    1. 查看 my_projectlog 日志
      git reflog :可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录的操作)
    2. 增加一次新的修改记录
  • 需求: 将代码切换到第二次修改的版本

    指令:git reset --hard 版本唯一索引值

4.2分支管理介绍(理解)

  • 分支

    • 由每次提交的代码,串成的一条时间线
    • 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线
  • 分支的使用场景

    1. 周期较长的模块开发
      假设你准备开发一个新功能,但是需要一个月才能完成
      第一周写了20%的代码,突然发现原来已经写好的功能出现了一个严重的Bug
      那现在就需要放下手中的新功能,去修复Bug
      但这20%的代码不能舍弃,并且也担心丢失,这就需要开启一个新的版本控制。
    2. 尝试性的模块开发
      业务人员给我们提出了一个需求,经过我们的思考和分析
      该需求应该可以使用技术手段进行实现。
      但是我们还不敢确定,我们就可以去创建一个分支基于分支进行尝试性开发。
  • 分支工作流程

    • Master: 指向提交的代码版本

    • Header: 指向当前所使用的的分支

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-df6Gwuno-1640674162261)(.\img\45_分支工作流程介绍.png)]

4.3分支管理操作(应用)

  • 创建和切换

    创建命令:git branch 分支名
    切换命令:git checkout 分支名

  • 新分支添加文件

    查看文件命令:ls

    总结:不同分支之间的关系是平行的关系,不会相互影响

  • 合并分支

    合并命令:git merge 分支名

  • 删除分支

    删除命令:git branch -d 分支名

  • 查看分支列表

    查看命令:git branch

5.远程仓库

5.1远程仓库工作流程(理解)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4oyHCnX0-1640674162261)(.\img\46_远程仓库.png)]

5.2远程仓库平台介绍

  • GitHub

    域名:https://github.com
    介绍:GitHub是全球最大的开源项目托管平台,俗称大型程序员社区化交友网站

    ​ 各类好玩有趣的开源项目,只有想不到,没有找不到。

  • 码云

    域名:https://gitee.com
    介绍:码云是全国最大的开源项目托管平台,良心平台,速度快,提供免费私有库

5.3先有远程仓库,本地为空

  • 步骤
    1. 将远程仓库的代码,克隆到本地仓库
      克隆命令:git clone 仓库地址
    2. 创建新文件,添加并提交到本地仓库
    3. 推送至远程仓库
    4. 项目拉取更新
      拉取命令:git pull 远程仓库名 分支名

5.4代码冲突

  • 产生原因:

    两个程序员操作同一个文件,其中一个程序员在修改文件后,push到远程仓库,另一个程序员应该先pull将最新的代码更新到本地仓库后,在修改代码,之后push到远程仓库,结果他没有先pull将最新的代码更新到本地仓库,而是直接将自己的代码push到远程仓库,这样就可能会导致代码冲突

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KmvHgWRl-1640674162270)(.\img\61_代码冲突.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NdrkTlbQ-1640674162271)(.\img\62_代码冲突.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3cEvBvD6-1640674162271)(.\img\63_代码冲突.png)]

  • 如何解决冲突

    <<<<<<<和>>>>>>>中间的内容,就是冲突部分

    1. 修改冲突行,保存,即可解决冲突。
    2. 重新add冲突文件并commit到本地仓库,重新push到远程

6.IDEA集成Git

6.1IDEA中配置Git

  1. File -> Settings

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WuXpsHMd-1640674162272)(.\img\64_IDEA中配置Git.png)]

  1. Version Control -> Git -> 指定git.exe存放目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Aq6QS1h0-1640674162273)(.\img\65_IDEA中配置Git.png)]

  1. 点击Test测试

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LIQjhwn6-1640674162273)(.\img\66_IDEA中配置Git.png)]

6.2创建本地仓库

  1. VCS->Import into Version Control->Create Git Repository

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-czaGuvYZ-1640674162274)(.\img\67_创建本地仓库.png)]

  2. 选择工程所在的目录,这样就创建好本地仓库了

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o85bmU9p-1640674162274)(.\img\68_创建本地仓库.png)]

  3. 点击git后边的对勾,将当前项目代码提交到本地仓库

    注意: 项目中的配置文件不需要提交到本地仓库中,提交时,忽略掉即可

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IdDGEDAc-1640674162275)(.\img\69_创建本地仓库.png)]

6.3版本切换

  • 方式一: 控制台Version Control->Log->Reset Current Branch…->Reset

    这种切换的特点是会抛弃原来的提交记录

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1ykJtk3V-1640674162275)(.\img\70_版本切换.png)]

  • 方式二:控制台Version Control->Log->Revert Commit->Merge->处理代码->commit

    这种切换的特点是会当成一个新的提交记录,之前的提交记录也都保留

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EfByFYF9-1640674162276)(.\img\71_版本切换.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BrsbZE8O-1640674162276)(.\img\72_版本切换.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jGyk4Flq-1640674162277)(.\img\73_版本切换.png)]

6.4分支管理

  • 创建分支

    VCS->Git->Branches->New Branch->给分支起名字->ok

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v8rMSPsD-1640674162277)(.\img\74_创建分支.png)]

  • 切换分支

    idea右下角Git->选择要切换的分支->checkout

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A7YiSWKS-1640674162278)(.\img\75_切换分支.png)]

  • 合并分支

    VCS->Git->Merge changes->选择要合并的分支->merge

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RgfGP4qw-1640674162278)(.\img\76_合并分支.png)]

    处理分支中的代码

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oStwgRa3-1640674162279)(.\img\77_合并分支.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lfR66vBH-1640674162280)(.\img\78_合并分支.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FUCsdf5e-1640674162280)(.\img\79_合并分支.png)]

  • 删除分支

    idea右下角->选中要删除的分支->Delete

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DA9mdXay-1640674162281)(.\img\80_删除分支.png)]

6.5本地仓库推送到远程仓库

  1. VCS->Git->Push->点击master Define remote

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FYnt9stA-1640674162281)(.\img\81_本地仓库推送到远程仓库.png)]

  2. 将远程仓库的路径复制过来->Push

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MyNwLI7s-1640674162282)(.\img\82_本地仓库推送到远程仓库.png)]

6.6远程仓库克隆到本地仓库

File->Close Project->Checkout from Version Control->Git->指定远程仓库的路径->指定本地存放的路径->clone

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-upjoHaYi-1640674162282)(.\img\83_远程仓库克隆到本地仓库.png)]

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Eternity_GQM

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

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

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

打赏作者

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

抵扣说明:

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

余额充值