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

Git基本用法总结

设置全局用户名

git config --global user.name xxx #设置全局用户名

设置全局邮箱地址

git config --global user.email xxx@xxx.com     #设置全局邮箱地址

查看所有的 Git 配置,包括用户信息

git config --list  #查看所有的 Git 配置,包括用户信息
git init    #将当前目录配置成git仓库,信息记录在隐藏的.git文件夹中git add XX  #将XX文件添加到暂存区
git add .   #将所有待加入暂存区的文件加入暂存区

git restore 命令用于恢复文件到工作区或暂存区,其 --staged 选项和不带 --staged 的版本在功能上有显著区别。

git restore --staged

  • 作用--staged 选项用于将文件从暂存区(即缓存区)移除,但不影响工作区中的文件内容。

  • 场景:当你不小心将某些文件添加到了暂存区(例如使用 git add),但是你决定不再包括这些文件在下一次提交中。使用 git restore --staged 可以将这些文件从暂存区移除,同时保留工作区中的修改。

git add a.txt  # 将 a.txt 文件添加到暂存区
git restore --staged a.txt  # 从暂存区移除 a.txt 文件,但工作区中的 a.txt 仍然存在

git restore(不带 --staged

  • 作用:不带 --staged 的 git restore 用于将文件从工作区恢复到暂存区的状态,即撤销工作区的更改,使其与暂存区中的版本一致。

  • 场景:当你在工作区中对文件进行了更改,而你希望撤销这些更改,使文件恢复到暂存区中的状态(即最后一次添加或提交的状态)。这将覆盖工作区中的修改,但不会影响暂存区中的文件。

git add a.txt  # 将 a.txt 文件添加到暂存区
echo "some changes" >> a.txt  # 对 a.txt 文件进行修改
git restore a.txt  # 将 a.txt 文件恢复到暂存区中的版本,即撤销对 a.txt 的修改

将暂存区的内容提交到当前分支

git commit -m "给自己看的备注信息"

查看仓库状态

git status        #查看仓库状态

查看XX文件相对于暂存区修改了哪些内容

git diff XX   #查看XX文件相对于暂存区修改了哪些内容

查看当前分支的所有版本

git log      #查看当前分支的所有版本

查看HEAD指针的移动历史(包括被回滚的版本)

git reflog       #查看HEAD指针的移动历史(包括被回滚的版本)

将代码库回滚到上一个版本

git reset --hard HEAD^     #将代码库回滚到上一个版本

回滚

git reset --hard HEAD^^      #往上回滚两次,以此类推
git reset --hard HEAD~100    #往上回滚100个版本

回滚到某一特定版本

git reset --hard 版本号   #回滚到某一特定版本

生成密钥

ssh-keygen -t rsa       #生成后一路回车

获取密钥

cat ~/.ssh/id_rsa.pub   #公钥

验证是否认证成功(用Gitee)

ssh -T git@gitee.com

在本地告诉终端,远程仓库的地址(这里是将本地仓库与云端的新建的一个仓库连接,情景是:我先在本地开发一些项目,但是没有上传,然后我在Gitee中创建一个仓库叫git_test.git。我现在想要将本地的上传到云端,首先要建立连接,然后再上传)

git remote add origin git@gitee.com:someone/git_test.git #最后一个是地址,起一个名字叫origin

查看远程仓库

git remote

将本地文件夹推送到远程仓库

git push -u origin master

git push -u (第一次需要-u以后不需要):将当前分支推送到远程仓库

git push -u (第一次需要-u以后不需要)        #将当前分支推送到远程仓库

将云端的项目克隆到本地

git clone git@git.acwing.com:xxx/XXX.git

创建并切换到branch_name这个分支

git checkout -b branch_name   #创建并切换到branch_name这个分支

查看所有分支和当前所处分支

git branch        #查看所有分支和当前所处分支

切换到branch_name这个分支

git checkout branch_name      #切换到branch_name这个分支

将分支branch_name合并到当前分支上(注意,一般先切换到主分支,然后合并其他分支)

git merge branch_name     #将分支branch_name合并到当前分支上

删除分支(注意:要删除这个分支,首先要进其他分支。)

git branch -d branch_name     #删除本地仓库的branch_name分支

创建新分支

git branch branch_name    #创建新分支

设置本地的branch_name分支对应远程仓库的branch_name分支(注意,这里可以简单的git push 然后如果远程仓库没有这个分支,终端会报错,然后会打印一个命令,直接复制这个命令然后在终端执行就可以了)(这个是本地有这个分支,但是云端没有,需要将本地的分支上传到云端)

git push --set-upstream origin branch_name  # 设置本地的branch_name分支对应远程仓库的branch_name分支

删除远程仓库的branch_name分支

git push -d origin branch_name         #删除远程仓库的branch_name分支

将远程的branch_name1分支与本地的branch_name2分支对应(绑定在一起)(这个是云端已经有分支了,但是本地没有对应的,需要在本地先建立一个这个分支,然后将这个分支与云端的分支对应)

git branch --set-upstream-to=origin/branch_name1 branch_name2   #将远程的branch_name1分支与本地的branch_name2分支对应#然后拉下来,并且*******合并*****
git pull

将云端的分支拉下来也可以不用“先同步两个分支”,可以在云端的一个分支和本地一个直接合并(这里是,云端有一个本地没有的分支,branch_name 然后将云端的这个分支合并到本地当前分支)

git pull origin branch_name   #将远程仓库的branch_name分支与本地仓库的当前分支合并

`git clone` 和 `git pull` 是 Git 中两个不同的命令,它们的功能和用途如下:

1. `git clone`

- **功能**:将远程仓库的所有内容(包括文件、历史记录、分支等)复制到本地计算机。
- **使用场景**:通常在你第一次获取一个远程仓库时使用
 

  git clone https://gitee.com/username/repo.git

2. `git pull`

- **功能**:从远程仓库拉取最新的更改并合并到当前本地分支。相当于 `git fetch` 和 `git merge` 的组合。
- **使用场景**:在你已经有了本地仓库,并想更新本地分支以获取最新的更改时使用。

  git pull origin your-branch-name

总结

- **`git clone`**:用于首次获取整个仓库。
- **`git pull`**:用于更新已存在的本地仓库。

这两个命令在工作流程中起到不同的作用。希望这个解释对你有帮助!如果还有其他问题,随时问我!

注意:

当你使用 git clone 命令时,Git 会自动为你创建一个与远程仓库的连接,包括设置 origin 作为默认的远程仓库。不需要使用“git remote add origin git@git.acwing.com:xxx/XXX.git:将本地仓库关联到远程仓库”。

具体说明

  • git clone:这个命令会将远程仓库的内容克隆到你的本地计算机,并自动设置好远程仓库的地址(例如 origin),你不需要手动执行 git remote add origin ...

例子

当你执行以下命令:

git clone git@git.acwing.com:xxx/XXX.git

Git 会执行以下操作:

  1. 克隆远程仓库的所有内容。
  2. 创建一个名为 origin 的远程连接,指向你克隆的仓库。
  3. 默认会将当前分支设置为跟踪远程的主分支(通常是 main 或 master)。

总结

因此,使用 git clone 后,你就不需要再手动添加远程仓库的关联了。如果你想查看当前的远程仓库设置,可以使用:

相关文章:

Git基本用法总结

设置全局用户名 git config --global user.name xxx #设置全局用户名 设置全局邮箱地址 git config --global user.email xxxxxx.com #设置全局邮箱地址 查看所有的 Git 配置,包括用户信息 git config --list #查看所有的 Git 配置,包括用户信…...

SQLite的入门级项目学习记录(四)

性能评估和测试 规划项目 1、框架选择:前端交互和线程控制用pyside,SQLite作为数据库支持。 2、预估数据量:每秒10个数据,每个月约26000000(26M)条。 3、压力测试:首先用python脚本创建一个数据…...

Docker工作目录迁移

文章目录 前言一、迁移步骤1.停掉docker服务2.创建存储目录3.迁移docker数据4.备份5.添加软链接6.重启docker服务,测试 总结 前言 安装docker,默认的情况容器的默认存储路径会存储系统盘的 /var/lib/docker 目录下,系统盘一般默认 50G&#…...

【多维动态规划】64. 最小路径和(面试真题+面试官调整后的题目)

64. 最小路径和 难度:中等 力扣地址:https://leetcode.cn/problems/minimum-path-sum/description/ 1. 原题以及解法 1.1 题目 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和…...

Web后端开发技术:RESTful 架构详解

RESTful 是一种基于 REST(表述性状态转移,Representational State Transfer)架构风格的 API 设计方式,通常用于构建分布式系统,特别是在 Web 应用开发中广泛应用。REST 是一种轻量级的架构模式,利用标准的 …...

【Fastapi】参数获取,json和query

【Fastapi】参数获取,json和query 前言giteegithub query形式json传递同步方法使用json 前言 花了半个月的时间看了一本小说,懈怠了…今天更新下fastapi框架的参数获取 gitee https://gitee.com/zz1521145346/fastapi_frame.git github https://git…...

【Node.js】初识微服务

概述 Node.js 的微服务架构是一种通过将应用程序分解为独立的、松耦合的小服务的方式进行系统设计。 每个微服务负责处理一个特定的业务功能,并且这些服务可以独立开发、部署、扩展和管理,并且可以通讯。 它的核心思想就是解耦。 微服务和微前端是类…...

React项目实战(React后台管理系统、TypeScript+React18)

### 项目地址:(线上发布) (1)别人的项目地址 gitgitee.com:zqingle/lege-react-management.git (2)我自己的项目地址 gitgitee.com:huihui-999/lege-react-management.git ### B站讲解视频地址 https://www.bilibili.com/video/BV1FV4y157Zx?p37&spm_id_frompageDrive…...

【专题】2024中国生物医药出海现状与趋势蓝皮书报告合集PDF分享(附原数据表)

原文链接:https://tecdat.cn/?p37719 出海已成为中国医药产业实现提速扩容的重要途径。目前,中国医药产业发展态势良好,创新能力不断增强,然而也面临着医保政策改革和带量集采带来的压力。政府积极出台多项政策支持医药企业出海…...

【iOS】KVC

文章目录 KVC的定义 容器类中KVC的实现 KVC设值 KVC取值 KVC使用KeyPath KVC处理异常 KVC处理设值nil异常 KVC处理UndefinedKey异常 KVC处理数值和结构体类型属性 KVC键值验证 KVC处理集合 简单集合运算符 对象运算符 KVC处理字典 KVC应用 动态地取值和设值 用…...

【2024年华为杯研究生数学建模竞赛C题】完整论文与代码

这里写目录标题 基于数据驱动下磁性元件的磁芯损耗建模一、问题重述1.1问题背景1.2问题回顾 问题分析与模型假设模型建立与求解 基于数据驱动下磁性元件的磁芯损耗建模 一、问题重述 1.1问题背景 在现代电力电子和变压器设计中,磁性元件是确保能量高效传递和系统稳…...

svn回退到以前历史版本修改并上传

svn回退到以前版本,并在以前版本上修改代码后,上传到svn库当中,如下步骤: 3、 以回退到版本号4为例:选中版本号4,右键->Revert to this version,在出现的对话框中 点击yes! 4、 5、...

fiddler抓包07_抓IOS手机请求

课程大纲 前提:电脑和手机连接同一个局域网 (土小帽电脑和手机都连了自己的无线网“tuxiaomao”。) 原理如下: 电脑浏览器抓包时,直接就是本机网络。手机想被电脑Fiddler抓包,就要把Fiddler变成手机和网络…...

Windows系统及Ubuntu系统安装Java

Java语言简介 Java是一种高级编程语言,Java语言的创始可以追溯到1990年代初,当时任职于Sun Microsystems(后来被甲骨文公司收购)的詹姆斯高斯林(James Gosling)等人开始开发一种名为“Oak”(名字来源于詹姆…...

uni-data-select 使用 localdata 传入数据出现 不回显 | 下拉显示错误的 解决方法

目录 1. 问题所示2. 正确Demo3. 下拉显示错误(Bug复现)4. 下拉不回显(Bug复现)1. 问题所示 uni-app的下拉框uni-data-select 使用 localdata 传入数据 主要总结正确的Demo以及复现一些Bug 数据不回显数据不显示下拉选项2. 正确Demo 详细的基本知识推荐阅读:uni-app中的…...

图解 TCP 四次挥手|深度解析|为什么是四次|为什么要等2MSL

写在前面 今天我们来图解一下TCP的四次挥手、深度解析为什么是四次? 上一片文章我们已经介绍了TCP的三次握手 解析四次挥手 数据传输完毕之后,通信的双方都可释放连接。现在客户端A和服务端B都处于ESTABLISHED状态。 第一次挥手 客户端A的应用进…...

DevExpress中文教程:如何将WinForms数据网格连接到ASP. NET Core WebAPI服务?

日前DevExpress官方发布了DevExpress WinForms的后续版本——将.NET桌面客户端连接到安全后端Web API服务(EF Core with OData),在本文中我们将进一步演示如何使用一个更简单的服务来设置DevExpress WinForms数据网格。 P.S:DevExpress WinForms拥有180…...

SpringBoot3核心特性-核心原理

目录 传送门前言一、事件和监听器1、生命周期监听2、事件触发时机 二、自动配置原理1、入门理解1.1、自动配置流程1.2、SPI机制1.3、功能开关 2、进阶理解2.1、 SpringBootApplication2.2、 完整启动加载流程 三、自定义starter1、业务代码2、基本抽取3、使用EnableXxx机制4、完…...

Linux:RPM软件包管理以及yum软件包仓库

挂载光驱设备 RPM软件包管理 RPM软件包简介 区分软件名和软件包名 软件名:firefox 软件包名:firefox-52.7.0-1.el7.centos.x86_64.rpm 查询软件信息 查询软件(参数为软件名) ]# rpm -qa #当前系统中所有已安装的软件包 ]# r…...

pod介绍与配置

1、pod概念介绍 Pod 是 kubernetes 基本调度单位。每个 Pod 中可以运 行一个或多个容器,共享 Pod 的文件系统、IP 和网络等资源,每个 Pod 只有一个 IP。 2、使用 yaml或json 文件创建 Pod 声明式文件方式创建 Pod,支持 yaml 和 json 1&…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...

day52 ResNet18 CBAM

在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...

高危文件识别的常用算法:原理、应用与企业场景

高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...