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

Git 完整操作之记录

目录

一 .   Git 基本操作流程及示例代码

1. 初始化 Git 仓库

2. 克隆远程仓库

3. 检查当前状态

4. 添加文件到暂存区

5. 提交更改

6. 查看提交历史

7. 创建分支

8. 切换分支

9. 合并分支

10. 推送更改到远程仓库

11. 拉取远程仓库的更改

12. 回滚到上一个版本

二 .  .gitignore 过滤

1. 基本语法

(1)  忽略文件夹:

(2)  忽略文件:

(3)  忽略某类型文件:

(4)  忽略特定路径的文件或文件夹:

(5)  忽略某一文件夹下的某类型文件:

2. 添加 .gitignore 文件到 Git 仓库

(1)创建或编辑 .gitignore 文件: 在项目的根目录创建 .gitignore 文件,或者编辑现有的 .gitignore 文件。

(2)将 .gitignore 文件添加到 Git 仓库:

(3)移除已被跟踪的文件或文件夹

(4)示例


一 .   Git 基本操作流程及示例代码

以下是一个完整的 Git 基本操作流程和示例代码,包含常见的 Git 命令及其使用示例。

git add .git commit -m '提交数据'git  pull origin devgit  push origin dev
1. 初始化 Git 仓库

如果您还没有 Git 仓库,可以使用以下命令初始化一个新的 Git 仓库:

git init

例如,在当前目录中初始化一个新的 Git 仓库:

mkdir myproject cd myproject git init
2. 克隆远程仓库

如果您要克隆一个现有的远程仓库,可以使用以下命令:

mkdir myproject cd myproject git init

例如,克隆一个 GitHub 仓库:

git clone https://github.com/user/repository.git
3. 检查当前状态

查看工作目录和暂存区的当前状态:

git status
4. 添加文件到暂存区

git add . 和 git add * 区别
git add . 会把本地所有untrack的文件都加入暂存区,并且会根据.gitignore做过滤

git add * 会忽略.gitignore把任何文件都加入

将文件添加到暂存区以便提交:

git add <file-name>

例如,添加一个名为 example.txt 的文件:

git add example.txt

添加所有文件:

git add .
5. 提交更改

将暂存区的更改提交到本地仓库:

git commit -m "Your commit message"
6. 查看提交历史
git log
7. 创建分支
git branch <branch-name>

例如,创建一个名为 feature-branch 的新分支:

git branch feature-branch
8. 切换分支

切换到另一个分支:

git checkout <branch-name>

例如,切换到 feature-branch 分支:

git checkout feature-branch

或者创建并切换到新分支:

git checkout feature-branch

例如:

git checkout -b new-feature
9. 合并分支

将另一个分支合并到当前分支:

git merge <branch-name>

例如,将 feature-branch 分支合并到当前分支:

git merge feature-branch
10. 推送更改到远程仓库

将本地分支推送到远程仓库:

git push origin <branch-name>

例如,将 feature-branch 分支推送到远程:

git push origin feature-branch
11. 拉取远程仓库的更改

从远程仓库拉取最新更改并合并到当前分支:

git pull

从特定分支拉取并合并:

git pull origin <branch-name>

例如,从 main 分支拉取并合并:

git pull origin main
12. 回滚到上一个版本

查看提交历史:

git log

找到目标提交哈希后,回滚到该提交:

git checkout <commit-hash>

例如,回滚到特定提交:

git checkout 1a2b3c4d

硬重置到特定提交(警告:会丢失之后的更改):

git reset --hard <commit-hash>

例如:

git reset --hard 1a2b3c4d

二 .  .gitignore 过滤

在 Git 中,使用 .gitignore 文件来过滤掉不想被跟踪的文件和文件夹

下面是一些常见的 .gitignore 文件的用法和示例规则。

1. 基本语法

(1)  忽略文件夹
/folder_name/

忽略项目根目录中的 folder_name 文件夹及其所有内容。

(2)  忽略文件
filename.ext

忽略项目中的所有 filename.ext 文件。

(3)  忽略某类型文件
*.ext

忽略项目中的所有 .ext 文件。

(4)  忽略特定路径的文件或文件夹
/path/to/folder/
/path/to/file.ext

忽略指定路径中的文件或文件夹。

(5)  忽略某一文件夹下的某类型文件
folder_name/*.ext

忽略 folder_name 文件夹中的所有 .ext 文件。

(6)  示例 .gitignore 文件

以下是一个示例 .gitignore 文件,其中包含了一些常见的过滤规则:

# Node.js
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*# Python
__pycache__/
*.py[cod]
*.egg-info/
*.egg
*.pyo# Java
*.class
*.jar
*.war
*.ear# Logs
logs/
*.log# OS generated files
.DS_Store
Thumbs.db# IDEs and editors
.idea/
.vscode/
*.swp# Compiled source
*.com
*.class
*.dll
*.exe
*.o
*.so# Static folder
/static/# Ignore specific configuration files
config/local_settings.py

2. 添加 .gitignore 文件到 Git 仓库

(1)创建或编辑 .gitignore 文件: 在项目的根目录创建 .gitignore 文件,或者编辑现有的 .gitignore 文件。
(2)将 .gitignore 文件添加到 Git 仓库
git add .gitignore
git commit -m "添加 .gitignore 文件"
git push origin <your-branch-name>
(3)移除已被跟踪的文件或文件夹

如果某些文件或文件夹已经被 Git 跟踪,需要先将它们从 Git 的索引中移除,然后再提交更改:

git rm -r --cached <path_to_file_or_folder>
git commit -m "移除已跟踪的文件或文件夹"
git push origin <your-branch-name>
(4)示例

假设您想要忽略 static.idea__pycache__ 文件夹,并且这些文件夹已经被跟踪了,可以按照以下步骤操作:

  1. 更新 .gitignore 文件

    /static/
    /.idea/
    /__pycache__/
    
  2. 移除这些文件夹的跟踪

    git rm -r --cached static
    git rm -r --cached .idea
    git rm -r --cached __pycache__
    
  3. 提交更改

    git add .gitignore
    git commit -m "删除并忽略 static、.idea 和 __pycache__ 文件夹"
    git push origin <your-branch-name>
    

这样可以确保这些文件夹在未来的操作中被 Git 忽略,并且不会再被添加到仓库中。

相关文章:

Git 完整操作之记录

目录 一 . Git 基本操作流程及示例代码 1. 初始化 Git 仓库 2. 克隆远程仓库 3. 检查当前状态 4. 添加文件到暂存区 5. 提交更改 6. 查看提交历史 7. 创建分支 8. 切换分支 9. 合并分支 10. 推送更改到远程仓库 11. 拉取远程仓库的更改 12. 回滚到上一个版本 二…...

mediaPlayer的内存泄露解决方法

MediaPlayer在Android中用于播放音频和视频。如果不正确管理&#xff0c;MediaPlayer可能会导致内存泄漏&#xff0c;尤其是当它被用于多个Activity或长时间播放时。以下是一些解决MediaPlayer内存泄漏的方法&#xff1a; ### 1. 及时释放资源 当MediaPlayer不再使用时&#x…...

delphi3层 delphi 3层

一、为DataSnap系统服务程序添加描述 procedure TServerContainer.ServiceAfterInstall(Sender: TService); var reg: TRegistry; begin reg : TRegistry.Create; try with reg do begin RootKey : HKEY_LOCAL_MACHINE; if OpenKey(SYSTEM/CurrentC…...

Python编程学习第一篇——制作一个小游戏休闲一下

到上期结束&#xff0c;我们已经学习了Python语言的基本数据结构&#xff0c;除了数值型没有介绍&#xff0c;数值型用的非常广&#xff0c;但也是最容易理解的&#xff0c;将在未来的学习中带大家直接接触和学习掌握。后续我们会开始学习这门语言的一些基础语法和编程技巧&…...

03--nginx架构实战

前言&#xff1a;这应该是nginx梳理的最后一章&#xff0c;写一些关于网站架构和网站上线的知识内容&#xff0c;主要是感觉到运维并不是单一方向的行业&#xff0c;这一章概念会有一些广泛&#xff0c;但是非常重要&#xff0c;都是这几年工作中遇到的情况&#xff0c;整理一下…...

【力扣第 400 场周赛】Leetcode 删除星号以后字典序最小的字符串

文章目录 1. 删除星号以后字典序最小的字符串 1. 删除星号以后字典序最小的字符串 题目链接 &#x1f34e; 解题思路&#xff1a;遇到 *就删除一个字符&#xff0c;为了满足题意&#xff0c;要删除字典序最小的字符&#xff0c;那么假如有多个字典序最小的字符我们该删除哪个…...

Unity DOTS技术(九) BufferElement动态缓冲区组件

文章目录 一.简介二.例子 一.简介 在之前的学习中我们发现Entity不能挂载相同的组件的. 当我们需要用相同的组件时则可以使用.IBufferElementData接口 动态缓冲区组件来实现 二.例子 1.创建IBufferElementData组件 using Unity.Entities; using UnityEngine; //[GenerateAu…...

hnust 湖南科技大学 2022 软件测试报告+代码

hnust 湖南科技大学 2022 软件测试报告代码 内容 BMI junit单元测试决策表划分方法测试三角形判断问题文档修改问题之因果图实验逻辑覆盖测试技术实验&#xff08;白盒测试&#xff09;selenium 功能自动化测试Jmeter 性能自动化测试 下载地址 https://pan.baidu.com/s/19e…...

【面试笔记】单片机软件工程师,工业控制方向(储能)

文章目录 1. 基础知识1.1 C语言笔试题1.1.1 用宏定义得到一个数组所含的元素个数1.1.2 定义函数指针从程序固定地址(0)开始执行1.1.3 volatile的含义及作用1.1.4 32位系统&#xff0c;整数7和-7&#xff0c;分别以大端和小端存储&#xff0c;请示意说明 1.2 嵌入式基础1.2.1 简…...

基于springboot实现小区团购管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现小区团购管理系统演示 摘要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装小区团购管理软件来…...

基于django | 创建数据库,实现增、删、查的功能

1、在cmd中&#xff0c;输入指令进入mysql终端&#xff1a; mysql -u 用户名 -p 2、输入mysql的密码 3、输入指令&#xff0c;显示出所有的数据库 show databases; 4、输入指令创建表&#xff1a; create table 表名 DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 5、use …...

数据结构与算法07-图

介绍 图是一种善于处理关系型数据的数据结构&#xff0c;使用它可以很轻松地表示数据之间是如何关联的。 图的实现形式有很多&#xff0c;最简单的方法之一就是用散列表。 friends { "Alice" > ["Bob", "Diana", "Fred"], &quo…...

springboot项目部署需要redis集群问题

本来直接将redis为单独启动模式转为配置 yml文件 spring.redis.cluster.nodes: 192.168.12.78:8001,192.168.12.78:8002,192.168.12.78:8003, java文件 package io.sirc.config;import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.ann…...

JVMの内存泄漏内存溢出案例分析

1、内存溢出 内存溢出指的是程序在申请内存时&#xff0c;没有足够的内存可供分配&#xff0c;导致无法满足程序的内存需求&#xff0c;常见的内存溢出情况包括堆内存溢出&#xff08;Heap Overflow&#xff09;和栈溢出&#xff08;Stack Overflow&#xff09;&#xff1a; …...

v31支架固定方式

CK_Label_v31 夹子固定方式 底座粘贴固定方式...

Jenkins从入门到精通面试题及参考答案(3万字长文)

目录 什么是Jenkins? Jenkins是如何工作的? Jenkins与持续集成(CI)有什么关系?...

如何使用电阻器?创建任何电阻的简单过程

您可能有一整盒E12 系列电阻器&#xff0c;但仍然无法获得足够接近您所需电阻的值。如果您需要 50 kΩ 电阻&#xff0c;接近的电阻是 47 kΩ。当然&#xff0c;这个误差在 10% 以内&#xff0c;但这对于您的应用程序来说可能还不够好。你会怎样做&#xff1f; 本文将介绍一个…...

学Python,看一篇就够

学Python&#xff0c;看一篇就够 python基础注释变量标识符命名规则使用变量认识bugDebug工具打断点 数据类型输出转义字符输入输入语法输入的特点 转换数据类型pycharm交互运算符的分类赋值运算符复合赋值运算符比较运算符逻辑运算符拓展 条件语句单分支语法多分支语法拓展 if…...

数据仓库核心:维度表设计的艺术与实践

文章目录 1. 引言1.1基本概念1.2 维度表定义 2. 设计方法2.1 选择或新建维度2.2 确定维度主维表2.3 确定相关维表2.14 确定维度属性 3. 维度的层次结构3.1 举个例子3.2 什么是数据钻取&#xff1f;3.3 常见的维度层次结构 4. 高级维度策略4.1 维度整合维度整合&#xff1a;构建…...

SQL实验 连接查询和嵌套查询

一、实验目的 1&#xff0e;掌握Management Studio的使用。 2&#xff0e;掌握SQL中连接查询和嵌套查询的使用。 二、实验内容及要求&#xff08;请同学们尝试每道题使用连接和嵌套两种方式来进行查询&#xff0c;如果可以的话&#xff09; 1&#xff0e;找出所有任教“数据…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控&#xff0c;故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令&#xff1a;jps [options] [hostid] 功能&#xff1a;本地虚拟机进程显示进程ID&#xff08;与ps相同&#xff09;&#xff0c;可同时显示主类&#x…...

Python 包管理器 uv 介绍

Python 包管理器 uv 全面介绍 uv 是由 Astral&#xff08;热门工具 Ruff 的开发者&#xff09;推出的下一代高性能 Python 包管理器和构建工具&#xff0c;用 Rust 编写。它旨在解决传统工具&#xff08;如 pip、virtualenv、pip-tools&#xff09;的性能瓶颈&#xff0c;同时…...

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 思路 右视图是指从树的右侧看&#xff0c;对于每一层&#xff0c;只能看到该层最右边的节点。实现思路是&#xff1a; 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

NPOI Excel用OLE对象的形式插入文件附件以及插入图片

static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...

【无标题】湖北理元理律师事务所:债务优化中的生活保障与法律平衡之道

文/法律实务观察组 在债务重组领域&#xff0c;专业机构的核心价值不仅在于减轻债务数字&#xff0c;更在于帮助债务人在履行义务的同时维持基本生活尊严。湖北理元理律师事务所的服务实践表明&#xff0c;合法债务优化需同步实现三重平衡&#xff1a; 法律刚性&#xff08;债…...

【Kafka】Kafka从入门到实战:构建高吞吐量分布式消息系统

Kafka从入门到实战:构建高吞吐量分布式消息系统 一、Kafka概述 Apache Kafka是一个分布式流处理平台,最初由LinkedIn开发,后成为Apache顶级项目。它被设计用于高吞吐量、低延迟的消息处理,能够处理来自多个生产者的海量数据,并将这些数据实时传递给消费者。 Kafka核心特…...