git管理工具学习(二)——git图谱git常用命令

git操作目录

    • Git的安装和图谱
      • 版本控制工具介绍
      • git图谱详解
    • Git基本配置
      • git 的最小配置
      • 查看Git的文件类型以及文件内容
    • Git的本地仓库基本使用
      • 创建一个git仓库
      • 创建并提交一个文件
      • 给文件重命名的简便方法
      • 工作区直接提交
      • 从缓存区清除一个文件
      • 通过git log 查看历史变化
    • 工作区,暂存区,HEAD文件管理
      • 清空暂存,回退
      • 暂存区恢复成HEAD
      • 工作区恢复为暂存区
      • 工作区的指定文件恢复成暂存区
      • 取消暂存区文件修改
    • 本地仓库的分支管理
      • 创建新的分支
      • 删除分支
      • 查看分支&切换分支
      • 可以直接checkout 某个commit
    • 查看文件的不同
      • 查看不同
    • 变基
    • 加急任务&暂存当前任务
      • 取消最近几次提交
    • 与远程仓库多人协作
      • 从远程仓库备份
      • 先拉后推

Git的安装和图谱

版本控制工具介绍

VSC(version control system):版本控制系统

  • 集中式——客户端必须时刻和服务器相连

    SVM

  • 分布式——服务端和客户端都有完整的版本库
    - GitHub——全球最大

    • GitLab——公司常用;免费、提供了持续集成-CI;如阿里云、点评Git,Linus开发
    • 基于Git的开源社区——背景:DevOps时代,开发运维
  • git官方文档地址

  • git下载安装地址

git图谱详解

问题:这两天在公式开发中开始用git进行开发了,但是一打开IDEA的客户端。却看到了复杂的git图谱。各种颜色的分支、各种颜色的线。看到了这些纵横交错的线,只感觉蒙蒙的。

  • 简书:带你一步一步看懂Git图谱
    好在在这个开源的时代,很容易能看到答案:
1. 新的分支`commit`的差异,产生了新的支线
2. 同一分支,不同仓库`commit`的差异,产生了新的分支
3. 同一分支,不同仓库的`merge`,合并了支线
4. 不同分支的`merge`合并了支线

Git基本配置

git 的最小配置

## 添加name和email配置
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的文件类型以及文件内容

git cat-file  
-t 看类型
-p 看内容

Git的本地仓库基本使用

创建一个git仓库

## 在已有项目文件夹里创建git仓库
git init
## 新建一个名为[Project Name]的git仓库
git init [Project Name]

创建并提交一个文件

## 添加文件到该git项目中
## 添加要commit的文件到
git add [File Name]
### PS:添加当前路径下的所有文件—— git add .
## 附带信息进行commit操作
git commit -m'Some Message'
### 查看git状态,如:哪些文件待commit,哪些未被跟踪
git status
### 查看git记录,如:commit的记录
git log

给文件重命名的简便方法

## 重命名
mv readme readme.md
## 添加新文件readme.md
git add readme.md
## 删除被跟踪的旧文件readme
git rm readme
## 一条命令顶上面三条
git mv readme readme.md
## 提交
git commit -m"rename"

工作区直接提交

git commit -am'msg'

从缓存区清除一个文件

git rm <FILENAME>

通过git log 查看历史变化

## 查看简洁的单行历史
git log --oneline
## 查看最近的4条历史
git log -n4
git log -4 
## 查看所有分支的历史
git log --all
## 查看指定分支(名为BRANCH_NAME)的历史
git log BRANCH_NAME
## 查看图形化的版本历史
git log --graph
## 组合使用:查看所有分支最近4条图形化的单行历史
git log --all -n4 --graph --oneline
## 跳转到网页版的git log帮助文档
git help --web log

工作区,暂存区,HEAD文件管理

清空暂存,回退

## 回退到最新的一次提交,即清空暂存区
git reset --hard

暂存区恢复成HEAD

## 暂存区恢复成HEAD
git reset HEAD

工作区恢复为暂存区

## 恢复所有文件,加参数后只恢复某个文件
git checkout 
git checkout <FILENAME>

工作区的指定文件恢复成暂存区

## 把工作区的某个 file 替换为暂存区
git checkout -- file
## 把工作区变更的所有文件都恢复成和暂存区的一样
git checkout *

取消暂存区文件修改

git reset HEAD [FILENAME]

本地仓库的分支管理

创建新的分支

### 从某个分支创建新的分支
git checkout -b <NEW_BRANCH_NAME> <BASE_BRANCH_NAME/HASH_OF_COMMIT>

删除分支

git branch -d <BRANCH_NAME>## 强制删除分支
git branch -D <BRANCH_NAME>
## 删除远程分支
git push <REMOTE> --delete <BRANCH_NAME>

查看分支&切换分支

## 同时查看本地和远程的分支
git branch -a
## 创建名为new_branch的新分支
git checkout -b  <new_branch> []

可以直接checkout 某个commit

## detached HEAD
git checkout <HASH_OF_COMMIT>
## 1. 如果不想保留,直接切换分支
## 2. 如果想保留,需要创建新分支与其对应
git branch <new_branch> <HASH_OF_COMMIT>

查看文件的不同

查看不同

## 比较两个commit之间的文件差异
git diff <A> <B>
git diff 34976f8 a60a3d5 
git diff HEAD HEAD~ 
git diff HEAD 'HEAD^'
## 比较暂存区和HEAD的区别
git diff --cached
## 比较工作区和暂存区所含文件的差异
git diff
git diff --filename
## 看看不同提交的指定文件的差异
git diff <HASH_OF_COMMIT> <HASH_OF_COMMIT> [-- FILENAME]

变基

## 修改最新的commit的message
git commit --amend 
## 怎么修改老旧commit的message,变基操作要基于父commit
## 要修改最开始的commit hashcommit 为 --root
git rebase -i <HASH_OF_COMMIT>
## 交互式
r,reword [修改message]
s,squash [合并连续的commit],[将不连续的commit调整顺序后也可合并]
## 中断后
git rebase --continue

加急任务&暂存当前任务

## 当前工作区和暂存区的内容迁移到一个额外的栈
git stash
## 先查看stash了哪些内容
git stash list
## 恢复栈顶的保存记录,且记录列表里还保留该记录
git stash apply
## 恢复栈顶的保存记录,并把记录列表里的该记录删除
git stash pop

取消最近几次提交

git reset --hard <HASH_OF_COMMIT>

与远程仓库多人协作

从远程仓库备份

git clone 、 git push
## 本地添加一个远程服务地址
git remote add intel file:///Users/double/Desktop/test_remote/intel.git
## 查看信息
git remote -v

先拉后推

git fetch github
git mergegit pull
## 通过merge的方式进行拉取
git pull --no-rebase

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/20488.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CNVD-2023-12632 泛微e-cology9 sql注入 附poc

目录 漏洞描述影响版本漏洞复现漏洞修复 众亦信安&#xff0c;中意你啊&#xff01; 微信搜索&#xff1a;众亦信安&#xff0c;回复关键字&#xff1a;230317 领批量检测脚本。 声明&#xff1a;文中涉及到的技术和工具&#xff0c;仅供学习使用&#xff0c;禁止从事任何非法…

【Golang】Golang进阶系列教程--Go 语言 context 都能做什么?

文章目录 前言核心是 Context 接口&#xff1a;包含四个方法&#xff1a;遵循规则WithCancelWithDeadlineWithTimeoutWithValue 前言 很多 Go 项目的源码&#xff0c;在读的过程中会发现一个很常见的参数 ctx&#xff0c;而且基本都是作为函数的第一个参数。 为什么要这么写呢…

汽车智能化再掀新热潮!「中央计算架构」进入规模量产周期

中央计算区域控制的新一代整车电子架构&#xff0c;已经成为车企继电动化、智能化&#xff08;功能上车&#xff09;之后&#xff0c;新一轮竞争的焦点。 如果说智能化的1.0阶段&#xff0c;是智能驾驶智能座舱的争夺战&#xff1b;那么&#xff0c;即将进入的2.0阶段&#xff…

黑马大数据学习笔记3-MapReduce配置和YARN部署以及基本命令

目录 部署说明MapReduce配置文件YARN配置文件分发配置文件集群启动命令开始启动YARN集群 查看YARN的WEB UI页面保存快照YARN集群的启停命令一键启动脚本单进程启停 提交MapReduce任务到YARN执行提交wordcount示例程序查看运行日志提交求圆周率示例程序 p41~43 https://www.bili…

IntelliJ IDEA快捷键大全 + 动图演示!

一、构建/编译 Ctrl F9&#xff1a;构建项目该快捷键&#xff0c;等同于菜单【Build】—>【Build Project】 执行该命令后&#xff0c;IntelliJ IDEA 会编译项目中所有类&#xff0c;并将编译结果输出到out目录中。IntelliJ IDEA 支持增量构建&#xff0c;会在上次构建的基…

ES6之Promise、Class类与模块化(Modules)

目录 PromiseClass类extendssuper Modules 模块系统export default 和对应importexport 和 import Promise Promise 是 ES6 引入的一种用于处理异步操作的对象。 它解决了传统回调函数&#xff08;callback&#xff09;模式中容易出现的回调地狱和代码可读性差的问题。 Promis…

MySQL binLog问题

看到数据库目录下有很多OFF.*文件的时候很诧异&#xff0c;这玩意是啥&#xff0c;binlog不应该都是*bin-log.*​的文件吗&#xff1f;* [roottest ~]# cd /data/mysql_data [roottest mysql_data]# ls ansible hap_attach_yl hap_func_yl hap_msg_yl h…

ThreadPoolExecutor详解(上)

为什么会有线程池&#xff1f; 如果客户端发一个请求&#xff0c;服务端就创建一个线程接收请求&#xff0c;线程资源是有限的&#xff0c;而且创建一个线程和执行结束之后都要调用操作系统资源销毁线程&#xff0c;这样频繁操作肯定非常占用cpu和内存资源&#xff0c;线程池的…

改进粒子群算法优化BP神经网络---回归+分类两种案例

今天采用改进的粒子群算法(LPSO)优化算法优化BP神经网络。本文选用的LPSO算法是之前作者写过的一篇文章&#xff1a;基于改进莱维飞行和混沌映射&#xff08;10种混沌映射随意切换&#xff09;的粒子群优化算法&#xff0c;附matlab代码 文章一次性讲解两种案例&#xff0c;回归…

shiro快速入门

文章目录 权限管理什么是权限管理&#xff1f;什么是身份认证&#xff1f;什么是授权&#xff1f; 什么是shiro&#xff1f;shiro的核心架构shiro中的三个核心组件 shiro中的认证shiro中的授权shiro使用默认Ehcache实现缓存shiro使用redis作为缓存实现 权限管理 什么是权限管理…

truncate和delete的区别

两者都可以删除表中的数据&#xff0c;但是本质上是有区别的&#xff0c;两者使用方法如下&#xff1a; --删除表中所有数据 DELETE FROM table_name; --删除表中部分符合条件的数据 DELETE FROM table_name WHERE 【】;--删除表中所有数据 TRUNACTE TABLE table_name;1、SQL语…

华为OD机考--【磁盘容量排序】

■ 题目描述 【磁盘容量排序】 磁盘的容量单位常用的有M,G,T这三个等级,它们之间的换算关系为1T = 1024G,1G = 1024M,现在给定n块磁盘的容量, 请对它们按从小到大的顺序进行稳定排序,例如给定5块盘的容量,1T,20M,3G,10G6T,3M12G9M排序后的结果为20M,3G,3M12G9…

MySQL 数据库、表的基本操作

目录 数据库 关系数据库SQL 关系数据库常用词汇 常用命令语句 数据库操作 查看数据库 创建数据库 修改数据库编码 删除数据库 数据表操作 查看数据表 创建数据表 表中数据操作 增 删 改 查 数据库 数据库是在数据管理和程序开发过程中&#xff0c;一种非常重要…

Express中间件

1.创建最基本的中间件 const express require(express); const send require(send);const app express()const mw function (req, res, next) {console.log(middleware);// 一定要调用next() 把流转关系交给下一个中间件或路由next() }app.listen(80, () > {console.l…

SpringBoot —程序包org.springframework.boot.test.context不存在

一. 遇到问题 &#xff1a;程序包org.springframework.boot.test.context不存在 发生错误的原因是项目中缺少spring-boot-starter-test依赖导致的&#xff0c;解决方案如下: 在项目根目录的pom.xm文件中的<dependencies>节点下增加以下依赖即可&#xff1a; <depen…

【ARM 常见汇编指令学习 7 - LDR 指令与LDR伪指令及 mov指令】

文章目录 LDR 指令LDR伪指令LDR伪指令与MOV区别 上篇文章&#xff1a;ARM 常见汇编指令学习 6 - bic(位清除), orr(位或), eor(异或) 下篇文章&#xff1a;ARM 常见汇编指令学习 8 - dsb sy 指令及 dsb 参数介绍 LDR指令 与 LDR伪指令 两者虽然名字相同但是作用却不相同&#x…

uniApp 插件 Fvv-UniSerialPort 使用实例

接上一篇 uniApp 对接安卓平板刷卡器, 读取串口数据 , 本文将详细介绍如何使用插件读取到串口数据 原理 通过uniApp 插件读取设备串口数据, 解析后供业务使用; 步骤 创建uniApp 项目;添加插件 安卓串口通信 Fvv-UniSerialPort 安卓串口通信 Fvv-UniSerialPort - DCloud 插件…

PoseiSwap:通过 RWA 的全新叙事,反哺 Nautilus Chain 生态

PoseiSwap 是 Nautilus Chain 上的首个 DEX&#xff0c;作为目前行业内模块化区块链叙事的早期奉行者&#xff0c;PoseiSwap 也得到了较高的市场关注。基于 Nautilus Chain&#xff0c;PoseiSwap 打造了一个全新的 Rollup 应用层&#xff0c;并通过零知识证明来建立全新的订单簿…

刷完这个笔记,15K真的不能再少了....

大家好&#xff0c;最近有不少小伙伴在后台留言&#xff0c;得准备面试了&#xff0c;又不知道从何下手&#xff01;为了帮大家节约时间&#xff0c;特意准备了一份面试相关的资料&#xff0c;内容非常的全面&#xff0c;真的可以好好补一补&#xff0c;希望大家在都能拿到理想…

SQL-每日一题【1174. 即时食物配送 II】

题目 配送表: Delivery 如果顾客期望的配送日期和下单日期相同&#xff0c;则该订单称为 「即时订单」&#xff0c;否则称为「计划订单」。 「首次订单」是顾客最早创建的订单。我们保证一个顾客只会有一个「首次订单」。 写一条 SQL 查询语句获取即时订单在所有用户的首次订…