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.hqwc.cn/news/702939.html

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

相关文章

【Python探索之旅】元组

元组的作用 遍历 修改 元组运算符 索引和切片 加法运算符 重复运算符 比较运算符 完结撒花 前言 元组(tuple)是一种静态的(immutable)或者说是不可变(unchangeable)的数据结构&#xff0c;里面的元素按照一定的顺序排列。它是静态的&#xff0c;所以元组里的元素不能被…

刷代码随想录有感(65):回溯算法——组合问题

题干&#xff1a; 代码&#xff1a; class Solution { public:vector<vector<int>> res;vector<int> tmp;void backtracking(int n, int k, int start){if(tmp.size() k){res.push_back(tmp);return;}for(int i start; i < n; i){tmp.push_back(i);bac…

从入门到精通:.gitlab-ci.yml文件的完整指南

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 从入门到精通&#xff1a;.gitlab-ci.yml文件的完整指南 前言.gitlab-ci.yml文件概述stagesimagesbefore_script和after_scripttagsonly和exceptonly关键字except关键字 artifacts使用方式产物路径其他…

【案例】使用Vue实现标题项元素上下移动

效果图 效果说明 每一组数据只能在对应的二级类目中进行上下移动&#xff0c;当点击上移图标的时候【左边的】会将当前元素与上一个元素交换位置&#xff0c;当点击的元素为该组的第一个元素时&#xff0c;将提示已经是第一项了并且不能进行移动&#xff1b;当点击下移图标的时…

LeetCode494:目标和

题目描述 给你一个非负整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 ‘’ 或 ‘-’ &#xff0c;然后串联起所有整数&#xff0c;可以构造一个 表达式 &#xff1a; 例如&#xff0c;nums [2, 1] &#xff0c;可以在 2 之前添加 ‘’ &#xff0c;在 1 之…

JavaScript基础(七)

isNaN //用来判断一个变量是不是一个非数字 不是来判断是不是number类型&#xff0c;而是判断当前值能不能转为number类型&#xff0c;OK&#xff1f;懂了。 还有同学不明白&#xff0c;来看实例: <script> //isNaN(非数字)→true &#xff08;数字&#xff09;→fal…

动画:3dmax

动画制作流程&#xff1a;模型 -> 骨骼&#xff08;Bone/Biped&#xff09; -> 蒙皮&#xff08;Skin/Bone Pro&#xff09; -> 动画 1.基础 1.1创建bones骨骼 骨骼分为2种&#xff0c;一种是bones另一种是biped。它们的区别是用bones需要自己创建骨骼系统&#xff0…

UV:展uv

1.3dmax 选中物体 修改器列表选中“UV展开” 打开UV编辑器 断开圆圈 同理断开瓶底 展开侧面 剥离 拉直 排列 纹理盘格 用于查看排列位置 渲染UV模板 PS图片 将不要的部分填充为黑色 复制图片 删除多余 保存图片 添加材质球和位图 按M打开材质球编辑器 重置UV 将uv变为初始…

文献检索神器分享:一键筛选顶刊论文,还能免费下载全文!

我是娜姐 迪娜学姐 &#xff0c;一个SCI医学期刊编辑&#xff0c;探索用AI工具提效论文写作和发表。 信息爆炸的时代&#xff0c;文献是根本读不完。一个关键词能搜出来几万篇&#xff0c;而且有些结论还是完全相反的&#xff0c;到底该读哪些&#xff1f; 第一步的文献筛选很重…

基于多传感器的智能小区安防系统设计与实现-设计说明书

设计摘要&#xff1a; 本设计是基于多传感器的智能小区安防系统的设计与实现。系统主要包括烟雾和温度传感器、人体红外传感器、OLED显示屏、WiFi模块和按键控制等组件。通过这些组件的协作&#xff0c;实现了火灾检测、人员监测、数据显示和远程控制等功能。 首先&#xff0…

C#实现多线程的几种方式

前言 多线程是C#中一个重要的概念&#xff0c;多线程指的是在同一进程中同时运行多个线程的机制。多线程适用于需要提高系统并发性、吞吐量和响应速度的场景&#xff0c;可以充分利用多核处理器和系统资源&#xff0c;提高应用程序的性能和效率。 多线程常用场景 CPU 密集型任务…

MySQL数据库从入门到精通(下)

对表做了修改之后&#xff0c;记得点击对应图标按钮重新执行一下。 1.创建角色表 数据库一开始就要设计好&#xff0c;轻易不要改动。一个账号下可能有多个角色&#xff0c;所以我们单独再创建另一个表role用来存储所有的角色信息。其中idrole表示角色id&#xff0c;name表示名…