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 忽略,并且不会再被添加到仓库中。

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

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

相关文章

mysql中事务的简介

大家好。我们在日常开发过程中肯定都或多或少的用到过事务&#xff0c;而且在面试时&#xff0c;数据库的事务也是必问内容之一。今天我们就来说说mysql的事务。 为了方便我们下面内容的讲解&#xff0c;我们也先建立一个讲事务必用的表–account表&#xff0c;并在表中插入两…

基于centos7打包当前环境的系统为iso镜像文件

1. 准备工作 1.下载安装mondo 切换到root用户&#xff0c;进入yum下载库 # cd /etc/yum.repos.d # wget ftp://ftp.mondorescue.org/centos/7/x86_64/mondorescue.repo 打开文件mondorescue.repo&#xff0c;修改gpgcheck属性为0&#xff0c;指定mondorescue.repo安装 # 安…

【Python数据挖掘实战案例】机器学习LightGBM算法原理、特点、应用---基于鸢尾花iris数据集分类实战

一、引言 1、简要介绍数据挖掘的重要性和应用 在数字化时代&#xff0c;数据已经成为企业和社会决策的重要依据。数据挖掘作为一门交叉学科&#xff0c;结合了统计学、机器学习、数据库技术和可视化等多个领域的知识&#xff0c;旨在从海量数据中提取有价值的信息&#xff0c…

生命在于学习——Python人工智能原理(3.2)

三、深度学习 &#xff08;二&#xff09;人工神经网络 人工神经网络是模仿人类大脑神经系统工作原理所创建的数学模型&#xff0c;有并行的分布处理能力、高容错性和自我学习等特征。 1、感知器 感知器由Frank Roseblatt于1957年提出&#xff0c;是一种广泛使用的线性分类…

RPC框架原理(一)

RPC框架原理 网络和IO的关系&#xff0c;IO&#xff08;input和output&#xff09;面向的是谁&#xff1f;OSI 7层参考模型&#xff0c;TCP/IP协议为什么会出现一个会话层三次握手socket心跳keep alive四次挥手 网络IO&#xff08;IO模型&#xff09; IO框架底层 学习顺序&…

GaussDB技术解读——GaussDB架构介绍(一)

目录 1 GaussDB 关键架构目标 2 GaussDB分布式架构 2.1 GaussDB 分布式关键技术架构 3 数据计算路由层&#xff08;Coordinator&#xff09;关键技术方案 3.1 分布式优化器 3.2 分布式执行框架 GaussDB是华为自主创新研发的关系型数据库&#xff0c;基于华为在数据库领域…

api接口模块封装

1&#xff1a;前端封装接口 前端请求的统一封装也是为了方便前端项目的请求维护起来更加方便&#xff0c;将页面中的请求封装到js文件中&#xff0c;不同的页面需要用到相同的请求可以直接进行复用。 第一步创建一个api文件夹和js文件 第二步&#xff1a;在文件中导入axios&am…

为什么投资气膜网球馆是明智之选—轻空间

在现代体育产业快速发展的背景下&#xff0c;投资体育场馆成为许多投资者关注的焦点。其中&#xff0c;气膜网球馆以其独特的优势和广泛的市场需求&#xff0c;逐渐成为投资者的热门选择。那么&#xff0c;为什么投资气膜网球馆是一个明智之选呢&#xff1f; 1. 建设周期短&…

SpringBoot+Vue幼儿园管理系统(前后端分离)

技术栈 JavaSpringBootMavenMyBatisMySQLVueElement-UI 系统角色 教师用户管理员 功能截图

JAVA小案例-输出100-150中能被3整除的数,每5个换行

JAVA小案例-输出100-150中能被3整除的数&#xff0c;每5个换行 代码如下&#xff1a; public class Continue {/*** continue练习&#xff0c;输出100-150中能被3整除的数&#xff0c;每5个换行* param args*/public static void main(String[] args) {int count 0;//计数器…

【全开源】数据大屏系统源码(ThinkPHP+FastAdmin)

&#x1f4c8;数据大屏系统&#xff1a;可视化数据的魅力舞台&#x1f5a5; 基于ThinkPHPFastAdmin开发的数据大屏&#xff0c;可视化义拖拽快速制作数据大屏/科技大屏&#xff0c; 内置30组件、获取实时数据、使用简单易上手&#xff0c;轻松实现图形数据统计等。​ 一、引言…

docker安装mysql8.0教程

文章目录 ①&#xff1a;环境准备②&#xff1a;docker安装③&#xff1a;mysql8.0.36安装④&#xff1a;mysql8.0.36容器启动 ①&#xff1a;环境准备 如果你的云主机已经有下面的这些基础软件包请忽略 假设新拿到一台机器&#xff0c;为了以后使用命令方便&#xff0c;先安…

03--nginx架构实战

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

【设计模式】JAVA Design Patterns——Private Class Data(私有类数据设计模式)

&#x1f50d;目的 私有类数据设计模式试图通过限制属性的可见性来减少属性的暴露。 通过将它们封装在单个Data对象中&#xff0c;可以减少类属性的数量。 &#x1f50d;解释 真实世界例子 想象一下你在为家人做晚餐炖汤。你想阻止家庭成员在你烹饪时偷偷品尝菜品&#xff0c;否…

C#WPF数字大屏项目实战08--生产量/良品统计

1、区域划分 生产量/良品统计这部分位于第二列的第二行 2、livechart拆线图 定义折线图,如下: <lvc:CartesianChart> <lvc:CartesianChart.Series> <!--设置Series的类型为 Line 类型, 该类型提供了一些折线图的实现--> <lvc:LineSeries/>…

什么是Vector Database(向量数据库)?

什么是Vector Database(向量数据库)&#xff1f; 向量数据库是向量嵌入的有组织的集合&#xff0c;可以随时创建、读取、更新和删除。向量嵌入将文本或图像等数据块表示为数值。 文章目录 什么是Vector Database(向量数据库)&#xff1f;什么是嵌入模型(Embedding Model)&…

如何在JVM中基于引用计数法实现GC

一. 为什么使用RC 再Java虚拟机中&#xff0c;目前广泛使用的是引用计数法&#xff0c;具体详细请见&#xff1a;说说JVM的垃圾回收机制-CSDN博客 而为什么我使用引用计数来实现gc呢&#xff1f;其一是因为可达性分析法中我们需要先收集根集对象&#xff0c;GC roots主要包括&a…

idea 常用插件推荐

文章目录 1、Lombok2、Convert YAML and Properties File3、Grep Console4、MyBatisX5、Free MyBatis Tool6、MyBatis Log EasyPlus &#xff08;SQL拼接&#xff09;7、MyBatisPlus8、Eclipse theme9、Eclipse Plus Theme10、Rainbow Brackets Lite - Free and OpenSource&…

操作系统教材第6版——个人笔记3

2.1 处理器 2.1.1 处理器与寄存器 处理器部件的简单示意 用户程序可见寄存器 可以使程序员减少访问主存储器的次数&#xff0c;提高指令执行的效率所有程序可使用&#xff0c;包括应用程序和系统程序数据寄存器&#xff1a;又称通用寄存器地址寄存器&#xff1a;索引、栈指针…

Linux基础知识(十二)

1.新建用户 1)useradd 2)passwd 2.完成的操作 1&#xff09;/etc/passwd添加一行 2&#xff09;/etc/shadow添加一行 3&#xff09;/etc/group添加一行 4&#xff09;创建家目录 5&#xff09;创建用户邮件文件 例&#xff1a;创建用户jerry 要求&#xff1a;UID:777 主…