第五章_Git(1)_Git教程

一、Git和SVN对比

  • SVN:VN是集中式版本控制系统,版本库是集中放在中央服务器的,而开发人员工作的时候,用的都是自己的电脑,所以首先要从中央服务器下载最新的版本,然后开发,开发完后,需要把自己开发的代码提交到中央服务器
  • SVN存在的问题
    • 服务器单点故障,将会导致所有人员无法工作
    • 而服务器硬盘损坏,这意味着,你可能失去了该项目的所有历史记录,这是毁灭性的

在这里插入图片描述

  • Git:Git是在2005年,Linux系统的创建者Linus Torvalds,为了帮助全球的开发者,维护Linux系统内核的开发,而开发了自己的开源分布式版本控制工具,分为两种类型的仓库:本地仓库和远程仓库
  • Git的优点:每一个客户端都保存了完整的历史记录
    • 服务器的故障,都可以通过客户端的记录得以恢复(这个是SVN的痛点)

二、Git的下载和安装

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

在这里插入图片描述

  • Git安装目录:根据自己需求选择目录,剩下的都默认即可,一路Next直到Finsh即可

在这里插入图片描述

  • 验证Git是否安装成功:任意文件夹右键查看有出现以下2个选项说明安装成功了
    • Git GUI Here:Git提供的图形化操作工具
    • Git Bash Here:Git提供的命令行操作工具

在这里插入图片描述

  • 查看Git安装版本:使用命令行命令查看git --version

在这里插入图片描述

三、TortoiseGit的安装

  • TortoiseGit-2.9.0.0-64bit.msi:百度搜索下载
  • TortoiseGit-LanguagePack-2.9.0.0-64bit-zh_CN.msi:汉化工具,百度搜索下载
  • 安装路径:修改好自己的安装路径后一路Next到Finish
    在这里插入图片描述

1、TortoiseGit安装

  • 语言选择

在这里插入图片描述

  • bin目录设置

在这里插入图片描述

  • 用户名和邮箱:这个按自己设置

在这里插入图片描述
在这里插入图片描述

  • 验证TortoiseGit是否安装成功:任意文件夹右键,如果出现以下3个选项说明安装成功

在这里插入图片描述

2、TortoiseGit汉化的安装

  • 运行TortoiseGit-LanguagePack-2.9.0.0-64bit-zh_CN.msi:下一步 -> 完成
  • 汉化设置
    • 右键 -> TortoiseGit -> Setting -> Language -> 中文简体

在这里插入图片描述

四、Git操作入门

  • Git基本工作流程

在这里插入图片描述

  • Git常用命令

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

1、Git命令行操作步骤演示

  • 1.创建工作目录、初始化本地 git 仓库:进入到工作目录,右键Git Bash Here,输入git init,会发现创建了隐藏文件夹.git
    在这里插入图片描述
  • 2.新建一个 test.txt 文件(暂不执行添加操作)
  • 3.使用status命令,查看状态:如果使用status命令发现有红色的文件,说明是还没有进行add操作的文件
    在这里插入图片描述
  • 4.使用add命令添加,并查看状态:add只是把文件提交到了暂存区,还未提交到本地仓库
    在这里插入图片描述
  • 5.使用commit命令,提交到本地历史仓库
    在这里插入图片描述
  • 6.使用log命令,查看日志
    在这里插入图片描述
  • 7.修改test.txt文件内容:内容修改后会发现文件前面多了红色的叹号
    在这里插入图片描述
  • 8.添加并提交,查看日志
    在这里插入图片描述

2、TortoiseGit操作步骤演示

  • 1.创建工作目录、初始化本地git仓库
    在这里插入图片描述
    在这里插入图片描述
  • 2.新建一个 test.txt 文件(暂不执行添加操作)
  • 3.选中文件右键,选择TortoiseGit,之后选择添加
    在这里插入图片描述
  • 4.空白处右键,Git提交,提交到本地历史仓库
    在这里插入图片描述
  • 5.空白处右键,TortoiseGit,显示日志,可以产看日志信息
    在这里插入图片描述

五、版本管理

1、历史版本切换

  • git reflog:可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录的操作)更精简
    在这里插入图片描述
  • git reset --hard 版本唯一索引值:将代码切换到对应唯一索引值的历史版本
    在这里插入图片描述

2、分支管理介绍

  • 分支概念
    • 由每次提交的代码,串成的一条时间线
    • 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线
  • 分支的使用场景
    • a)周期较长的模块开发:假设你准备开发一个新功能,但是需要一个月才能完成;第一周写了20%的代码,突然发现原来已经写好的功能出现了一个严重的Bug;那现在就需要放下手中的新功能,去修复Bug;但这20%的代码不能舍弃,并且也担心丢失,这就需要开启一个新的版本控制
    • b)尝试性的模块开发:业务人员给我们提出了一个需求,经过我们的思考和分析,该需求应该可以使用技术手段进行实现;但是我们还不敢确定,我们就可以去创建一个分支基于分支进行尝试性开发
  • 分支工作流程
    在这里插入图片描述

3、创建分支和切换分支

  • 创建命令git branch 分支名
  • 切换命令git checkout 分支名
  • 查看当前分支下的文件ls

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、合并分支和删除分支

  • 合并分支git merge 分支名
  • 删除分支git branch -d 分支名
    在这里插入图片描述
    在这里插入图片描述

六、远程仓库介绍

  • 远程仓库工作流程
    在这里插入图片描述
  • 远程仓库托管平台
    • GitHub
      • 域名:https://github.com
      • 介绍:GitHub是全球最大的开源项目托管平台,俗称大型程序员社区化交友网站
    • 码云
      • 域名:https://gitee.com
      • 介绍:码云是全国最大的开源项目托管平台,良心平台,速度快,提供免费私有库
  • 码云仓库创建

在这里插入图片描述
在这里插入图片描述

七、远程仓库创建SSH公钥

  • 生成SSH公钥步骤
    • 设置Git账户
    • 生成SSH公钥
    • 设置账户公钥
    • 公钥测试
  • 1.设置Git账户
    • git config user.name(查看git账户)
    • git config user.email(查看git邮箱)
    • git config --global user.name “账户名”(设置全局账户名)
    • git config --global user.email “邮箱”(设置全局邮箱)
    • cd ~/.ssh(查看是否生成过SSH公钥)

在这里插入图片描述

  • 2.生成SSH公钥
    • 生成命令: ssh-keygen -t rsa -C “邮箱” ( 注意:这里需要敲3次回车)
    • 查看命令: cat ~/.ssh/id_rsa.pub

在这里插入图片描述

  • 3.设置账户公钥
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 4.公钥测试
    • 命令: ssh -T git@gitee.com
      在这里插入图片描述

八、推送到远程仓库

  • 步骤:1.为远程仓库的URL(网址),自定义仓库名称;2.推送
  • 命令
    • git remote add 远程名称 远程仓库URL
    • git push -u 仓库名称 分支名

在这里插入图片描述
在这里插入图片描述

九、克隆拉取远程仓库

克隆主要针对的情况是:先有远程仓库,本地仓库为空的情况(例如新员工刚入职)

  • 1.将远程仓库的代码,克隆到本地仓库:克隆命令:git clone 仓库地址

在这里插入图片描述

  • 2.创建新文件,添加并提交到本地仓库

  • 3.推送至远程仓库
    在这里插入图片描述
    在这里插入图片描述

  • 4.返回到之前的my_project目录

    • 当前还是没有“test3.txt”的文件的
    • 项目拉取更新:git pull 远程仓库名 分支名

在这里插入图片描述

十、代码冲突

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

在这里插入图片描述
在这里插入图片描述

  • 代码冲突解决方案
    • 如果发现代码冲突,先执行pull操作,拉取最新的代码
    • 修改冲突行,保存,即可解决冲突
    • 重新add冲突文件并commit到本地仓库,重新push到远程
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

无休止符

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

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

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

打赏作者

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

抵扣说明:

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

余额充值