【第三节】Git 基本操作指南

目录

前言

一、获取与创建项目

1.1 git init

1.2 git clone

二、基本快照操作

2.1 git add

2.2 git status

2.3 git diff

2.4 git commit

2.5 git reset HEAD

三、 文件管理

3.1 git rm

3.2 git mv

四、Git 文件状态

5.1 工作目录

5.2 暂存区

5.3 本地仓库

5.4 文件状态的转换流程

五、Git 常用命令总结


前言

        本文将详细介绍 Git 的基本操作,包括如何创建和保存项目快照、如何获取和创建项目、以及如何管理项目的文件和提交记录。通过本文,您将掌握 Git 的核心命令和操作流程,从而更好地管理您的项目。

        Git 常用的是以下 6 个命令:git clonegit pushgit addgit commitgit checkoutgit pull,后面我们会详细介绍。

一、获取与创建项目

1.1 git init

        `git init` 命令用于在本地目录中创建一个新的 Git 仓库。该命令会将当前目录初始化为一个 Git 仓库,并生成一个 `.git` 子目录,用于存储项目的快照数据。

**示例:**

$ mkdir runoob
$ cd runoob/
$ git init
Initialized empty Git repository in /Users/tianqixin/www/runoob/.git/

        执行 `git init` 后,当前目录中会生成一个 `.git` 目录,表示 Git 仓库已成功创建。

1.2 git clone

        `git clone` 命令用于从远程仓库复制一个项目到本地。通过该命令,您可以获取项目的完整历史记录,并开始进行修改或查看。

**示例:**

$ git clone git@github.com:schacon/simplegit.git
Cloning into 'simplegit'...
remote: Counting objects: 13, done.
remote: Total 13 (delta 0), reused 0 (delta 0), pack-reused 13
Receiving objects: 100% (13/13), done.
Resolving deltas: 100% (2/2), done.
Checking connectivity... done.

        克隆完成后,当前目录下会生成一个与远程仓库同名的目录。

二、基本快照操作

2.1 git add

        `git add` 命令用于将文件添加到暂存区(staging area)。暂存区是 Git 中用于保存即将提交的文件的区域。

**示例:**

$ touch README
$ touch hello.php
$ git add README hello.php

        执行 `git add` 后,文件会被添加到暂存区,等待提交。

2.2 git status

        `git status` 命令用于查看当前项目的文件状态。通过该命令,您可以了解哪些文件已被修改、哪些文件已被暂存,以及哪些文件尚未被跟踪。

**示例:**

$ git status -s
A  README
A  hello.php

2.3 git diff

        `git diff` 命令用于查看文件的修改内容。它可以显示已暂存与未暂存的改动,帮助您了解项目的变更情况。

**示例:**

$ git diff
diff --git a/hello.php b/hello.php
index e69de29..69b5711 100644
--- a/hello.php
+++ b/hello.php
@@ -0,0 +1,3 @@
+<?php
+echo '菜鸟教程:www.runoob.com';
+?>

2.4 git commit

        `git commit` 命令用于将暂存区的内容提交到本地仓库。每次提交都会生成一个快照,记录项目的当前状态。

**示例:**

$ git commit -m '第一次版本提交'
[master (root-commit) d32cf1f] 第一次版本提交2 files changed, 4 insertions(+)create mode 100644 READMEcreate mode 100644 hello.php

2.5 git reset HEAD

        `git reset HEAD` 命令用于取消已暂存的文件。通过该命令,您可以将文件从暂存区移除,但保留在工作目录中。

**示例:**

$ git reset HEAD hello.php
Unstaged changes after reset:
M    hello.php

三、 文件管理

3.1 git rm

        `git rm` 命令用于从 Git 仓库中移除文件。该命令会将文件从暂存区和工作目录中删除。

**示例:**

$ git rm hello.php
rm 'hello.php'
$ ls
README

3.2 git mv

`git mv` 命令用于移动或重命名文件。通过该命令,您可以轻松地对文件进行重命名或移动操作。

**示例:**

$ git mv README README.md
$ ls
README.md

四、Git 文件状态

        Git 的文件状态分为三种:工作目录(Working Directory)、暂存区(Staging Area)、本地仓库(Local Repository)。了解这些概念及其交互方式是掌握 Git 的关键。

5.1 工作目录

工作目录是你在本地计算机上看到的项目文件。它是你实际操作文件的地方,包括查看、编辑、删除和创建文件。所有对文件的更改首先发生在工作目录中。

在工作目录中的文件可能有以下几种状态:

  • 未跟踪(Untracked):新创建的文件,未被 Git 记录。

  • 已修改(Modified):已被 Git 跟踪的文件发生了更改,但这些更改还没有被提交到 Git 记录中。

5.2 暂存区

暂存区,也称为索引(Index),是一个临时存储区域,用于保存即将提交到本地仓库的更改。你可以选择性地将工作目录中的更改添加到暂存区中,这样你可以一次提交多个文件的更改,而不必提交所有文件的更改。

示例:

bash

复制

git add <filename>  # 添加指定文件到暂存区
git add .           # 添加所有更改到暂存区

5.3 本地仓库

本地仓库是一个隐藏在 .git 目录中的数据库,用于存储项目的所有提交历史记录。每次你提交更改时,Git 会将暂存区中的内容保存到本地仓库中。

示例:

bash

复制

git commit -m "commit message"  # 提交暂存区的更改到本地仓库

5.4 文件状态的转换流程

  1. 未跟踪(Untracked):新创建的文件最初是未跟踪的。

  2. 已跟踪(Tracked):通过 git add 命令将未跟踪的文件添加到暂存区后,文件变为已跟踪状态。

  3. 已修改(Modified):对已跟踪的文件进行更改后,这些更改会显示为已修改状态。

  4. 已暂存(Staged):使用 git add 命令将修改过的文件添加到暂存区后,文件进入已暂存状态。

  5. 已提交(Committed):使用 git commit 命令将暂存区的更改提交到本地仓库后,这些更改被记录下来

五、Git 常用命令总结

git 创建仓库的命令: 

创建与提交快照的命令:

提交日志:

远程操作:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/491773.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

el-table 多表头+跨行跨列案例

效果&#xff1a; 代码&#xff1a; index.vue <template><div class"my-table"><el-tablev-loading"table.loading":data"table.data"bordersize"mini":header-cell-style"headerCellStyle":span-method&qu…

华为FreeBuds Pro 4丢了如何找回?(附查找功能使用方法)

华为FreeBuds Pro 4查找到底怎么用&#xff1f;华为FreeBuds Pro 4有星闪精确查找和离线查找&#xff0c;离线查找功能涵盖播放铃声、导航定位、星闪精确查找、上线通知、丢失模式、遗落提醒等。星闪精确查找是离线查找的子功能&#xff0c;当前仅华为FreeBuds Pro 4充电盒支持…

游戏引擎学习第43天

仓库 https://gitee.com/mrxiao_com/2d_game 介绍运动方程 今天我们将更进一步&#xff0c;探索运动方程&#xff0c;了解真实世界中的物理&#xff0c;并调整它们&#xff0c;以创建一种让玩家感觉愉悦的控制体验。这并不是在做一个完美的物理模拟&#xff0c;而是找到最有趣…

jenkins 出现 Jenkins: 403 No valid crumb was included in the request

文章目录 前言解决方式:1.跨站请求为找保护勾选"代理兼容"2.全局变量或者节点上添加环境变量3.&#xff08;可选&#xff09;下载插件 the strict Crumb Issuer plugin4.重启 前言 jenkins运行时间长了&#xff0c;经常出现点了好几次才能构建&#xff0c;然后报了Je…

SpringAI人工智能开发框架001---SpringAI框架介绍_支持文本到图像_音频到文本_聊天模型_嵌入模型_项目搭建

可以看到官网 SpringAi可以用来对接很多大模型,当然 SpringAI不支持国内大模型,但是SpringAI Alibaba可以,后面会写一个如何使用 SpringAI Alibaba的文章,很简单. 可以看到官网的介绍. 可以看到SpringAI 支持的模型. 有很多国外的.

【实验】【H3CNE邓方鸣】交换机端口安全实验+2024.12.11

实验来源&#xff1a;邓方鸣交换机端口安全实验 软件下载&#xff1a; 华三虚拟实验室: 华三虚拟实验室下载 wireshark&#xff1a;wireshark SecureCRT v8.7 版本: CRT下载分享与破解 文章目录 dot1x 开启802.1X身份验证 开启802.1X身份验证&#xff0c;需要在系统视图和接口视…

Web页面的请求历程

文章目录 1 因特网协议栈2 Web页面的请求历程 1 因特网协议栈 协议栈常用协议应用层HTTP协议、DNS协议、DHCP协议传输层TCP协议、UDP协议网络层IP协议、NAT协议、ICMP协议、BGP协议、OSPF协议数据链路层ARP协议、以太网协议物理层各种电气特性的规定等 2 Web页面的请求历程 …

Redis - 消息队列 Stream

一、概述 消息队列 定义 消息队列模型&#xff1a;一种分布式系统中的消息传递方案&#xff0c;由消息队列、生产者和消费者组成消息队列&#xff1a;负责存储和管理消息的中间件&#xff0c;也称为消息代理&#xff08;Message Broker&#xff09;生产者&#xff1a;负责 产…

从构想到实现:EasyOne 多模态 AI 产品开发历程

在人工智能技术飞速发展的今天&#xff0c;智能产品和服务已经从单一的应用向多模态智能系统进化。随着大语言模型、计算机视觉、语音识别等领域的突破&#xff0c;开发集成多种 AI 技术的平台变得日益重要。为此&#xff0c;我们开发了 EasyOne&#xff0c;一个全新的 AI 多模…

【深度学习总结】使用PDF构建RAG:结合Langchain和通义千问

【深度学习总结】使用PDF构建RAG&#xff1a;结合Langchain和通义千问 使用平台&#xff1a;趋动云&#xff0c;注册送算力 前言 在大型语言模型&#xff08;LLMs&#xff09;应用领域&#xff0c;我们面临着大量挑战&#xff0c;从特定领域知识的匮乏到信息准确性的窘境&am…

ubuntu监测硬盘状态

安装smartmontools smartctl -l error /dev/sdk smartctl -i /dev/sda lshw -class disk smartctl -H /dev/sd 结果1&#xff1a; 结果2&#xff1a;PASSED&#xff0c;这表示硬盘健康状态良好 smartctl -a /dev/sdb sdk lsblk blkid 测试写入速度 time dd if/dev/zero of…

易语言OCR证件照文字识别

一.引言 文字识别&#xff0c;也称为光学字符识别&#xff08;Optical Character Recognition, OCR&#xff09;&#xff0c;是一种将不同形式的文档&#xff08;如扫描的纸质文档、PDF文件或数字相机拍摄的图片&#xff09;中的文字转换成可编辑和可搜索的数据的技术。随着技…

【智体OS】官方上新发布智体机器人:使用rtrobot智体应用远程控制平衡车机器人

【智体OS】官方上新发布智体机器人&#xff1a;使用rtrobot智体应用远程控制平衡车机器人 dtns.network是一款主要由JavaScript编写的智体世界引擎&#xff08;内嵌了three.js编辑器的定制版-支持以第一视角浏览3D场馆&#xff09;&#xff0c;可以在浏览器和node.js、deno、e…

Three使用WebGPU的关键TSL

Three.js 使用 WebGPU 的关键 TSL TSL: three.js shader language 介绍 three.js 材质转为webgpu的关键流程, 从而引出 TSL. 1、关键类关系 WebGPURenderer|-- library: StandardNodeLibrary|-- _nodes: Nodes|-- _objects: RenderObjects|-- createRenderObject()StandardN…

东方通TongWeb7.0.4.9M4部署SuperMap iServer 11.2.1

一、软件版本 操作系统: CentOS Linux release 7.5.1804 (Core)JDK:11.0.18东方通&#xff1a;TongWeb7.0.4.9M4SuperMap iServer&#xff1a;11.2.1 JDK和TongWeb软件分享&#xff1a; 链接: https://pan.baidu.com/s/1HGDTPnPID0PEOMbg3FjTVQ?pwdbh8v 提取码: bh8v 东方通软…

医学预测模型的网页应用必要模块设计(重制版)

医学预测模型的网页应用必要模块设计&#xff08;重制版&#xff09; 刘岳鹏 摘要&#xff1a; 网页应用&#xff08;Web APP&#xff09;承载医学临床预测模型并在临床实践中实现与用户的互动&#xff0c;必要的功能模块设计将有助于Web APP更好地在临床实践中发挥其功能。在此…

【C++】反向输出一个四位数的深入探讨

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;问题描述&#x1f4af;我的实现方案代码实现核心思路解析示例执行过程 &#x1f4af;老师的实现方案代码实现代码特点与分析执行流程示例代码对比与深入分析 &#x1f4af;…

Android中坐标体系知识超详细讲解

说来说去都不如画图示意简单易懂啊&#xff01;&#xff01;&#xff01;真是的&#xff01; 来吧先上张图&#xff01; &#xff08;一&#xff09;首先明确一下android 中的坐标系统&#xff1a; 屏幕的左上角是坐标系统原点&#xff08;0,0&#xff09; 原点向右延伸是X轴正…

泷羽sec学习打卡-brupsuite7搭建IP炮台

声明 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都 与本人无关,切莫逾越法律红线,否则后果自负 关于brupsuite的那些事儿-Brup-IP炮台搭建 搭建炮台服务端安装zmap1、更新系统和安装基础依赖&#xff…

【视频异常检测】Real-Time Anomaly Detection and Localization in Crowded Scenes 论文阅读

文章信息&#xff1a; 发表于&#xff1a;CVPR2015&#xff08;workshop&#xff09; 原文链接&#xff1a;https://www.cv-foundation.org/openaccess/content_cvpr_workshops_2015/W04/papers/Sabokrou_Real-Time_Anomaly_Detection_2015_CVPR_paper.pdf Real-Time Anomaly D…