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

Git 命令行使用指南

  • Git 命令行使用指南
    • 第一部分:配置 Git
      • 1.1 设置用户信息
      • 1.2 配置换行符处理
    • 第二部分:创建和配置仓库
      • 2.1 初始化仓库
      • 2.2 克隆仓库
      • 2.3 递归克隆
      • 2.4 深度克隆
    • 第三部分:基本操作
      • 3.1 添加文件
      • 3.2 提交更改
      • 3.3 查看状态和提交历史
      • 3.4 创建和切换分支
      • 3.5 解决冲突
      • 3.6 合并分支
      • 3.7 拉取远程更改
      • 3.8 创建本地分支跟踪远程分支
      • 3.9 添加子模块
    • 第四部分:远程仓库操作
      • 4.1 添加远程仓库
      • 4.2 推送更改到远程仓库
    • 第五部分:撤销更改
      • 5.1 撤销更改

Git 命令行使用指南

Git 是一个强大的分布式版本控制系统,用于跟踪和管理软件项目的更改。本指南将详细介绍 Git 的基本用法,以帮助您开始使用 Git 来管理您的项目。

第一部分:配置 Git

1.1 设置用户信息

在开始使用 Git 之前,您需要配置您的用户信息,包括姓名和电子邮件地址。这将用于记录您的提交信息。

git config --global user.name "Your Name"
git config --global user.email "youremail@example.com"

1.2 配置换行符处理

在不同操作系统上,换行符的表示方式不同。为了确保在不同平台上的一致性,您可以配置 Git 处理换行符的方式。

git config --global core.autocrlf <value>

<value> 的选项可以是 truefalseinput,具体取决于您的需求。通常,在 Windows 上使用 true,在 Unix/Linux 上使用 falseinput

第二部分:创建和配置仓库

2.1 初始化仓库

要开始使用 Git,您需要创建一个新的仓库或克隆一个现有的仓库。使用以下命令初始化一个新仓库:

git init my-repo

这将在当前目录下创建一个名为 my-repo 的新仓库。

2.2 克隆仓库

如果您要克隆一个已经存在的仓库,可以使用以下命令:

git clone <repository-url>

这将复制远程仓库的内容到您的本地计算机,并创建一个与远程仓库相同的本地副本。

2.3 递归克隆

有些仓库包含子模块,即其他仓库的嵌套。要递归克隆包含子模块的仓库,使用 --recursive 选项:

git clone --recursive <repository-url>

这将克隆主仓库及其所有子模块。

2.4 深度克隆

深度克隆是指仅克隆仓库的部分历史记录,而不是完整地将整个历史记录克隆到本地。这对于减小仓库大小和节省带宽很有用。

要进行深度克隆,使用 --depth 选项,并指定要克隆的提交数量:

git clone --depth=<depth> <repository-url>

如果你仅需要最新的内容,使用 git clone --depth=1 <repository-url> 即可。

如果您已经使用深度克隆克隆了一个仓库,想要获取更多历史记录,可以使用以下命令:

git fetch --unshallow

这将从远程仓库获取完整的历史记录。

第三部分:基本操作

3.1 添加文件

在 Git 中,您需要明确告诉 Git 哪些文件应该被跟踪。使用以下命令将文件添加到暂存区:

git add .

. 表示当前目录下的所有文件。您也可以指定特定文件名来添加单个文件。

3.2 提交更改

一旦您将文件添加到暂存区,您可以使用以下命令来提交更改:

git commit -m "描述你的更改"

这将创建一个提交,将您的更改保存到 Git 仓库中,并附带一条描述信息。

3.3 查看状态和提交历史

要查看仓库的状态以及提交历史,可以使用以下命令:

git status
git log

git status 显示未提交的更改,而 git log 显示提交历史。

3.4 创建和切换分支

分支是 Git 的强大功能之一,允许您在不影响主分支的情况下开发新功能或修复错误。要创建和切换分支,使用以下命令:

git branch <branch-name>
git checkout <branch-name>

<branch-name> 是您为分支指定的名称。

3.5 解决冲突

在多人协作或切换分支时,可能会遇到冲突。冲突发生在两个分支修改了相同部分的文件时。要解决冲突,打开冲突文件,手动编辑文件以保留您需要的更改,然后使用以下命令标记冲突已解决:

git add <resolved-file>
git commit -m "解决冲突:描述冲突解决的内容"

3.6 合并分支

要将分支合并到主分支或其他分支,使用以下命令:

git merge <branch-name>

这将将指定分支的更改合并到当前分支。

3.7 拉取远程更改

在协作中,需要拉取其他人对仓库的更改以保持同步。使用以下命令拉取远程更改:

git fetch --all

3.8 创建本地分支跟踪远程分支

要在本地创建一个分支并将其与远程分支关联,使用以下命令:

git checkout -b 本地分支名 origin/远程分支名

这将创建一个本地分支,并将其与指定的远程分支关联起来,以便跟踪远程仓库的更改。

3.9 添加子模块

Git 子模块允许您将一个 Git 仓库作为另一个 Git 仓库的子目录。要添加子模块,可以使用以下命令:

git submodule add <repository-url> <path>

这将在指定的 <path> 目录下添加一个子模块,与指定的 <repository-url> 仓库关联。

第四部分:远程仓库操作

4.1 添加远程仓库

要与远程仓库进行交互,您需要将其添加为 Git 仓库的远程源。使用以下命令添加远程仓库:

git remote add origin <repository-url>

origin 是通常用于远程仓库的默认名称,但您可以选择其他名称。

4.2 推送更改到远程仓库

要将本地更改推送到远程仓库,使用以下命令:

git push origin <branch-name>

这将确保您的更改与远程仓库保持同步。

第五部分:撤销更改

5.1 撤销更改

有时,您可能需要撤销提交或更改。使用以下命令可以实现不同级别的撤销:

  • git reset 用于取消提交并将更改保留在工作区。
  • git reset HEAD~1 用于取消最新的提交,并将更改保留在工作区和暂存区。

这些是 Git 的基本用法,但 Git 是一个非常强大的工具,还有许多高级功能和选项可供探索。继续学习和掌握 Git 将使您更好

更多内容请参考: https://git-scm.com/docs

相关文章:

Git 命令行使用指南

Git 命令行使用指南 第一部分&#xff1a;配置 Git 1.1 设置用户信息1.2 配置换行符处理 第二部分&#xff1a;创建和配置仓库 2.1 初始化仓库2.2 克隆仓库2.3 递归克隆2.4 深度克隆 第三部分&#xff1a;基本操作 3.1 添加文件3.2 提交更改3.3 查看状态和提交历史3.4 创建和切…...

Spring 常见面试题

1、Spring概述 1.1、Spring是什么? Spring是一个轻量级Java开发框架,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题Spring最根本的使命是解决企业级应用开发的复杂性&#xff0c;即简化Java开发。这些功能的底层都依赖于它的两个核心特性&#xff0c;也就是…...

caffe搭建squeezenet网络的整套工程

之前用pytorch构建了squeezenet&#xff0c;个人觉得pytorch是最好用的&#xff0c;但是有的工程就是需要caffe结构的&#xff0c;所以本篇也用caffe构建一个squeezenet网络。 数据处理 首先要对数据进行处理&#xff0c;跟pytorch不同&#xff0c;pytorch读取数据只需要给数据…...

【OWT】梳理构建的webrtc和owt mfc工程

梳理构建的webrtc和owt mfc工程M98 + owtp2p : 发现最终基于m98的owt也可以直接跑通 【owt】p2p client mfc 工程梳理 服务端使用github版本。 本地运行调试即可。 M98 VS2017 构建 :只构建了m98的webrtc.lib 【webrtc】vs2017 重新构建m98 G:\webrtc_m98_yjf\src webrtc本身…...

02 powershell服务器远程执行命令

一、获取服务器登录凭证 $Username myft\xngrq $PWD 123!# #将密码加密成特殊的字符串对象 $pass ConvertTo-SecureString -AsPlainText $PWD -Force #创建一个登录凭证对象 $Cred New-Object System.Management.Automation.PSCredential -ArgumentList $Username,$pass …...

LeetCode257. Binary Tree Paths

文章目录 一、题目二、题解 一、题目 Given the root of a binary tree, return all root-to-leaf paths in any order. A leaf is a node with no children. Example 1: Input: root [1,2,3,null,5] Output: [“1->2->5”,“1->3”] Example 2: Input: root […...

Linux下MSSQL (SQL Server)数据库无法启动故障处理

有同事反馈一套CentOS7下的mssql server2017无法启动需要我帮忙看看&#xff0c;启动报错情况如下 检查日志并没有更新日志信息 乍一看mssql-server服务有问题&#xff0c;检查mssql也确实没有进程 既然服务有问题&#xff0c;那么我们用一种方式直接手工后台启动mssql引擎来…...

2311极语言高亮说明书

入门 安装目录下Sec.exe为ide.Sc为编译器. .sec为单文件二进制源码结构,.SEC和.极为多文件文本结构,命令行:cmd Sc.exe 源码路径. 基础 整数变量也可以是万能指针,传送参数,参数只有整数和小数两种. 可在名称前面加或&符号取变量或函数名指针地址,文本变量只取地址不用加…...

金蝶云星空与金蝶云星空对接集成盘亏单查询打通盘亏单新增

金蝶云星空与金蝶云星空对接集成盘亏单查询打通盘亏单新增 接通系统&#xff1a;金蝶云星空 金蝶K/3Cloud&#xff08;金蝶云星空&#xff09;是移动互联网时代的新型ERP&#xff0c;是基于WEB2.0与云技术的新时代企业管理服务平台。金蝶K/3Cloud围绕着“生态、人人、体验”&am…...

深入理解 Django 信号机制

Django 信号&#xff08;signals&#xff09;是一种实现解耦的有力工具&#xff0c;它允许某些发生的事件通知其他部分的代码。信号主要用于在 Django 应用中的不同部分之间传递信息&#xff0c;尤其是在模型操作发生时。本文将深入探讨 Django 信号的工作原理、如何定义和接收…...

uniapp开发app应用从创建到上架

目录 前言 一、项目初始化 1.初始化方式 2.账号注册 3.插件安装 二、项目结构及重点文件介绍 1.项目基本结构 2.项目文件介绍 三、应用打包 1. 安卓打包 2.苹果打包 四、应用发布 1. 安卓市场发布 用户权限和隐私政策 注销 软著和App备案证书 2. 苹果市场发布 …...

为什么使用Golang而非Rust开发桌面应用?

MoonGuard 团队选择 Golang 而不是 Rust 作为他们的 Krater 桌面应用程序&#xff0c;因为 Golang 中更容易进行内存管理、类型安全和 ORM 支持。 使用 Rust 和 Tauri 时面临的一些挑战包括&#xff1a; 难以理解 Rust 的所有权和借用规则、其严格的类型安全有时会限制开发速…...

问题复盘|MySQL 数据记录中明明有值,使用 concat() 后得到的却一直是 null

背景 MySQL 的数据数据记录中明明有值&#xff0c;在使用 concat() 查询时却一直得到 null SELECT CONCAT(first_name, , last_name) FROM users;排查后发现 MySQL 的 concat 函数拼接规则是 当多个拼接的字段的字段值中存在 null 时&#xff0c;返回的一定是 null 解决方…...

正点原子嵌入式linux驱动开发——Linux IIO驱动

工业场合里面也有大量的模拟量和数字量之间的转换&#xff0c;也就是常说的ADC和DAC。而且随着手机、物联网、工业物联网和可穿戴设备的爆发&#xff0c;传感器的需求只持续增强。比如手机或者手环里面的加速度计、光传感器、陀螺仪、气压计、磁力计等&#xff0c;这些传感器本…...

利用角色roles上线wordpress项目

角色订制&#xff1a;roles ① 简介 对于以上所有的方式有个弊端就是无法实现复用假设在同时部署Web、db、ha 时或不同服务器组合不同的应用就需要写多个yml文件。很难实现灵活的调用。   roles 用于层次性、结构化地组织playbook。roles 能够根据层次型结构自动装载变量文…...

4.0 Linux进程前导知识

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 冯.诺依曼体系 CPU&#xff1a;运算器&#xff0c;控制器 输入设备&#xff1a;键盘&#xff0c;麦克风&#xff0c;摄像头&#xff0c;鼠标&#xff0c;网卡&#xff0c;磁盘等。 输出设备&#xff1a;显示器&#xff0…...

推荐一份适合所有人做的副业,尤其是程序员。

我建议每个人都去尝试一下网上接单&#xff0c;这是一个门槛低、类型多样的方式&#xff0c;尤其适合程序员&#xff01; 在接单平台上&#xff0c;你可以看到各种类型的兼职。以freelancer为例&#xff0c;你可以在这里找到技术、设计、写作等类型的兼职&#xff0c;只要发挥…...

Linux中字符设备的打开、写入

一个内核模块应该由以下几部分组成。 第一部分&#xff0c;头文件部分。一般的内核模块&#xff0c;都需要 include 下面两个头文件&#xff1a; #include <linux/module.h> #include <linux/init.h> 第二部分&#xff0c;定义一些函数&#xff0c;用于处理内核…...

3d max软件中的缓存垃圾该如何清理?

使用3d max建模到渲染操作&#xff0c;来回对效果图调整的次数过多时&#xff0c;就会出现一下看不到的垃圾缓存&#xff0c;影响保存的速度&#xff0c;影响效率&#xff01; 对于这类的3d垃圾清理的有什么高效方法呢&#xff1f; 3dmax垃圾清理的常规操作如下&#xff1a; 1、…...

11.13 牛客刷题8/10

11.13 信号完整性 指针地址 的加减&#xff0c;注意 最后转为16进制...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

FFmpeg 低延迟同屏方案

引言 在实时互动需求激增的当下&#xff0c;无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作&#xff0c;还是游戏直播的画面实时传输&#xff0c;低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架&#xff0c;凭借其灵活的编解码、数据…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

3-11单元格区域边界定位(End属性)学习笔记

返回一个Range 对象&#xff0c;只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意&#xff1a;它移动的位置必须是相连的有内容的单元格…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型&#xff08;LLM&#xff09;参数规模的增长&#xff0c;推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长&#xff0c;而KV缓存的内存消耗可能高达数十GB&#xff08;例如Llama2-7B处理100K token时需50GB内存&a…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!

简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求&#xff0c;并检查收到的响应。它以以下模式之一…...

vue3 daterange正则踩坑

<el-form-item label"空置时间" prop"vacantTime"> <el-date-picker v-model"form.vacantTime" type"daterange" start-placeholder"开始日期" end-placeholder"结束日期" clearable :editable"fal…...

【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL

ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…...

ubuntu22.04 安装docker 和docker-compose

首先你要确保没有docker环境或者使用命令删掉docker sudo apt-get remove docker docker-engine docker.io containerd runc安装docker 更新软件环境 sudo apt update sudo apt upgrade下载docker依赖和GPG 密钥 # 依赖 apt-get install ca-certificates curl gnupg lsb-rel…...