极客的git常用命令手册
极客的git常用命令手册
- 1.1 权限配置篇
- 1.1.1 创建ssh key
- 1.1.2 本地存在多个密钥时,如何根据目标平台自动选择用于认证的密钥?
- 1.2 基础信息配置篇
- 1.2.1 配置用户名
- 1.2.2 配置用户邮箱
- 1.2.3 设置文件名大小写区分
- 1.2.4 设置命令行显示颜色
- 1.2.5 检查git全局所有配置
- 1.3 常用操作篇
- 1.3.1 将本地的一个无版本控制的项目关联到创建好的git仓库
- 1.3.2 从git仓库下载一个项目
- 1.3.3 其他基础操作用法
- 2. 参考文献
1.1 权限配置篇

注:
- Codeup 同时支持这两加密算法,但是其他平台RSA还是主流
- jenkins 貌似还是只支持RSA,不太支持ED25519,使用时候要注意
1.1.1 创建ssh key
- 基于RSA算法(兼容性最强)
基于RSA算法生成密钥对命令如下:
ssh-keygen -t rsa -C "<注释内容>"
示例:
ssh-keygen -t rsa -C "fairy_xingyun@hotmail.com"
- 基于ED25519算法(更快更安全)
基于ED25519算法生成密钥对命令如下:
ssh-keygen -t ed25519 -C "<注释内容>"
- 注释会出现在.pub文件中,一般可使用邮箱作为注释内容
- 详情步骤参考:配置 SSH 密钥
示例:ssh-keygen -t ed25519 -C "fairy_xingyun@hotmail.com"
1.1.2 本地存在多个密钥时,如何根据目标平台自动选择用于认证的密钥?
当本地存在多个密钥,如果不设置认证规则,本机将随机选择一个密钥用于认证,可能造成认证失败。
因此,在如下场景中,需要自行定义认证密钥的路径:
- 本地存在多个密钥对应云效的不同账号。
- 本地存在多个密钥对应不同的代码平台(GitLab,GitHub,云效等)。
定义认证密钥路径规则
~/.ssh/config 配置内容如下:(如果不存在请新建一个)
# Codeup 示例用户1
HostName code.aliyun.comPreferredAuthentications publickeyIdentityFile ~/.ssh/id_ed25519# Codeup 示例用户2,设置别名 codeup-user-2
Host codeup-user-2
HostName codeup.aliyun.comPreferredAuthentications publickeyIdentityFile ~/.ssh/codeup_user_2_ed25519# GitLab 平台
HostName gitlab.comPreferredAuthentications publickeyIdentityFile ~/.ssh/gitlab_ed25519
按照上述配置,使用SSH协议访问时,SSH 客户端会使用文件指定的密钥进行认证,实现访问不同平台或同一平台的不同账号使用本地不同的 SSH 密钥进行认证。
访问 Codeup ,由于 HostName 一致,使用别名进行区分使用不同的密钥。
访问 GitLab,根据 HostName 进行区分使用不同的密钥。
# 访问 Codeup,将使用 ~/.ssh/id_ed25519.pub 密钥
git clone git@code.aliyun.com:example/repo.com# 以 codeup-user-2 别名访问 Codeup 时,将使用 ~/.ssh/codeup_user_2_ed25519 密钥
git clone git@codeup-user-2:example/repo.com# 访问 GitLab 平台,将使用 ~/.ssh/gitlab_ed25519 密钥
git clone git@gitlab.com:example/repo.com
1.2 基础信息配置篇
1.2.1 配置用户名
git config --glboal user.name qingfeng.zhao
验证检查配置是否正确
git config --glboal user.name
1.2.2 配置用户邮箱
git config --glboal user.email fairy_xingyun@hotmail.com
验证检查配置是否正确
git config --glboal user.email
1.2.3 设置文件名大小写区分
git config --global core.ignorecase false
- Windows下的git 默认配置是不区分大小写的,但是在linux 服务器上是大小写区分的,
- true则会忽略文件名的大小写,因此强烈建议修改这个全局配置为false
1.2.4 设置命令行显示颜色
git config --global color.ui auto
1.2.5 检查git全局所有配置
git config --global --list
1.3 常用操作篇
1.3.1 将本地的一个无版本控制的项目关联到创建好的git仓库
其他代码平台:
cd existing_folder
git init --initial-branch=master
git remote add origin git@github.com:geekxingyun/spring-boot-best-practices-sample.git
git add .
git commit -m "Initial commit"
git push -u origin master
github由于默认分支是main而不是master, 因此稍有不同
cd existing_folder
git init --initial-branch=main
git remote add origin git@github.com:geekxingyun/spring-boot-best-practices-sample.git
git add .
git commit -m "Initial commit"
git push -u origin main
1.3.2 从git仓库下载一个项目
git clone -b master url
Tips:
- cd existing_folder------------------- 进入存在的文件夹
- git init ---------------------------------- git 初始化,会生成隐藏文件.git
- git remote add origin [url]---------- git 远程仓库定义别名
- git add------------------------------ git 添加当前路径下所有文件
- git commit -m “init project”---------------------------- git 提交到本地库
- git push -u origin master----------- git提交到远程仓库
1.3.3 其他基础操作用法
| git命令语法说明 | 命令解释 | 命令示例 |
|---|---|---|
git commit | 将本地修改保存到本地仓库中 | git commit -m "init project" |
git push | 将本地仓库修改推送到服务器上的仓库中 | git push |
git fetch | 相当于是从远程获取最新版本到本地,不会自动merge | git fetch |
git merge | 远程仓库与本地仓库合并 | git merge |
git pull | 相当于是从远程获取最新版本并merge到本地,等价于先执行git fetch 再执行git merge | git pull |
git checkout [branch-name] | 切换到指定的分支并更新工作目录 | git checkout master |
git merge [branch] | 将指定分支的历史记录合并到当前分支中 | git merge dev |
git rm --cached [file] | 从版本控制中删除该文件,但在本地保留该文件 | git rm --cached readme.md |
2. 参考文献
- 配置SSH KEY密钥
- 如何在同一台电脑上配置多个SSH Key?
- 阿里云Code SSH KEY 代码入库
- 版本控制之Git 修炼手册
- 基础的命令行命令
- 重置阿里云Code密码
相关文章:
极客的git常用命令手册
极客的git常用命令手册 1.1 权限配置篇1.1.1 创建ssh key1.1.2 本地存在多个密钥时,如何根据目标平台自动选择用于认证的密钥? 1.2 基础信息配置篇1.2.1 配置用户名1.2.2 配置用户邮箱1.2.3 设置文件名大小写区分1.2.4 设置命令行显示颜色1.2.5 检查git全…...
spring-data 一统江湖,玩转多种数据源
1、起因 因为要在项目中同时访问redis,mongo和mysql三种数据库,而且因为偏向spring-data,所以都使用了spring-data 在使用的过程中如果不做配置发现会有冲突,这篇文章也是解决这个问题,避免以后遇到同样的问题不知所…...
【EMC专题】为什么PCB上的单端阻抗控制在50欧?
每当我们在发板后和PCB板厂沟通说有些走线需要阻抗控制,控制在多少多少。其实我们所说的阻抗是传输线的特性阻抗。特性阻抗是不能用万用表测量出来的,他由传输线的结构以及材料决定,与传输线的长度、信号的幅度、频率等均无关。 特性阻抗的概念 当电磁波在电缆上…...
想自学写个操作系统,有哪些推荐看的书籍?
前言 哈喽,我是子牙,一个很卷的硬核男人。喜欢研究底层,聚焦做那些大家想学没地方学的课程:手写操作系统、手写虚拟机、手写编程语言… 今天我们将站在一个自学者的角度来聊聊如何实现自己的操作系统。并为大家推荐几本能够帮助你…...
深入理解Java虚拟机:JVM高级特性与最佳实践-总结-7
深入理解Java虚拟机:JVM高级特性与最佳实践-总结-7 类文件结构概述无关性的基石 虚拟机类加载机制概述类加载的时机 类文件结构 代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步 概述 我们写的程…...
ES6中flat与flatMap使用
1、方法介绍 数组的成员有时还是数组,Array.prototype.flat()用于将嵌套的数组“拉平”,变成一维的数组。该方法返回一个新数组,对原数据没有影响。 [1, 2, [3, 4]].flat() // [1, 2, 3, 4]上面代码中,原数组的成员里面有一个数…...
苹果手机、电脑如何进行屏幕录制?苹果录屏功能在哪?
随着人们生活水平的提高,不少小伙伴都会选择苹果手机、苹果电脑作为主要的设备。因为使用苹果电脑进行办公,不仅仅能够提升效率,对于文件的安全性也是有一些保障的。那么,在使用苹果电脑的时候,如果需要有录屏的需求该…...
什么是研发 Lead Time?我悟了!
嗨,朋友!你听说过「新型工伤」吗? 我好像「赛博确诊」了😣 那天朋友约我吃饭,我下意识回复了句「好的,那我提一个日程」……还有上次跟一位准妈妈聊天,我好奇宝宝的预产期,结果脱口…...
android 窗口焦点介绍
背景 我们经常会遇到一种Application does not hava focused window的ANR异常,这种异常一般是没有焦点窗口FocusedWindow导致,且这类异常只会发生在key事件的派发,因为key事件是需要找到一个焦点窗口然后再派发,而触摸事件只需要找到当前显示…...
研发工程师玩转Kubernetes——构建、推送自定义镜像
这几节我们都是使用microk8s学习kubernetes,于是镜像库我们也是使用它的插件——registry。 开启镜像库插件 microk8s enable registry模拟开发环境 我们使用Python作为开发语言来进行本系列的演练。 安装Python sudo apt install python3.11安装Pip3 pip3用于…...
[网络安全]DVWA之XSS(Stored)攻击姿势及解题详析合集
[网络安全]DVWA之XSS(Stored)攻击姿势及解题详析合集 XSS(Stored)-low level源代码姿势基于Message板块基于Name板块 XSS(Stored)-medium level源代码姿势双写绕过大小写绕过Xss标签绕过 XSS(Stored)-high level源代码姿势:Xss标签绕过 XSS(S…...
VP记录:Codeforces Round 873 (Div. 2) A~D1
传送门:CF 前题提要:因为本场比赛的D题让我十分难受.刚开始以为 r − l 1 r-l1 r−l1与 r − l r-l r−l应该没什么不同.但是做的时候发现假设是 r − l 1 r-l1 r−l1的话我们可以使用线段树来维护,但是 r − l r-l r−l就让线段树维护的难度大大增加,这导致我十分烦躁,所以…...
【C++】函数提高
欢迎来到博主 Apeiron 的博客,祝您旅程愉快 !时止则止,时行则行。动静不失其时,其道光明。 目录 1、缘起 2、函数默认参数 3、函数占位参数 4、总结 1、缘起 以前学习过了函数的基本用法和功能,现在是时候学习函数…...
【可持续能源:让我们迈向绿色、可持续未来的道路】
作为未来的主要能源来源,可持续能源技术确实有潜力改变我们的世界。随着全球对传统化石燃料的依赖程度逐渐降低,可再生能源已成为许多国家推进能源转型的首选。 从太阳能和风能到地热能和潮汐能,可持续能源技术已经在许多方面取得了重大突破…...
ES6中数组新增了哪些扩展?
一、扩展运算符的应用 ES6通过扩展元素符...,好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列 console.log(...[1, 2, 3]) // 1 2 3console.log(1, ...[2, 3, 4], 5) // 1 2 3 4 5[...document.querySelectorAll(div)] // [<div>, …...
【算法】动态规划
一、基础知识 动态规划的基本思想:将待求解问题分解成若干个子问题,如果各个子问题不是独立的,不同的子问题的个数只是多项式量级,为避免大量的重复计算,用一个表记录所有已解决的子问题的答案,而在需要的…...
HNOI2014 世界树
洛谷P3233 [HNOI2014]世界树 题目大意 有一棵 n n n个点的树,每个点有一个编号,有 q q q次操作。对于每次操作,给出 m m m个点并称为议事点,树上各个点由离这个点最近的议事点管理(如果有多个议事点离这个点最近&…...
在MyBatis XML文件中处理特殊符号的方法,如“>”、“<”、“>=”、“<=”这些符号XML会报错如何处理
前言 在MyBatis的XML映射文件中,我们经常需要使用特殊符号,比如"大于"、"小于"、"大于等于"、"小于等于"等比较操作符。然而,这些符号在XML中具有特殊的含义,因此需要进行特殊处理&…...
第三章--第一篇:什么是对话系统?
对话系统是一种人机交互的技术,旨在使计算机能够与人类进行自然而流畅的对话。它是人工智能领域的重要研究方向,具有重要的实际应用价值和广泛的普适性。 首先,对话系统的重要性在于它可以提供高效便捷的人机交互方式。传统的人机界面,如图形用户界面(GUI)和命令行界面(…...
项目基础搭建
一、项目创建 1.下载并安装nodejs 下载完成后,查看node版本 winR 快捷键,cmd确定,进入后台黑框 node -v查看npm安装路径 npm root -g安装cnpm镜像 npm install -g cnpm --registryhttps://registry.npm.taobao.org:查看npm版…...
android RelativeLayout布局
<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...
用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章
用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章 摘要: 操作系统内核的安全性、稳定性至关重要。传统 Linux 内核模块开发长期依赖于 C 语言,受限于 C 语言本身的内存安全和并发安全问题,开发复杂模块极易引入难以…...
跨平台商品数据接口的标准化与规范化发展路径:淘宝京东拼多多的最新实践
在电商行业蓬勃发展的当下,多平台运营已成为众多商家的必然选择。然而,不同电商平台在商品数据接口方面存在差异,导致商家在跨平台运营时面临诸多挑战,如数据对接困难、运营效率低下、用户体验不一致等。跨平台商品数据接口的标准…...
HTML中各种标签的作用
一、HTML文件主要标签结构及说明 1. <!DOCTYPE html> 作用:声明文档类型,告知浏览器这是 HTML5 文档。 必须:是。 2. <html lang“zh”>. </html> 作用:包裹整个网页内容,lang"z…...
【多线程初阶】单例模式 指令重排序问题
文章目录 1.单例模式1)饿汉模式2)懒汉模式①.单线程版本②.多线程版本 2.分析单例模式里的线程安全问题1)饿汉模式2)懒汉模式懒汉模式是如何出现线程安全问题的 3.解决问题进一步优化加锁导致的执行效率优化预防内存可见性问题 4.解决指令重排序问题 1.单例模式 单例模式确保某…...
MySQL基本操作(续)
第3章:MySQL基本操作(续) 3.3 表操作 表是关系型数据库中存储数据的基本结构,由行和列组成。在MySQL中,表操作包括创建表、查看表结构、修改表和删除表等。本节将详细介绍这些操作。 3.3.1 创建表 在MySQL中&#…...
宠物车载安全座椅市场报告:解读行业趋势与投资前景
一、什么是宠物车载安全座椅? 宠物车载安全座椅是一种专为宠物设计的车内固定装置,旨在保障宠物在乘车过程中的安全性与舒适性。它通常由高强度材料制成,具备良好的缓冲性能,并可通过安全带或ISOFIX接口固定于车内。 近年来&…...
Modbus转Ethernet IP深度解析:磨粉设备效率跃升的底层技术密码
在建材矿粉磨系统中,开疆智能Modbus转Ethernet IP网关KJ-EIP-101的应用案例是一个重要的技术革新。这个转换过程涉及到两种主要的通信协议:Modbus和Ethernet IP。Modbus是一种串行通信协议,广泛应用于工业控制系统中。它简单、易于部署和维护…...
Ubuntu 可执行程序自启动方法
使用 autostart(适用于桌面环境) 适用于 GNOME/KDE 桌面环境(如 Ubuntu 图形界面) 1. 创建 .desktop 文件 sudo vi ~/.config/autostart/my_laser.desktop[Desktop Entry] TypeApplication NameMy Laser Program Execbash -c &…...
Digital IC Design Flow
Flow介绍 1.设计规格 架构师根据市场需求制作算法模型(Algorithm emulation)及芯片架构(Chip architecture),确定芯片设计规格书(Chip design specification) 原型验证 原型验证(Prototype Validation)通常位于产品开发流程的前期阶段,主要是在设计和开发的初步阶…...
