DevOps系列文章之 Git知识大全

常用命令

 

其他参数 --inital-branch 初始化的分支 --bare 创建一个裸仓库(纯 Git 目录,没有工作目录) --template 可以通过模板来创建预先建好的自定义 git 目录

 

常见 Git 配置

用户名配置

git config --global user.name "yourname" git config --global user.email yourname@xx.com

instead of 配置

git config --global url.github.com:.insteadOf github.com/

Git 命令别名配置

git config --global alias.cin "commit --amend --no-edit"

Git Remote

查看 Remote

git remote -v

添加 Remote

git remote add orgin_ssh git@github.com:git/git.git git remote add orgin_http github.com/git/git.gii…

HTTP Remote

URL:github.com/git/git.git 免密配置 内存:git config --global credential.helper 'cache --timeout=3600' 硬盘:git config --global credential.helper "store --file/path/to/credential-file" 不指定目录的情况默认是 ~/.git-credentials

将密钥信息存在指定文件中 具体格式:scheme://{scheme}://scheme://{user}:${password}@github.com

SSH Remote

URL:git@github.com:git/git.git 免密配置 SSH 可以通过公司钥的机制,将生成公钥存放在服务端,从而实现免密访问

目前的 Key 类型四种,分别是 dsa、rsa、ecdsa、ed25519 默认使用的是 rsa,由于一些安全问题,现在已经不推荐使用 dsa 和 rsa 了,优先推荐使用 ed25519 ssh-keygen -t ed25519 -C "your_email@example.com" 密钥默认存在 ~/-ssh/id_ed25519.pub

Objects

commit / tree / blob 在 git 里面走统一称为 Object,除此之外还有个 tag 的 object. Blob:存储文件的内容 Tree:存储文件的目录信息 Commit:存储提交信息,一个 Commit 可以对应唯一版本的代码

如何把这三个信息串联在一起? 1、通过 Commit 寻找到 Tree 信息,每一个 Commit 都会存储对应的 Tree ID。 2、通过 Tree 存储的信息,获取到对应的目录树信息。 3、从 Tree 中获得 blob 的 ID,通过 Blob ID 获取对应的文件内容。

Refs

Refs 文件存储的内容 refs 的内容就是对应的 Commit ID 因此把 ref 当做指针,指向最硬的 Commit 来表示当前 Ref 对应的版本。

不同种类的 ref

refs/heads 前缀表示的是分支,除此之外还有其他种类的 ref,比如 refs/tags 前缀表示的是标签。

Branch

git cheakout -b 可以创建一个新分支 分支一般用于开发阶段,是可以不断添加 Commit 进行迭代的

Tag

标签一般表示的是一个稳定版本,指向的 Commit 一般不会变更 通过 git tag 命令生成 tag。

Annotation Tag

什么是附注标签? 一种特殊的 Tag,可以给 Tag 提供一些额外的信息。 如何创建附注标签? 通过 git tag -a 命令来完成附注标签的创建。

Git GC

通过 git gc 命令,可以删除一些不需要的 object,以及会对 object 进行一些打包压缩来减少仓库的体积。

Reflog

reflog 是用于记录操作日志,防止误操作后数据丢失,通过 reflog 来找到丢失的数据,手动将日志设置为过期。 指定时间 git gc prune=now 指定的是修剪多久之前的对象,默认是两周前。

Git Clone & Pull & Fetch

Clone

拉取完整的仓库到本地目录,可以指定分支,深度。

Fetch

将远端某些分支最新代码拉取到本地,不会执行 merge 操作,会修改 refs/remote 内的分支信息,如果需要执行和本地代码合并需要手动操作。

Pull

拉取远端某分支,并和本地代码进行合并,操作等于 git fetch + git merge,也可以通过 git pull --rebase 完成 git fetch + git rebase 操作。

可能存在冲突,需要解决冲突。

Git Push Push 是将本地代码同步至远端的方式。 常见命令 一般使用 git push orgin master 命令即可完成 冲突问题 1、如果本地的 commit 记录和远端的 commit 历史不一致,则会产生冲突,比如 git commit --amend or git rebase 都有可能导致这个问题。 2、如果该分支就自己一个人使用,或者团队确认过可以修改历史则可以通过 git push orgin master --f 来强制推送,一般不推荐主干分支进行该操作,正常都应该解决冲突后再进行推送。 推送规则限制 可以通过保护分支,来配置一些保护规则,防止误操作,或者一些不合规的操作出现,导致代码丢失。

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

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

相关文章

Oracle压缩数据

Oracle压缩数据的处理基于数据库块,其本质上是通过消除在数据库块中的重复数据来实现空间节约,具体方法如下:比较数据块中包含的所有字段或记录,其中重复的数据只在位于数据块开始部分的记号表(Symbol Table&#xff0…

基于Springboot的汽车租赁系统

摘要 首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包括软件架构模式、整体功能模块、数据库设计。…

信息熵和决策树

在预测分析领域,决策树是可应用于回归和分类任务的算法之一 决策树背后的想法是,根据数据集中的特征对当时响应变量的贡献方式,递归地构建一个颠倒的树状结构。 在每次迭代中,将以使得所得模型最小化成本函数的方式选择特征。 该结…

cmder 使用简介

文章目录 1. cmder 简介2. 下载地址3. 安装4. 配置环境变量5. 添加 cmder 到右键菜单6. 解决中文乱码问题 1. cmder 简介 cmder 是一个增强型命令行工具,不仅可以使用 windows 下的所有命令,更爽的是可以使用 linux的命令, shell 命令。 2. 下载地址 …

选择合适的图表,高效展现数据魅力

随着大数据时代的来临,数据的重要性愈发凸显,数据分析和可视化成为了决策和传递信息的重要手段。在数据可视化中,选择合适的图表是至关重要的一环,它能让数据更加生动、直观地呈现,为观众提供更有说服力的信息。本文将…

模型构建——使用逻辑回归构建模型,lightGBM进行特征筛选

1、模型构建流程 1.1 实验设计 新的模型要跟原有方案对比,而且是通过实验证明,特别注意模型和策略不能同时调整。一般实验设计包含以下流程: 问题:业务稳定后,可以去掉人工审核吗? 答:不可以…

React拆分窗格组件

React拆分窗格的两种方法 react-split-pane 使用第三方库react-split-pane的优点: 方便快捷:使用现有的第三方库可以快速实现拆分窗格功能,无需自己编写复杂的逻辑。 功能丰富:第三方库通常提供了许多可配置的选项和功能&…

c语言练手项目【编写天天酷跑游戏2.0】EASYX图形库的运用。代码开源,素材已打包

天天酷跑项目的开发 项目前言 项目是基于Windows,easyX图形库进行开发的, 开发环境:Visual Studio 2022 项目技术最低要求: 常量,变量,数组,循环,函数。 文章目录 天天酷跑项目的…

超详细-Vivado配置Sublime+Sublime实现Verilog语法实时检查

目录 一、前言 二、准备工作 三、Vivado配置Sublime 3.1 Vivado配置Sublime 3.2 环境变量添加 3.3 环境变量验证 3.4 Vivado设置 3.5 配置验证 3.6 解决Vivado配置失败问题 四、Sublime配置 4.1 Sublime安装Package Control 4.2 Sublime安装Verilog插件 4.3 安装语…

#pragma region用法

简介 #pragma region 是VS(Visio Studio)所特有的预处理语法(其他IDE或者Cmake会报错),其可以用来收缩或者展开一段代码。 #pragma region MyRegion// ...Code content #pragma endregion 其中,MyRegion 即给这代码块所定义的名…

工业边缘网关HiWoo Box的4G/5G CPE功能:为现场无线设备提供网络

引言 随着工业物联网的快速发展,现场设备的无线连接需求越来越迫切。然而,在一些室外或者不方便布网的场景下,为现场的无线设备提供网络仍然是一个挑战。为了满足这一需求,工业边缘网关HiWoo Box引入了4G/5G CPE(Cust…

【计算机网络】简易TCP网络小程序

文章目录 1. 简易TCP网络程序1.1 服务端1.1.1 服务端创建套接字1.1.2 服务端绑定1.1.3 服务端监听1.1.4 服务端获取连接1.1.5 服务端处理请求 1.2 客户端1.2.1 客户端创建套接字1.2.2 客户端连接服务器1.2.3 客户端发起请求 1.3 服务器测试1.4 单执行流服务器的弊端 2. 多进程版…

【Java】 服务器cpu过高如何排查和解决?

文章目录 前言一、常见能够引起CPU100%异常的情况都有哪些?二、服务器CPU使用率飙升异常,黄金4步排查法三、排查 CPU 故障的常用命令四、什么场景会造成 CPU 低而负载确很高呢?五、监控发现线上机器内存占用率居高不下,如何分析进…

网络性能测试诊断参考工具表

性能指标工具说明吞吐量(BPS)sar nethogs iftop分别可以查看网络接口、进程以及 IP 地址的网络吞吐量PPSsar /proc/net/dev查看网络接口的 PPS连接数netstat ss查看连接数延迟ping hping3通过 ICMP、TCP 等测试网络延迟连接跟踪数conntrack查看和管理连接…

django groupby踩坑

django groupby踩坑 前言坑 ~~参考~~ 前言 django的orm作为简单查询 使用简直是太爽了,所见即所得,但是groupby时候缺有一些坑点 坑 from django.db.models import Count from w.models import www # 在不加order by的时候 会默认按照id分组 print(TaskPort.obje…

webpack require.context

require.context((directory: String),(includeSubdirs: Boolean) /* 可选的,默认值是 true */,(filter: RegExp) /* 可选的,默认值是 /^\.\/.*$/,所有文件 */,(mode: String) /* 可选的, sync | eager | weak | lazy | lazy-onc…

RPA界面元素定位与操控技术详解-达观数据

RPA 入门介绍 什么是 RPA?RPA 是机器人流程自动化 Robotic Process Automation 的简写。在《智能RPA实战》中,我们这样定义:通过特定的、可模拟人类在计算机界面上进行操作的技术,按照规则自动执行相应的流程任务,代替…

【Ubuntu】完全卸载通过deb包安装的jenkins

要完全卸载通过Deb包安装的Jenkins,可以按照以下步骤操作: 停止Jenkins服务:首先,停止Jenkins服务,以确保它不再运行。 sudo systemctl stop jenkins禁用Jenkins服务:将Jenkins服务设置为在系统启动时不自动…

Linux QT通过NFS挂载到Linux开发板上

Linux QT通过NFS挂载到Linux开发板上 说明:这里使用的Linux开发板是正点原子的阿尔法开发板 创建NFS 环境 NFS简介 网络文件系统,英文 Network File System(NFS),是由 SUN 公司研制的 UNIX 表示层协议 (presentation layer protocol)&…

【面试】MySQL 中InnoDB与MyISAM的区别是什么?

文章目录 前言一、数据库存储引擎二、如何知道自己的数据库用的什么引擎呢?三、存储引擎原理四、B 树和 B 树五、MyISAM六、InnoDB七、InnoDB与MyISAM的区别总结 前言 许多同学都把 MySQL 作为自己的数据库,但是可能用过最多的就是 SQL 语句&#xff0c…