Git 学习笔记

Git学习笔记

  • 1 Git 简介
  • 2 Git 安装与配置
  • 3 Git 操作入门
    • 3.1 Git 基本工作流程
    • 3.2 Git 命令行操作
    • 3.3 Git 图形化工具操作
  • 4 Git 版本管理
  • 5 Git远程仓库
    • 5.1 远程仓库工作流程
    • 5.2 远程仓库平台介绍
    • 5.3 先有本地项目,远程为空
    • 5.4 先有远程仓库,本地为空
    • 5.5 代码冲突

1 Git 简介

Git是一种代码版本控制系统,为什么要使用代码版本控制系统呢?

因为代码版本控制系统能够很好地解决开发中要面临的问题

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

SVN 与 Git 的对比

  • SVN :集中式版本控制系统,版本库是集中放在中央服务器的,而开发人员工作的时候,用的都是自己的电脑,所以首先要从中央服务器下载最新的版本,然后开发,开发完后,需要把自己开发的代码提交到中央服务器。
    • 服务器单点故障,将会导致所有人员无法工作
    • 而服务器硬盘损坏,这意味着,你可能失去了该项目的所有历史记录,这是毁灭性的
  • Git :每一个客户端都保存了完整的历史记录,服务器的故障,都可以通过客户端的记录得以恢复Git 学习笔记_第1张图片

2 Git 安装与配置

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

指定安装目录后,一路next无脑安装

安装成功后,鼠标点击右键
Git 学习笔记_第2张图片

点击 Git Bash Here 输入git --version 可以查看版本信息

Git 学习笔记_第3张图片

虽然Git 自带了图像化工具,但是功能不够强大,这里安装 TortoiseGit 图像化功具

安装过程较为简单,但是要注意的是其中需要指定 Git 的bin目录,一般系统会自动识别。
安装完成后,鼠标点击右键会多出一下三项

Git 学习笔记_第4张图片

3 Git 操作入门

3.1 Git 基本工作流程

Git 学习笔记_第5张图片

3.2 Git 命令行操作

Git 学习笔记_第6张图片

下面通过一个案例进行演示

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

初始化完成后,会出现一个名为 .git 的隐藏文件

Git 学习笔记_第7张图片

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

(3)使用 status 命令,查看状态

Git 学习笔记_第8张图片

注意:test.txt 为红色表示未执行添加操作

(4) 使用 add 命令添加(到暂存区),并查看状态

Git 学习笔记_第9张图片

此时 test.txt 文件会发生如下变化,代表已经执行添加操作(若用户电脑首次安装TortoiseGit 图像化功具,需要重启电脑)

在这里插入图片描述

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

命令引号内为本次提交信息

在这里插入图片描述
Git 学习笔记_第10张图片
(6)使用 log 命令,查看日志

Git 学习笔记_第11张图片

(7) 修改 test.txt 文件

Git 学习笔记_第12张图片

(8) 添加并提交,查看日志

Git 学习笔记_第13张图片

3.3 Git 图形化工具操作

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

Git 学习笔记_第14张图片

(2) 创建 test.txt 文件,并将其添加到暂存区,再提交至本地仓库

Git 学习笔记_第15张图片
Git 学习笔记_第16张图片
(3) 修改文件后,不用进行添加操作,直接第二次提交

(4)查看日志

Git 学习笔记_第17张图片

Git 学习笔记_第18张图片

4 Git 版本管理

(1)历史版本切换

git reflog :可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录的操作)

git reset --hard 版本唯一索引值

(2)分支管理介绍

分支

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

分支的使用场景

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

分支工作流程

  • Master: 指向提交的代码版本
  • Header: 指向当前所使用的的分支

Git 学习笔记_第19张图片
(3)分支管理操作

  • 创建分支:git branch 分支名
  • 查看分支:git branch
  • 切换分支:git checkout 分支名
  • 新分支添加文件后查看文件命令:ls

Master分支里没有新分支添加的文件,但是新分支里有Master分支里的文件

  • 合并分支:git merge 分支名
  • 删除分支:git branch -d 分支名
  • 查看分支列表:git branch

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

5 Git远程仓库

5.1 远程仓库工作流程

Git 学习笔记_第20张图片

注意:克隆是包括所有的历史版本

5.2 远程仓库平台介绍

  • GitHub

    • 域名:https://github.com
    • 介绍:GitHub是全球最大的开源项目托管平台,俗称大型程序员社区化交友网站,各类好玩有趣的开源项目,只有想不到,没有找不到。
  • 码云

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

5.3 先有本地项目,远程为空

  1. 创建本地仓库
  2. 创建或修改文件,添加(add)文件到暂存区,提交(commit)到本地仓库
  3. 创建远程仓库
  4. 推送到远程仓库

注意:在推送代码之前需要先配置SSH公钥,否则会报错

(1)设置Git账户:

  • 查看git账户:git config user.name
  • 查看git邮箱:git config user.email
  • 设置全局账户名: git config --global user.name "账户名"
  • 设置全局邮箱:git config --global user.email "邮箱"

(2)生成SSH公钥

  • 查看是否生成过SSH公钥:cd ~/.ssh
  • 生成命令: ssh-keygen –t rsa –C "邮箱" ( 注意:这里需要敲3次回车)
  • 查看密钥:cat ~/.ssh/id_rsa.pub

(3) 设置账户公钥

  • 复制步骤 ⑦ 的公钥,gitee主页点击“设置”——>“SSH公钥”,粘贴

(4) 公钥测试:

本地项目推送至远程仓库

(1) 为远程仓库的 URL 自定义仓库名称

  • git remote add 远程仓库名称 远程仓库URL

给远程仓库取一个简单名称来代替一大长串的 URL

(2) 推送至远程仓库

  • git push -u 远程仓库名称 分支名称

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

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

5.5 代码冲突

产生原因:

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

如何解决冲突:

cat 文件名

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

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

你可能感兴趣的:(Git,git,学习,github)