当前位置: 首页 > 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进制...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势&#xff1a;专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发&#xff0c;是一款收费低廉但功能全面的Windows NAS工具&#xff0c;主打“无学习成本部署” 。与其他NAS软件相比&#xff0c;其优势在于&#xff1a; 无需硬件改造&#xff1a;将任意W…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

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

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

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

网站指纹识别

网站指纹识别 网站的最基本组成&#xff1a;服务器&#xff08;操作系统&#xff09;、中间件&#xff08;web容器&#xff09;、脚本语言、数据厍 为什么要了解这些&#xff1f;举个例子&#xff1a;发现了一个文件读取漏洞&#xff0c;我们需要读/etc/passwd&#xff0c;如…...

Java编程之桥接模式

定义 桥接模式&#xff08;Bridge Pattern&#xff09;属于结构型设计模式&#xff0c;它的核心意图是将抽象部分与实现部分分离&#xff0c;使它们可以独立地变化。这种模式通过组合关系来替代继承关系&#xff0c;从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

音视频——I2S 协议详解

I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议&#xff0c;专门用于在数字音频设备之间传输数字音频数据。它由飞利浦&#xff08;Philips&#xff09;公司开发&#xff0c;以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist

现象&#xff1a; android studio报错&#xff1a; [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决&#xff1a; 不要动CMakeLists.…...

如何在Windows本机安装Python并确保与Python.NET兼容

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…...