当前位置: 首页 > news >正文

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构建等核心阶段,结合代码示例与性能调优技巧,助你掌握浏览器底层运行机制。 一、导航阶段&#xff1…...

【网络安全】常见的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:总结 背景 有时候需要测试网络是否连通,端口是否开放&#xf…...

muduo源码阅读:socket常见操作及一些补充

TCP连接和释放 一个典型的TCP连接、通信过程: (假设有资源的一端是服务器端) 服务器会启用一个监听循环,不断接受client连接请求(三次握手建立连接), 进行数据通信,通信完成以后断开连接(四次挥手断开连接)。 对于…...

虚拟表格实现全解析

在数据展示越来越复杂的今天,大量数据的渲染就像是“满汉全席”——如果把所有菜肴一次性摆上桌,既浪费资源也让人眼花缭乱。幸运的是,我们有两种选择: 自己动手:通过二次封装 Element Plus 的表格组件,实…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...