Git-速查
Git
安装 Git 之后,你可以…
配置全局用户信息(推荐)
- 全局设置,创建本地仓库时默认分支名称为 main(你需要什么名称就该什么名称)【推荐配置为 main 】
git config --global init.defaultBranch main
- 全局设置,用户名和电子邮箱地址(比如:“张三”、“10086@qq.com”)
git config --global user.name "名字"
git config --global user.email "电子邮箱地址"
- 查看是否设置成功
git config user.name
git config user.email
创建本地仓库(必须)
- 为当前文件夹的内容,创建本地仓库
git init
- 对默认的分支名称不满意,可通过下面命令重命名
git branch -m 新的分支名称
- 插一句嘴,如果你需要重命名其他分支,而非当前分支,可执行下面命令
git branch -m 老的分支名称 新的分支名称
局部用户信息(可选)
- 局部设置,本地仓库的用户名和电子邮箱地址(优先从局部设置读取,而非使用全局设置)
git config user.name "名字"
git config user.email "电子邮箱地址"
- 查看是否设置成功
git config user.name
git config user.email
操作本地仓库(推荐)
- branch 相关
# 查看分支(列出本地仓库中所有的分支,并且当前所在的分支会被标注出来)
git branch# 显示简略的分支信息(比如:每个分支的最新提交哈希值)
git branch -v# 显示详细的分支信息(比如:远程跟踪分支)
git branch -vv# 切换到指定的分支
git checkout 分支名称# 创建并切换到一个新分支
git checkout -b 新分支名称# 尝试删除分支(自动检查分支是否已经合并,没有合并将删除失败)
git branch -d 分支名称# 强制删除分支
git branch -D 分支名称# 将xxx分支合并进当前分支(假如当前分支是main,要xxx分支并入main里面)
git merge xxx# 解决合并冲突
(1)查看冲突文件: git status
(2)编辑冲突文件: 手动编辑内容,将冲突的内容进行修改
(3)重新执行添加: git add 文件名
(4)然后执行提交: git commit -m "这里写你本次提交的备注内容"
- add 相关
# 将所有文件添加到"待提交区"
git add .# 将某个文件(password.txt)添加到"待提交区"
git add password.txt
# 从"待提交区"撤回刚才添加的所有文件
git reset# 从"待提交区"撤回刚才添加的某一个文件(password.txt)
git reset password.txt
- status 相关
# 显示工作目录和暂存区的状态
git status
- commit 相关
# 将"代提交区"里面的东西,提交到本地仓库里面
git commit -m "这里写你本次提交的备注内容"# 不写参数,Git 会自动打开默认的文本编辑器供你输入多行提交信息
git commit
# 撤回刚才提交到"本地仓库"的东西(1)撤回最近一次的提交,并让已修改的文件回到"待提交区"(即:回到commit的前一刻)
git reset --soft HEAD^(2)撤回最近一次的提交,只保存文件的修改状态,"待提交区"没有任何内容(即:回到add的前一刻)
git reset HEAD^(3)撤回最近一次的提交,不保存文件的修改状态,"待提交区"也没有任何内容(即:回到文件没有修改过的状态)
git reset --hard HEAD^(4)撤销某个特定的历史提交而不是最近的一次提交
例如:要撤销某一个特定的提交,假设其哈希值为 abc123
git revert 会创建一个新的提交,该提交的内容正好抵消指定提交所做的更改,而不会直接删除历史记录
git revert abc1234
温馨提醒:在Git中,用 HEAD 表示当前版本;
上一个版本就是HEAD^,上上一个版本就是HEAD^^,上一百个版本可以简写为HEAD^100
或者
上一个版本就是HEAD~,上上一个版本就是HEAD~~,上一百个版本可以简写为HEAD~100
区别是
[HEAD^5表示退一步到第五个父提交上,HEAD~5表示连续退五步到第五个父提交上]
Github
与 Github 建立连接
接下来将使用 ssh
方式进行连接,(Github官网)不推荐使用 https
方式
- 切换到用户目录
cd ~
- 制作用于保证数据传输安全的密钥(执行下面命令后,出现问答提示,不断按回车键即可)
ssh-keygen -t rsa -C "电子邮箱地址"
- 执行下面命令,将会输出密钥内容,复制它
type ~/.ssh/id_rsa.pub
- 打开 Github 网站:https://www.github.com
- 点击右上角的个人头像,点击
Settings
,点击SSH and GPG keys
,在 SSH keys 菜单里面,填写好 Title 后,将密钥粘贴到 Key 那里。
创建远程仓库
- 点击右上角的个人头像,点击
Your Repositories
,点击New
创建你的远程仓库 - 在
Repository name
那里填写仓库名称,如果你想要给这个仓库添加一些说明,在Description (optional)
那里填写即可 - 如果选择
Public
,仓库将被公开,所有人可见;如果选择Private
,仓库将被设置为私有,只有你自己可见 - 其他配置,可根据你的需要进行设置,不需要的话,直接点击最下方的
Create repository
即可 - 点击
SSH
,可以看到一个链接:git@github.com:用户名/远程仓库名称.git
,复制它
连接远程仓库
- 添加一个远程仓库,给它命名为 origin(你可以改为其他名字)而它的路径地址,就粘贴你刚才复制的链接
git remote add origin git@github.com:用户名/远程仓库名称.git
- 查看远程仓库(确保远程仓库已经正确添加)
# 查看名称为 origin 的远程仓库的路径地址
git remote get-url origin# 查看所有的远程仓库
git remote -v
推送和拉取
- 推送
假设
“本地仓库”当有两个分支:main、test,当前分支为 test
“远程仓库”的分支名称为 main、develop
“远程仓库”被命名为 cangku# 将本地仓库的test分支上传到cangku的main分支(即:test => main)
git push cangku test:main# 将本地仓库的main分支上传到cangku的develop分支(即:main => develop)
git push cangku main:develop# 将本地仓库的main分支上传到cangku的main分支(即:main => main)
git push cangku main:main
或者简写
git push cangku main# 注意:上传指令的执行与当前是什么分支无关
- 设置与查看 “远程跟踪分支”
远程跟踪分支(也称为"上游分支")是 Git 中一个非常有用的功能
远程跟踪分支,是本地仓库中对远程分支的引用# 设置"远程跟踪分支"的三种方法
# (1) 普通设置
git branch --set-upstream-to=远程仓库名/远程分支名 本地分支名# (2) 推送+设置
git push --set-upstream 远程仓库名 本地分支:远程分支
或者简写为
git push -u 远程仓库名 本地分支:远程分支# (3) 拉取+设置(注意:下面的命令将作用于你当前所在的本地分支)
git pull --set-upstream 远程仓库名 远程分支名# 注意:设置"远程跟踪分支"之后,你以后可以直接使用 git push 和 git pull
而不需要每次都指定远程仓库和分支名称,git会自动知道你的本地分支对应的远程分支# 查看"远程跟踪分支"的信息
git branch -vv
- 拉取
# 从远程仓库获取所有远程分支的更新,并呈现内容的变化,但不会修改你的工作目录(也就是不合并)
git fetch 远程仓库名# 从远程仓库获取某个远程分支的更新,并呈现内容的变化,但不会修改你的工作目录
git fetch 远程仓库名 远程分支# 注意:无论你当前在哪个本地分支上,git fetch 只会获取相应的远程分支的最新信息,并更新相应的远程跟踪分支,但不会修改你的工作目录(也就是不合并)
# 从远程仓库获取最新的更改,并将这些更改合并到“你当前所在的本地分支”(注意:只能是当前分支,无法更改)
git pull 远程仓库名 远程分支温馨提示git pull 是 git fetch 和 git merge 的组合假设“本地仓库”当有两个分支:main、test,当前分支为 main“远程仓库”的分支名称为 main、develop“远程仓库”被命名为 cangku需求将cangku中的develop分支合并到本地test分支上方法一# (1)切换到本地test分支上
git checkout test# (2)从远程仓库获取develop分支的最新更改,并合并到当前test分支上
git pull cangku develop 方法二# 切换到本地test分支上
git checkout test# 更新所有"远程跟踪分支"(如cangku/main、cangku/develop)但不会修改你的工作目录或当前分支
git fetch cangku# 将"远程跟踪分支" cangku/develop 的更改合并到当前test分支上
git merge cangku/develop# 小提示:远程跟踪分支是本地仓库中对远程分支的引用。它们通常以 cangku/develop 的形式存在。远程跟踪分支用于跟踪远程分支的状态,帮助你了解远程分支的最新提交情况。
Other
- 如果你使用 VS Code,可借助 git 相关的插件来提高你的工作效率(比如:Git Graph)
- 如果你只需要托管到 Github 平台,可尝试使用
Github Desktop
图形工具
相关文章:
Git-速查
Git 安装 Git 之后,你可以… 配置全局用户信息(推荐) 全局设置,创建本地仓库时默认分支名称为 main(你需要什么名称就该什么名称)【推荐配置为 main 】 git config --global init.defaultBranch main全…...
Spring Boot嵌入式服务器深度解析:从配置到调优的全方位指南
文章目录 引言一、嵌入式服务器核心原理1.1 架构设计特点1.2 主流服务器对比 二、嵌入式服务器配置实战2.1 基础配置模板2.2 HTTPS安全配置 三、高级调优策略3.1 线程池优化(Tomcat示例)3.2 响应压缩配置3.3 访问日志配置 四、服务器切换实战4.1 切换至U…...
深入解析浏览器渲染全流程:从URL输入到页面渲染的底层原理与性能优化(附实战代码)
本文以https://example.com为例,逐层剖析浏览器从输入URL到页面渲染的完整链路,涵盖DNS解析、TCP/TLS握手、HTTP请求、DOM/CSSOM构建等核心阶段,结合代码示例与性能调优技巧,助你掌握浏览器底层运行机制。 一、导航阶段࿱…...

【网络安全】常见的web攻击
1、SQL注入攻击 定义: 攻击者在HTTP请求中注入恶意的SQL代码,当服务器利用参数构建SQL语句的时候,恶意的SQL代码被一起构建,并在数据库中执行。 示例: 用户登录: 输入用户名xx, 密码 or 1 …...
MySQL面试学习
MySQL 1.事务 事务的4大特性 事务4大特性:原子性、一致性、隔离性、持久性 原⼦性: 事务是最⼩的执⾏单位,不允许分割。事务的原⼦性确保动作要么全部完成,要么全不执行一致性: 执⾏事务前后,数据保持⼀…...

一文读懂Docker之Docker Compose
目录 一、Docker Compose简介 二、Docker Compose的安装和基本使用 1、Docker Compose的安装 步骤一、下载docker-compose 步骤二、新增可执行权限 步骤三、查看是否安装成功 2、Docker Compose的基本使用 (1)、docker-compose up (2)、docker-compose ps (3)、docke…...
escape SQL中用法
select * from tablename where username like %#%% escape # 这个的意思就是,escape指定字符#,#字符后面的第一个字符被认为是普通字符 查询示例2 查询username字段中包含[的数据也是一样,即: select * from tablename where us…...

Cherno C++ P57 Standard array处理静态数组
这篇文章当中我们讲一下如何使用C自带的standard array来处理静态数组。 首先什么是静态数组,静态数组通常指的是不会增长的数据,长度是已经确定了的。我们在定义数组的时候就必须确定好长度与类型。 其次C当中也确实给我们提供了一些可以用来处理静态…...

linux学习【7】Sourc Insight 4.0设置+操作
目录 1.Source Insight是什么?2.需要哪些配置?3.怎么新建项目4.一些问题的解决1.中文乱码问题 5.常规使用1. 在工程中打开文件2. 在文件中查看函数或变量的定义3. 查找函数或变量的引用4. 快捷键 按照这个设置就可以了,下面的设置会标明设置理…...

JDK、Hadoop下载地址
一、Oracle JDK https://www.oracle.com/java/technologies/downloads/ 刚进去是最新的版本,往下滑可以看到老版本 二、Open JDK的 Azul Zulu https://www.azul.com/downloads/ 直接可以选版本等选项卡 三、Hadoop Apache Download Mirrors...
【小白向超详细】使用 VSCode 远程连接 Linux 服务器详细教程
使用 VSCode 远程连接 Linux 服务器详细教程 前提条件 已安装 VSCode。已在 VSCode 中安装 Remote - SSH 插件。目标 Linux 服务器 开启了 SSH 服务,并可以通过 SSH 访问。本地电脑已安装 SSH 客户端(Linux 和 macOS 自带,Windows 用户可以…...
设计心得——解耦的实现技术
一、说明 在前面的“设计心得——解耦”中,对解耦进行了高层次的抽象说明。本篇则对在实践中常用的解耦技术进行逐一分析说明,以期为开发者能更从理论到实践搭建一个桥梁。至于大家能够如何更好的在自己的项目中进行解耦的实践,就需要不断的…...

计算机毕业设计SpringBoot+Vue.jst在线文档管理系统(源码+LW文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
在windows下安装windows+Ubuntu16.04双系统(下)
这篇文章的内容主要来源于这篇文章,为正式安装windowsUbuntu16.04双系统部分。在正式安装前,若还没有进行前期准备工作(1.分区2.制作启动u盘),见《在windows下安装windowsUbuntu16.04双系统(上)》 二、正式安装Ubuntu …...

一文讲解Redis为什么读写性能高以及I/O复用相关知识点
Redis为什么读写性能高呢? Redis 的速度⾮常快,单机的 Redis 就可以⽀撑每秒十几万的并发,性能是 MySQL 的⼏⼗倍。原因主要有⼏点: ①、基于内存的数据存储,Redis 将数据存储在内存当中,使得数据的读写操…...
TPU(Tensor Processing Unit)详解
一、什么是TPU? TPU(Tensor Processing Unit,张量处理器)是谷歌专门为机器学习任务设计的定制化ASIC芯片,旨在加速神经网络训练与推理。其核心目标是针对矩阵运算(如矩阵乘加)优化硬件架构&…...
Ubuntu20.04.2安装Vmware tools
软件版本:Vmware Workstation Pro 17.6.2 操作系统镜像文件:ubuntu-20.04.2-desktop-amd64 方式1:用iso镜像安装 没用这种方法,太麻烦 方式2:用apt安装Open VM Tools 如果你使用的是较新的Ubuntu版本(如…...
检测服务端口是否开放的常用方法
检测服务端口是否开放的常用方法 文章目录 检测服务端口是否开放的常用方法背景使用nc命令使用 telnet 命令使用 curl 命令使用 openssl 命令使用 Python 脚本,socket连接使用 bash 内建命令:使用 nmap:总结 背景 有时候需要测试网络是否连通,端口是否开放…...

muduo源码阅读:socket常见操作及一些补充
TCP连接和释放 一个典型的TCP连接、通信过程: (假设有资源的一端是服务器端) 服务器会启用一个监听循环,不断接受client连接请求(三次握手建立连接), 进行数据通信,通信完成以后断开连接(四次挥手断开连接)。 对于…...
虚拟表格实现全解析
在数据展示越来越复杂的今天,大量数据的渲染就像是“满汉全席”——如果把所有菜肴一次性摆上桌,既浪费资源也让人眼花缭乱。幸运的是,我们有两种选择: 自己动手:通过二次封装 Element Plus 的表格组件,实…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...

OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...
基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解
JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...

nnUNet V2修改网络——暴力替换网络为UNet++
更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...
Leetcode33( 搜索旋转排序数组)
题目表述 整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 < k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...