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


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

  • 推荐:「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.mzph.cn/web/12584.shtml

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

相关文章

[Linux]一篇文章带你全面理解信号

文章目录 初识信号一、什么是信号二、为什么要有信号 看见信号一、先见一下Linux中的信号&#xff1a;二、如何产生信号三、自定义信号的处理行为&#xff08;自定义捕捉&#xff09; 了解信号一、信号的保存二、block、pending表使用代码查看三、一些倔强的&#xff0c;无法被…

排列三利用大数据预测

排列三是一种基于随机数字生成的游戏&#xff0c;因此从纯数学的角度来看&#xff0c;利用大数据进行预测并不能确保中奖。然而&#xff0c;大数据和数据分析确实可以为我们提供一些参考和指导&#xff0c;帮助我们在投注时做出更明智的决策。 首先&#xff0c;大数据可以帮助…

【Redis】Redis键值存储

大家好&#xff0c;我是白晨&#xff0c;一个不是很能熬夜&#xff0c;但是也想日更的人。如果喜欢这篇文章&#xff0c;点个赞&#x1f44d;&#xff0c;关注一下&#x1f440;白晨吧&#xff01;你的支持就是我最大的动力&#xff01;&#x1f4aa;&#x1f4aa;&#x1f4aa…

深度解读DreamFusion:一站式AI解决方案

DreamFusion是一款备受瞩目的人工智能解决方案&#xff0c;它整合了多种AI技术&#xff0c;为用户提供了一站式的解决方案。本文将全面解读DreamFusion&#xff0c;探讨其特点、功能和应用场景&#xff0c;助您深入了解这一创新工具。 1. 特点概述 DreamFusion具备以下显著特…

前端面试题日常练-day08 【面试题】

题目 希望这些选择题能够帮助您进行前端面试的准备&#xff0c;答案在文末。 1. 在 JavaScript 中&#xff0c;以下哪个方法可以用于获取数组的长度&#xff1f; A) length()B) size()C) count()D) push()2. 下列哪个 HTML 标签用于创建无序列表中的列表项&#xff1f; A) &…

用wxPython和PyMuPDF将PNG图像合并为PDF文件

在日常工作中,我们经常需要将多个图像文件合并到一个PDF文档中,以便于查看、共享或存档。虽然现有的一些工具可以实现这一功能,但开发一个自定义的GUI工具可以更好地满足特定需求,并提供更好的用户体验。 在本文中,我将介绍如何使用Python、wxPython和PyMuPDF库创建一个简单的…

基于SpringBoot设计模式之创建型设计模式·生成器模式

文章目录 介绍开始架构图样例一定义生成器定义具体生成器&#xff08;HTML格式、markdown格式&#xff09;实体类HTML格式生成器MarkDown格式生成器 测试样例 总结优点缺点 介绍 将一个复杂对象的构建与它的表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。   如…

flowable工作流设置审批人为指定角色+部门的实现方式

一、绘制流程图页面配置 1、指定固定审批角色组织的实现 如上图红框部分&#xff0c;需要修改此处为需求对应。比如此时红框不支持指定某个部门下的指定角色这种组合判断的审批人。则需要修改页面变成选完角色同时也选择上部门统一生成一个group标识。 修改完后&#xff0c;生…

股指期货基差衡量的是什么?

在股指期货市场中&#xff0c;基差、升水和贴水是三个关键的术语&#xff0c;这些基差衡量的是现货市场的价格与期货市场的价格之间的差异。 一、基差&#xff1a;现货与期货的价差 1. 定义&#xff1a;基差是指现货价格与相应期货合约价格之间的差额。计算方式是现货价格减去…

深入了解MongoDB:利用$type操作符轻松操控数据类型

MongoDB的$type操作符用于检索具有特定数据类型的字段。以下是有关$type操作符的详细解释、命令、示例、应用场景、注意事项和总结&#xff1a; $type操作符用于查询具有特定数据类型的字段。它接受一个整数参数&#xff0c;该参数对应于MongoDB中的数据类型编号。可以使用$ty…

第4章 Redis,一站式高性能存储方案【仿牛客网社区论坛项目】

第4章 Redis&#xff0c;一站式高性能存储方案【仿牛客网社区论坛项目】 前言推荐项目总结第4章 Redis&#xff0c;一站式高性能存储方案1. Redis入门2. Spring整合Redis3.点赞4.我收到的赞5.关注、取消关注6.关注列表、粉丝列表7.优化登录模块 最后 前言 2023-4-30 20:42:51 …

hadoop 安装步骤

hadoop 是一个免费开源软件, 可以安装在window上&#xff0c;但是有些麻烦。 也可以安装 在linux 上 hadoop 下载地址 &#xff1a;https://hadoop.apache.org/releases.html 安装前的准备工作&#xff1a; 1.安装jdk Apache Hadoop 与最新版本的JDK不兼容。建议下载Java SE D…

SFTPGO 整合minio AD群组 测试 |sftpgo with minio and ldap group test

SFTP-GO 研究 最近在测试sftpgo&#xff0c;发现中文的资料比较少&#xff0c;在企业中很多存储开始支持S3&#xff0c;比如netapp 于是想尝试把文件服务器换成sftpgoS3的存储&#xff0c;sftp go和AD 群组的搭配测试比较少 自己测试了一把&#xff0c;觉得还是没有server-u的A…

JVS物联网、无忧企业文档、规则引擎5.14功能新增说明

项目介绍 JVS是企业级数字化服务构建的基础脚手架&#xff0c;主要解决企业信息化项目交付难、实施效率低、开发成本高的问题&#xff0c;采用微服务配置化的方式&#xff0c;提供了 低代码数据分析物联网的核心能力产品&#xff0c;并构建了协同办公、企业常用的管理工具等&am…

ubuntu在当前路径下打开Terminal

在 Ubuntu 20.04 中&#xff0c;nautilus-open-terminal 已经被 nautilus-extension-gnome-terminal 替代了。你可以尝试安装这个新的包。以下是在终端中执行的命令&#xff1a; sudo apt-get update sudo apt-get install nautilus-extension-gnome-terminal安装完成后&#…

Java面向对象——抽象类

abstract修饰符可以用来修饰方法也可以修饰类&#xff0c;如果修饰方法&#xff0c;那么该方法就是抽象方法&#xff1b;如果修饰类&#xff0c;那么该类就是抽象类。 抽象类中可以没有抽象方法&#xff0c;但是有抽象方法的类一定要声明为抽象类。 抽象类&#xff0c;不能…

函数的递归调用

在调用一个函数的过程中又出现直接或间接地调用该函数本身&#xff0c;称为函数的递归&#xff08;recursive&#xff09;调用。C和C允许函数的递归调用。例如&#xff1a; int f(int x) { int y,z; zf(y); //在调用函数 f 的过程中&…

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

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

Jmeter使用While控制器

1.前言 对于性能测试场景中&#xff0c;需要用”执行某个事物&#xff0c;直到一个条件停止“的概念时&#xff0c;While控制器控制器无疑是首选&#xff0c;但是在编写脚本时&#xff0c;经常会出现推出循环异常&#xff0c;获取参数异常等问题&#xff0c;下面总结两种常用的…

如何将Excel表格中的图片链接直接显示成图片?

在 Excel 中&#xff0c;你可以通过以下步骤将图片链接转换为直接显示图片&#xff1a; 1. **插入图片链接**&#xff1a;首先&#xff0c;在 Excel 表格中插入图片的链接。你可以在某个单元格中输入图片的链接地址&#xff0c;或者使用 Excel 的“插入图片”功能插入链接。 2.…