Git系列:git add 被忽视的操作技巧

news2024/9/24 13:26:18

在这里插入图片描述
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
在这里插入图片描述

  • 推荐:「stormsha的主页」👈,持续学习,不断总结,共同进步,为了踏实,做好当下事儿~
  • 专栏导航
    • Python面试合集系列:Python面试题合集,剑指大厂
    • GO基础学习笔记系列:记录博主学习GO语言的笔记,该笔记专栏尽量写的试用所有入门GO语言的初学者
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 运维系列:总结好用的命令,高效开发
    • 算法与数据结构系列:总结数据结构和算法,不同类型针对性训练,提升编程思维

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

💖The Start💖点点关注,收藏不迷路💖

📒文章目录

  • Git Add: 掌握高效的版本控制技巧
    • 引言
    • git add的基本用法
    • 高级使用技巧
      • 1. 交互式添加
      • 2. 部分提交
      • 3. 使用.hgignore文件
      • 4. 修复错误提交
      • 5. 保留工作区的状态
      • 6. 使用预提交钩子
    • 实战案例
    • 结语
    • 参考文献


在这里插入图片描述

Git Add: 掌握高效的版本控制技巧

在软件开发过程中,版本控制是不可或缺的一部分。Git作为目前最流行的分布式版本控制系统,其强大的功能和灵活性为开发者提供了极大的便利。而git add命令,作为Git中用于添加文件到暂存区的基本操作,其使用技巧对于提高开发效率至关重要。本文将深入探讨git add的高级使用技巧,旨在帮助中高级开发者更高效地进行版本控制。

以下是 git add 命令的常用参数及其说明:

  • -f, --force:允许添加被 Git 忽略的文件。这通常用于取消 .gitignore 文件中指定的忽略规则。

  • -h, --help:显示帮助信息。

  • -i, --interactive:进入交互式模式,允许用户选择性地添加更改。

  • -n, --dry-run:不实际添加文件,仅显示将要被添加的内容。

  • -p, --patch:进入交互式打补丁模式,允许用户选择性地添加部分文件内容的更改。

  • -u, --update:仅用于更新已经被跟踪的文件。这将不会添加新的未跟踪文件。

  • -A, --all:添加所有更改过的文件到暂存区,包括新文件和已经被删除的文件。

  • -v, --verbose:提供更详细的输出信息,显示每个被添加的文件。

  • --edit:允许用户编辑将要被添加的文件列表。

  • --intent-to-add:用于添加新文件,但不立即跟踪它们,直到下一次提交。

  • -N, --no-allow-untracked:不允许添加未跟踪的新文件。

  • --chmod:为添加的文件设置模式,例如 +x 可以给文件添加执行权限。

  • --pathspec-from-file=<file>:从指定的文件中读取路径规格。

  • --no-fallback:当路径规格无效时,不将路径规格作为文件名。

这些参数可以根据不同的使用场景和需求,帮助开发者更精确地控制哪些更改被添加到暂存区。在使用 git add 时,可以根据需要组合使用这些参数。

引言

在Git的工作流程中,我们通常需要经历以下几个步骤:工作区修改、暂存区添加、提交到仓库、以及最终的推送到远程仓库。git add命令正是这一流程中的关键一环,它负责将工作区的修改标记为下次提交的一部分。理解并掌握git add的高级使用技巧,可以显著提升代码管理的效率和质量。

git add的基本用法

在深入高级技巧之前,让我们先回顾一下git add的基本用法:

  1. 添加指定文件到暂存区:

    git add <文件路径>
    
  2. 添加多个文件到暂存区:

    git add <文件1> <文件2> ...
    
  3. 添加当前目录下的所有文件和子目录到暂存区:

    git add .
    

高级使用技巧

1. 交互式添加

Git提供了一个交互式界面,可以通过git add -igit add --interactive命令进入。这个界面允许开发者选择性地添加文件或文件的一部分到暂存区。

2. 部分提交

有时候,你可能只想提交一个文件的某一部分更改。Git允许你使用git add -pgit add --patch来逐步添加这些更改。

3. 使用.hgignore文件

通过.gitignore文件,你可以指定Git忽略某些文件或目录,不将它们添加到版本控制中。这是一个非常有用的功能,可以避免将不必要的文件(如日志文件、编译产物等)添加到仓库。

4. 修复错误提交

如果你错误地将某些文件添加到了暂存区,可以使用git reset <文件路径>来撤销这些添加。如果需要撤销所有暂存区的更改,可以使用git reset

5. 保留工作区的状态

在开发过程中,你可能需要切换分支,但又不想提交当前的工作。这时,可以使用git stash命令临时存储工作进度,然后在新分支上使用git stash pop恢复。

6. 使用预提交钩子

Git允许你通过钩子(hooks)来自动化一些流程。例如,你可以设置一个预提交钩子,自动运行代码检查或测试,确保提交的质量。

实战案例

让我们通过一个实际的开发场景来展示git add的高级技巧如何应用:

假设你正在开发一个新功能,并且已经完成了大部分的代码。但是,你发现还有一个小bug需要修复,而这个bug的修复并不影响当前功能的提交。这时,你可以使用部分提交的功能,只将新功能的相关代码添加到暂存区,而将bug修复的部分留在工作区。

# 仅添加新功能的文件到暂存区
git add -p <新功能文件>

# 修复bug,但不添加到暂存区
# ...

# 再次使用部分提交,添加bug修复的代码
git add -p <bug修复文件>

结语

git add命令虽然简单,但其背后的高级技巧却能极大地提升我们的开发效率。通过本文的介绍,希望每位开发者都能更加熟练地运用git add,从而在版本控制的道路上走得更远。

参考文献

  • Git官方文档
  • Pro Git 书籍

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏、分享下吧,非常感谢!👍 👍 👍

🔥🔥🔥道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

💖The End💖点点关注,收藏不迷路💖

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

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

相关文章

C语言——栈和队列

文章目录 一、栈1. 栈的概念2. 栈的基本功能3. 栈的实现 二、 队列1. 队列的概念2. 队列的基本功能3. 队列的实现 一、栈 1. 栈的概念 栈是一种特殊的线性表&#xff0c;限定仅在表尾进行插入和删除的线性表。这一端称之为栈顶&#xff0c;另一端称为栈底。 栈又称为后进先出…

python将两张图片对齐

目录 需要对齐的照片如下&#xff1a; 源码&#xff1a; 结果&#xff1a; 需要对齐的照片如下&#xff1a; 源码&#xff1a; import cv2 import numpy as np from matplotlib import pyplot as plt# 读取两张图片 imgA cv2.imread(./out/out/3.png) imgB cv2.imread(./…

工具:资源包提取

1.提取unity资源包的工具 一定要通过文件夹的方式选择unity文件否则导出来后的资源不完整

锚点组件--支持点击、滚动高亮锚点

实现一个锚点组件&#xff0c;页面滚动时高亮当前位置锚点、点击锚点时跳转到指定冒点位置&#xff0c;同时选中锚点也高亮 效果图 父组件 import ./index.less; import Anchor from ./Anchor; import Content from ./Content;export default function index() {return (<…

rocketmq的流程

生产过程 消费过程 存储 在RocketMQ中&#xff0c;一个Broker的所有Topic的消息都会被写入到同一个CommitLog文件中。 每个队列&#xff08;Queue&#xff09;都有对应的ConsumeQueue文件。 ConsumeQueue每个记录定长&#xff0c;20字节&#xff0c;消息在commitlog中的偏移量…

【软件的安装与基本设置】AD21软件的PCB规则设置

在绘制PCB之前&#xff0c;要进行规则的创建&#xff0c;因为在绘制PCB的过程中&#xff0c;难免会出现很多错误&#xff0c;所以需要先对绘制PCB创建规则&#xff0c;即所有的打孔&#xff0c;走线&#xff0c;铺铜都要基于电气性能规则去设计&#xff0c;等到后期&#xff0c…

[vue] nvm

nvm ls // 看安装的所有node.js的版本nvm list available // 查显示可以安装的所有node.js的版本可以在可选列表里。选择任意版本安装&#xff0c;比如安装16.15.0 执行&#xff1a; nvm install 16.15.0安装好了之后。可以执行&#xff1a; …

云服务器修改端口通常涉及几个步骤

云服务器修改端口通常涉及几个步骤 远程连接并登录到Linux云服务器&#xff1a; 使用SSH工具&#xff08;如PuTTY、SecureCRT等&#xff09;远程连接到云服务器。 输入云服务器的IP地址、用户名和密码&#xff08;或密钥&#xff09;进行登录。 修改SSH配置文件&#xff1a…

智能数据提取:在严格数据治理与安全标准下的实践路径

一、引言 随着信息技术的飞速发展&#xff0c;数据已成为企业最宝贵的资产之一。然而&#xff0c;数据量的爆炸式增长和数据格式的多样化&#xff0c;使得传统的数据提取方法变得效率低下且难以满足业务需求。智能数据提取技术应运而生&#xff0c;它通过应用人工智能和机器学…

Unity里的Time

Time and frame rate management Time类&#xff1a; Time script reference page. 一些常见的属性有&#xff1a; Time.time 返回从游戏开始经历的时间.Time.deltaTime 返回从上帧结束到现在经历的时间&#xff0c;和帧率成反比Time.timeScale 控制时间流逝的因子Time.fixe…

一个制剂生产人眼中的精益管理

精益管理&#xff08;Lean Management&#xff09;是一种通过减少浪费和提高价值创造的方法&#xff0c;广泛应用于各个行业中&#xff0c;包括药品制剂生产领域。 本文&#xff0c;以一个多年从事药品制剂生产的人的角度&#xff0c;从优点、功能以及与其他管理方法的比较等方…

交通灯-设计说明书

设计摘要&#xff1a; 本设计基于单片机技术&#xff0c;旨在实现智能化交通信号控制&#xff0c;并具备夜间模式、禁止通行模式、同行模式切换以及车流量监测功能。通过按键S1和S2实现夜间模式和禁止通行模式的切换&#xff0c;确保夜间交通安全和禁止通行的需要。按键S3和S4…

阿里云OSS如果指定某个文件夹给子账户

** 第一步创建子账号 ** 创建完用户不要给任何权限&#xff01; 当前页面切换到认证管理获取AccessKey即可 第二步目录授权 找到对应桶文件目录 上面授权按钮操作 选择添加的子账号账号保存即可&#xff01;

springmvc核心流程

核心流程及配置 核心流程 执行流程 用户发送请求到DispatcherServlet前端控制器&#xff0c;前端控制器收到请求后自己不进行处理&#xff0c;而是委托给其他的解析器进行处理&#xff0c;作为统一访问点&#xff0c;进行全局的流程控制 DispatcherServlet调用HandlerMapping映…

电机完美控制的感觉如何【应用案例】

当电机控制技术成为人体的一部分时&#xff0c;对控制系统的组件尺寸和可靠性要求将极大提高。得益于集成式FOC控制系统组件&#xff0c;第一款具有两个活动关节的义肢得以在短时间内完成—— 赶上在苏黎世举办的全球半机械人奥运会(Cybathlon)。 失去肢体显然会对一个人的生活…

社交媒体的探索者:探寻Facebook的发展历程

在当今数字化时代&#xff0c;社交媒体已经成为了人们日常生活中不可或缺的一部分&#xff0c;而Facebook作为最具影响力的社交平台之一&#xff0c;其发展历程承载着无数的探索与创新。本文将深入探讨Facebook的发展历程&#xff0c;从其创立初期到如今的全球化影响&#xff0…

MySQL深入理解MVCC机制(详解)

深入理解MVCC 1、MVCC定义 MVCC:Multi-Version Concurrency Control&#xff0c;多版本并发控制机制。 在mysql中&#xff0c;为了满足事务的四大特性之一的隔离性&#xff0c;就是当前事务中的查询的数据不受其他事务的增删改操作的影响&#xff0c;因此mysql主要是通过这个…

智能鱼缸-设计说明书

设计摘要&#xff1a; 本论文以STC89C52单片机为核心控制器&#xff0c;构建了一套智能鱼缸系统。该系统由中控部分、输入部分和输出部分组成。中控部分采用STC89C52单片机&#xff0c;负责获取输入部分数据并进行处理&#xff0c;控制输出部分。输入部分包括TDS水质水温检测模…

PyCharm2023 社区版安装 +中文语言包+配置教程+Python环境搭建

一、Python 安装 我们在安装Pycharm之前&#xff0c;首先要先安装Python环境也就是安装Python解释器 因为PyCharm是一个用于编写和调试Python代码的开发工具&#xff0c;而Python解释器是用于解释执行Python代码PyCharm需要依赖Python解释器来执行Python代码&#xff0c;因此…

【Stable Diffusion】 训练方法篇

一、四种模型训练方法简介 Stable Diffusion 有四种训练模型的方法&#xff1a;Textual Inversion、Hypernetwork、LoRA 和 Dreambooth 。它们的训练方法存在一定差异&#xff0c;我们可以通过下面对比来评估使用哪种训练方式最适合你的项目。 如果你知道模型中已经可以产生你…