IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> git的基本使用[本地库操作] -> 正文阅读

[开发工具]git的基本使用[本地库操作]

git的基本使用

写在前面的话

git安装不在本节内容范围内 这里只对git的基本操作展开探索

git结构

git结构分为三个 分别是工作区,暂存区和本地库
工作区 是我们用来存放源码的目录
暂存区 是临时存放写好代码的地方 方便撤回或提交到本地库
本地库 是用来存放代码历史版本的目录

git & github

git 是版本控制管理工具 用来对本地代码版本进行管理
github 是用来存放历史版本的远程仓库(也叫做代码托管中心)
另外 代码托管中心除了github外 境内还有gitee,局域网内可以使用gitlab作为代码托管中心

开始正文

git命令行操作

初始化本地库

指令 git init
效果 - 会在本地库的目录种创建.git目录 该目录是用来存放git对当前本地库描述及配置文件的
在这里插入图片描述

设置本地库签名

为什么需要本地库签名
是用来区分代码是由哪个用户来提交的 (区分用户之间的身份)
指令
git config [--global] user.name userName
git config [--global] user.email userEmailAddress
解释:不添加--global时表示项目级别/仓库级别范围,添加了--global时表示当前操作系统用户级别范围
项目级别或仓库级别范围 只是针对当前的本地库有效
项目级别范围设置的签名会被保存在当前本地库.git/config文件种
操作系统用户级别范围是针对当前登录的用户范围内有效
系统用户级别签名信息会被保存在根目录下.gitconfig文件中
优先级问题:
项目级别和系统级别同时存在 采用项目级别
项目级别不存在时会采用系统级别
两者都不存在 不允许提交到本地库(无法提交本地库就更不能推送到远程库)
注意 这里设置的本地库签名与登录到远程库(代码托管中心)的账号和密码没有任何关系

项目级别

在这里插入图片描述

系统用户级别

在这里插入图片描述

添加到暂存区

将工作区中的代码添加到暂存区
指令
git add + fileName // 单个文件添加到暂存区
git add . // 批量添加到暂存区

提交到本地库

将暂存区中的内容添加到本地库中
指令
git commit -m “备注信息” + fileName // 单个文件提交到本地库
git commit -m “备注信息” -a // 批量添加

查看本地库当前状态

指令
git status
本地库中没有文件时的状态
在这里插入图片描述
本地库中存在文件 但未提交到暂存区时状态
在这里插入图片描述

执行了git add后的状态

将工作区中内容添加到暂存区后状态
在这里插入图片描述

执行git commit后的状态

将暂存区中内容添加到本地库后状态
在这里插入图片描述

修改了工作区中内容后状态

修改了工作区中文件内容 但未提交到暂存区时的状态
在这里插入图片描述

修改工作区中内容并执行git add操作后的状态

将工作区中的内容添加到暂存区后
在这里插入图片描述

修改工作区中内容从暂存区提交到本地库后的状态

执行了git commit后状态
在这里插入图片描述

查看历史信息

显示全部内容 git log
单行显示 - index全部显示 git log --pretty=oneline
单行显示 - index部分显示 git log --oneline
带有指针移动步数 git reflog

显示全部历史信息

多屏显示时使用git log | less
空格向下翻页
b向上翻页
q 退出
在这里插入图片描述

单行显示 - index全部显示在这里插入图片描述
单行显示 - index部分显示

在这里插入图片描述

带有指针移动步数日志信息

在这里插入图片描述

版本前进或后退

基于索引值 [推荐]

指令 git reset --hard + 索引值
先执行git reflog 查看需要回退或前进的版本的部分索引值 然后通过–hard+索引进行移动版本指向的指针
在这里插入图片描述

基于^符号 [只能后退 不能前进]

git reset --hard HEAD^ 表示回退一个版本
git reset --hard HEAD^^ 表示回退两个版本
一个^符号表示后退一步 想要后退多步就要写多个^符号 后退后看不到之前的版本了
在这里插入图片描述

基于~符号的 [只能后退不能前进]

git reset --hard HEAD~10 表示后退10步
git reset --hard HEAD~5 表示后退5步
注意 ~符号加数字表示往后退的步数,不能向前
在这里插入图片描述

前进后退中使用到reset命令参数对比

通过git help reset查看reset命令使用
reset提供了三个参数 分别是solf,mixed和hard
solf 仅在本地库中移动HEAD指针
mixed 在本地库中移动HEAD指针同时重置暂存区
hard 在本地库中移动HEAD指针同时重置暂存区和工作区
solf 仅在本地库中移动HEAD指针 移动后暂存区会出现未提交本地库提示
在这里插入图片描述
mixed 在本地库中移动HEAD指针同时重置暂存区后会出现未提交暂存区提示
在这里插入图片描述
hard 将本地库,暂存区,工作区同时移动 因此不会出现未提交暂存区或本地库提示
在这里插入图片描述

文件删除后找回

前提 文件删除前必须提交到本地库
本地库中的文件删除后 可以通过回退历史版本方式 回退到删除之前的版本就可以找回被删除文件了 参照上边的版本前进或回退就好了,这里不做过多的赘述

暂存区中的文件删除找回

文件已经提交到本地库中,但工作区中删除并提交到暂存区未提交到本地库 此时通过如下指令找回
git reset --hard HEAD // 本地库中最新版本 暂存区未提交到本地库中时HEAD指针肯定是在最新版本上的, 如果删除操作已提交到了本地库 使用版本后退方式找回

文件差异比较

指令 git diff [文件名]
将工作区中的文件和暂存区中的文件进行比较
在这里插入图片描述
git diff [本地库中的历史版本][ 文件名]
将工作区中的文件和本地库中历史记录文件进行比较在这里插入图片描述
git diff 如果不带文件名 则是比较多个文件
在这里插入图片描述

分支管理

什么是分支?
在版本控制过程中 使用多条线同时推进多个任务
通常情况下是在分支中开发应用 测试通过后在合并到master分支中
使用分支的好处
可以同时并行推进多个功能的开发 提高开发效率
各个分支在开发过程中如果某个分支开发失败 不会对其他分支产生影响,失败的分支删除或重新开始即可
分支的操作

查看当前项目存在哪些分支

git branch

查看当前所在分支

git branch -v

创建分支

git branch +分支名称

切换分支

git checkout +分支名称
在这里插入图片描述

合并分支

git merge +需要被合并的分支名称
在合并分支之前子分支组要提交到本地库(规范)
然后切换到需要合并到的分支上(例如合并到master 需要切换到master分支) 切换分支使用git checkout+分支名
最后执行git merge+要被合并的分支名称 指令
例如
将hot_fix分支合并到master分支
1 hot_fix分支需要先提交到本地库 git add,git commit
2 切换到master分支 git checkout master
3 执行合并指令 git merge hot_fix

分支冲突解决

冲突产生原因
两个或多个分支修改了同一个文件 而在非最新内容情况下进行修改的,那么此时如果对分支进行合并则会出现冲突 如下图
在这里插入图片描述
另外合并失败会显示合并状态 而不是某个分支
在这里插入图片描述
解决方案
手动将出现冲突的内容进行合并 然后删除标记分支的特殊符号
例如<<<<<<HEAD 或====== 然后使用git add 标记冲突已解决 在进行提交到本地库 此时一切恢复正常
在这里插入图片描述
解决完冲突提交本地库时 git commit 不可以带有文件名
如果是批量可以 git commit -m “xxx” -a
单个文件 git commit -m “xxx” 就可以了

在这里插入图片描述

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-09-30 01:11:02  更:2022-09-30 01:11:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 20:47:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码