Git 基本使用

# Git 基本使用

# Git 简介

# Git 官网

官网地址:https://git-scm.com/ (opens new window)

# Git 的优势

  • 大部分操作在本地完成,不需要联网
  • 完整性保证
  • 尽可能添加数据而不是删除或修改数据
  • 分支操作非常快捷流畅
  • 与Linux 命令全面兼容

# Git 安装

傻瓜式安装:https://git-scm.com/downloads (opens new window)

# Git 结构

image.png

# Git 和代码托管中心

代码托管中心的任务:维护远程库

  • 局域网环境下
  1. GitLab 服务器
  • 外网环境下
  1. GitHub
  2. 码云Gitee

# 本地库和远程库

# 团队内部协作

在这里插入图片描述

# 跨团队协作

在这里插入图片描述

# 2. Git 命令行操作

# 2.1本地库初始化

# 2.1.1 命令

git init

# 2.1.2 效果

目录下创建一个 .git 文件夹

在这里插入图片描述

在这里插入图片描述

# 2.1.3 注意

.git 目录中存放的是本地库相关的子目录和文件,不要删除,也不要胡乱修改。

# 2.2 设置签名

# 2.2.1 形式

  • 用户名:tom
  • Email 地址:goodMorning@atguigu.com

# 2.2.2 作用

区分不同开发人员的身份

# 2.2.3 辨析

这里设置的签名和登录远程库(代码托管中心)的账号、密码没有任何关系。

# 2.2.4 命令

# 2.2.4.1 项目级别/仓库级别

仅在当前本地库范围内有效

git config user.name yk
git config user.email yk@yk.com

信息保存位置:./.git/config 文件 在这里插入图片描述

# 2.2.4.2 系统用户级别 (一般用这个就行了)

登录当前操作系统的用户范围

git config --global user.name yk
git config --global user.email yk@yk.com

信息保存位置:~/.gitconfig 文件

在这里插入图片描述

# 2.2.4.3 级别优先级
  • 就近原则:项目级别优先于系统用户级别,二者都有时采用项目级别的签名
  • 如果只有系统用户级别的签名,就以系统用户级别的签名为准
  • 二者都没有不允许

# 添加配置

git config [--local | --global | --system] user.name 'Your name'
git config [--local | --global | --system] user.email 'Your email'

# 查看配置

git config --list [--local | --global | --system]
  • 区别

local:区域为本仓库 global: 当前用户的所有仓库 system: 本系统的所有用户

# 清除设置

$ git config --unset --local user.name
$ git config --unset --global user.name
$ git config --unset --system user.name

# 2.3基本操作(重点)

# 2.3.1 状态查看

git status

查看工作区、暂存区状态

# 2.3.2 添加

git add [file name]

将工作区的“新建/修改”添加到暂存区

# 2.3.3 提交

git commit -m "commit message" [file name]

将暂存区的内容提交到本地库

# 2.3.4 查看历史记录

git log

在这里插入图片描述

多屏显示控制方式:

  • 空格向下翻页
  • b 向上翻页
  • q 退出
git log --pretty=oneline

在这里插入图片描述

git log --oneline

在这里插入图片描述

git reflog

在这里插入图片描述

HEAD@{移动到当前版本需要多少步}

# 2.3.5 前进后退

# 基于索引值操作[推荐]
git reset --hard [局部索引值]
git reset --hard a6ace91
# 使用^符号:只能后退
git reset --hard HEAD^
  • 注:一个^表示后退一步,n 个表示后退n 步
# 使用~符号:只能后退
git reset --hard HEAD~n
  • 注:表示后退n 步

# 2.3.6 reset 命令的三个参数对比

  • --soft 参数

仅仅在本地库移动HEAD 指针

在这里插入图片描述

  • --mixed 参数

在本地库移动HEAD 指针

重置暂存区 在这里插入图片描述

  • --hard 参数

在本地库移动HEAD 指针

重置暂存区

重置工作区

# 2.3.7 删除文件并找回

  • 前提:删除前,文件存在时的状态提交到了本地库。
  • 操作:git reset --hard [指针位置]
  • 删除操作已经提交到本地库:指针位置指向历史记录
  • 删除操作尚未提交到本地库:指针位置使用HEAD

# 2.3.8 比较文件差异

  • git diff [文件名] 将工作区中的文件和暂存区进行比较

  • git diff [本地库中历史版本] [文件名] 将工作区中的文件和本地库历史记录比较

  • 不带文件名比较多个文件

# 2.4分支管理

# 2.4.1 什么是分支?

在版本控制过程中,使用多条线同时推进多个任务

在这里插入图片描述

# 2.4.2 分支的好处?

  • 同时并行推进多个功能开发,提高开发效率
  • 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。

# 2.4.3 分支操作

# 创建分支
git branch [分支名]
# 查看分支
git branch -v
# 切换分支
git checkout [分支名]
# 合并分支
  • 第一步:切换到接受修改的分支(被合并,增加新内容)上
git checkout [被合并分支名]
  • 第二步:执行 merge 命令
git merge [有新内容分支名]
# 解决冲突
  • 冲突的表现

在这里插入图片描述

  • 冲突的解决
  1. 第一步:编辑文件,删除特殊符号
  2. 第二步:把文件修改到满意的程度,保存退出
  3. 第三步:git add [文件名]
  4. 第四步:git commit -m "日志信息"
  • 注意:此时commit 一定不能带具体文件名

# 3 GitHub

# 3.1账号信息

官网注册账户

# 3.2创建远程库

官网一键创建

# 3.3创建远程库地址别名

在这里插入图片描述

git remote -v
git remote add origin https://github.com/yk2012/Promise_demo.git   

在这里插入图片描述

取回+推送

# 3.4 推送

git push origin master 

然后登录GitHub账号即可

在这里插入图片描述

在这里插入图片描述

# 3.5 克隆

# 命令

git origin [远程地址]

# 效果

  1. 完整的把远程库下载到本地
  2. 创建origin 远程地址别名
  3. 初始化本地库
上次更新: 2022/6/7 22:18:44