Git入门与使用

一、Git概述

1.1、git介绍

  • 源代码管理
  • Git是目前世界上最先进的分布式版本控制系统
  • 分布式版本控制工具

Git是分布式版本控制系统(Distributed Version Control System,简称 DVCS

  • 仓库

    • 本地仓库:开发人员自己电脑的git仓库
    • 远程仓库:远程服务器上的git仓库
      • 团队内协作
      • 跨团队协作
  • 操作

    • clone:克隆,将远程仓库复制到本地
    • push:推送,将本地仓库代码上传到远程仓库
    • pull:拉取,将远程仓库代码下载到本地仓库
    • commit:提交,就是将本地工作区代码上传到本地仓库中
  • 优点

    • 容灾能力强
    • 本地版本管理
    • 异地协作
    • 灵活分支

1.2、作用

在这里插入图片描述

git工作机制

在这里插入图片描述

二、安装与搭建

2.1、安装

下载地址:
https://git-scm.com/download

  • 勾选git bash

在这里插入图片描述

  • 选择git命令的执行环境

在这里插入图片描述

  • 选择专业的git窗口

在这里插入图片描述

2.2、设置全局用户签名

Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识——即:用户签名
说明:签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。
命令:

git config --global user.name "用户名"
git config --global user.email "用户邮箱"
  • –global 表示全局属性,所有的git项目都会共用属性
  • 查看配置信息:git config --list
  • 在当前登录的系统用户路径下,生成~/.gitconfig隐含文件,里面可以看到刚刚设置的信息。如果不用命令设置,也可以直接打开文件进行设置。

三、相关概念

3.1、工作区、版本库、暂存区

  • 工作区:就是你电脑本地硬盘目录,一般是项目当前目录
  • 版本库:工作区有个隐藏目录.git,它就是Git的本地版本库
  • 暂存区:一般存放在"git目录"下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)
  • 分支:Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD
    在这里插入图片描述

3.2、提交Git版本库

  1. “git add” 把文件纳入git管理,实际是把本地文件修改添加到暂存区
  2. “git commit” 提交更改,实际上是把暂存区的所有内容提交到当前分支
    因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以commit就是往master分支上提交更改。

可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。一旦提交完后,如果你又没有对工作区做任何修改,那么工作区就是“干净”的。即:nothing to commit (working directory clean)。

四、Git本地库实战

4.1、常用命令

命令名称作用
git init初始化本地库
git config – global user.name设置用户名
git config --global user.email设置邮箱
git status查看本地库状态(master表示主分支,untracked表示未跟踪)
git add 文件名添加到暂存区
git commit -m ‘日志信息’ 文件名提交到本地库
git reflog查看历史记录
git reset --hard 版本号版本穿梭

说明:

  • Git工作目录下的文件状态信息:
    • Untracked 未跟踪(未被纳入版本控制)
    • Tracked 已跟踪(被纳入版本控制)
    • Unmodified 未修改状态
    • Modified 已修改状态
    • Staged 已暂存状态
  • 这些文件的状态会随着我们执行Git的命令发生变化
    • 红色表示新建文件或者新修改的文件,都在工作区.
    • 绿色表示文件在暂存区
    • 新建的文件在工作区,需要添加到暂存区并提交到仓库区
  • 也可以使用git status –s 使输出信息更加简洁
    • ?? : 表示未跟踪状态

新建文件

  • 新建文件
    • touch a.txt
    • vim a.txt
  • 查看文件状态
    • git status
      • On branch master :表示主分支
      • Untracked files:表示未跟踪状态
  • 添加到暂存区
    • git add
      • 只是增加到栈空间(index文件)中,还没有添加到本地库中。初始化时没有这个index文件。这还是一个新文件,需要将栈空间文件提交到本地仓库。
    • git add .
      • 添加项目中所有文件
  • 撤销暂存区文件
    • git reset <文件名称>
  • 将暂存区提交到本地库
    • git commit
      • 执行命令时需要填写提交日志,进入编辑模式
    • git commit -m “注释内容”
      • 直接用-m参数指定日志内容,推荐
    • git commit -am “注释内容”
      • 添加和提交合并命令
  • 查看日志
    • git log
    • git log a.txt
      • 查看文件日志,q退出
    • git log -pretty=oneline
      • 日志一行显示
    • git reflog
      • 查看历史操作
  • 回退到历史版本
    • git reset --hard HEAD^
      • 一次回退一个版本,一个……代表一个版本数量
    • git reset --hard HEAD~n
      • 回退n次操作
  • 版本穿梭
    • git reflog a.txt
      • 查看历史操作
    • git reset --hard 版本号
      • 回到最新版本
  • 撤销
    • 未add,未commit
      • git check --a.txt
        • 撤销修改
    • 已add,为commit
      • git add a.txt
      • git reset
  • 删除
    • rm java.jpg

4.2、初始化版本库

要使用Git对我们的代码进行版本控制,首先需要获得Git仓库,获取Git仓库通常有两种方式:

  • 在本地初始化一个Git仓库
  • 从远程仓库克隆

注意:git init后生产.git文件,当前的 .git 是一个隐藏文件夹,需要在电脑上面设置隐藏文件夹显示设置,否则,看不到这个.git目录。

4.3、分支

好处:同时并行推进多个功能开发,提高开发效率。
各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
在这里插入图片描述
分支操作:

git branch 分支名		创建分支
git branch -v			查看分支
git checkout 分支名		切换分支
git merge 分支名			把指定的分支合并到当前分支上
git branch -d 分支名 	删除分支

五、工作流

简单的工作流

在这里插入图片描述

复杂的工作流

在这里插入图片描述
分支种类:

  • 主干分支 master
    • 主要负责管理正在运行的生产环境代码。永远保持与正在运行的生产环境完全一致。
  • 开发分支 develop
    • 主要负责管理正在开发过程中的代码。一般情况下应该是最新的代码。
  • bug修理分支 hotfix
    • 要负责管理生产环境下出现的紧急修复的代码。 从主干分支分出,修理完毕并测试上线后,并回主干分支。并回后,视情况可以删除该分支。
  • 发布版本分支 release
    • 较大的版本上线前,会从开发分支中分出发布版本分支,进行最后阶段的集成测试。该版本上线后,会合并到主干分支。生产环境运行一段阶段较稳定后可以视情况删除。
  • 功能分支 ** **
    • 为了不影响较短周期的开发工作,一般把中长期开发模块,会从开发分支中独立出来。 开发完成后会合并到开发分支。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

sklit88

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

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

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

打赏作者

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

抵扣说明:

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

余额充值