Git进阶命令与技巧

devtools/2024/9/22 20:01:06/
  • Git进阶命令与技巧

  • 重置(reset)、回退(checkout)

  • 重置(reset)和回退(checkout)是两种操作版本控制系统中的代码回退的方法。

    重置(reset)操作是将当前分支的指针移到目标提交,同时更新工作区和暂存区的文件内容为目标提交的内容。这意味着你将丢失所有未提交的修改,将代码库回退到目标提交的状态。可以使用git reset命令来执行重置操作。例如,git reset <commit>会将当前分支的指针移动到指定的提交。

    回退(checkout)操作是将当前分支的指针移到目标提交,同时更新工作区的文件内容为目标提交的内容。和重置不同的是,回退不会修改暂存区的内容。这意味着你可以保留未提交的修改,并在回退后继续工作。可以使用git checkout命令来执行回退操作。例如,git checkout <commit>会将当前分支的指针移动到指定的提交,并将工作区的文件更新为该提交的内容。

    需要注意的是,重置和回退都是不可逆操作,因此在执行之前要谨慎考虑。另外,如果你需要回退远程分支或共享分支的代码,需要小心操作,以免影响其他人的工作。

  • 打标签(tag)与注释

  • 打标签(tag)和注释是版本控制系统中对代码库中的特定提交进行标记和备注的方法。

    打标签(tag)是给某个提交(或某个分支的特定提交)添加一个有意义的名称,以便更方便地引用该提交。标签通常用于标记软件的发布版本或重要的里程碑。标签可以是轻量标签(lightweight tag),它只是一个指向特定提交的引用,也可以是带注释的标签(annotated tag),它包含了额外的注释信息,如作者、日期、说明等。可以使用git tag命令来创建标签。例如,git tag v1.0.0会在当前提交上创建一个轻量标签,git tag -a v1.0.0 -m "Release v1.0.0"会在当前提交上创建一个带注释的标签。

    注释是对某个提交进行文字备注的方法。注释记录了该提交的相关信息,如修改内容、作者、日期等。注释可以使其他开发人员更易于理解和追踪代码库的历史。注释通常会与提交一起添加,当你使用git commit命令提交代码时,可以通过-m选项来添加简短的注释。例如,git commit -m "Fix bug on login page"会提交代码并添加一个简短的注释。

    需要注意的是,标签和注释不会对代码库中的提交产生影响,它们只是对提交进行标记和记录。在日常开发中,打标签和添加注释是良好的代码管理实践,可以帮助团队更好地合作和追踪代码库的变化。

  • 忽略文件(.gitignore)设置

  • 忽略文件(.gitignore)是用来告诉Git哪些文件或目录应该被忽略不进行版本控制的配置文件。

    在项目中,有一些文件或目录是不应该被Git跟踪的,比如编译生成的文件、临时文件、日志文件等。通过在项目根目录下创建一个名为.gitignore的文件,并在其中列出要忽略的文件或目录的规则,可以告诉Git不要将这些文件纳入版本控制。

    .gitignore文件中的每一行代表一个匹配规则。匹配规则可以是简单的文件名、通配符(如*表示任意字符、?表示一个字符)或者正则表达式。注释行以#开头。

    下面是一个示例的.gitignore文件:

    # 忽略编译生成的文件
    build/# 忽略日志文件
    *.log# 忽略临时文件
    temp/*# 忽略特定文件
    secret.txt# 忽略某个目录下的所有文件
    vendor/*
    

    在配置.gitignore文件后,Git将会忽略这些匹配规则下的文件或目录的变更,不会将其纳入版本控制。需要注意的是,已经被Git跟踪的文件或目录,如果在.gitignore中设置忽略规则,Git不会自动移除这些文件或目录的跟踪记录,需要使用git rm --cached命令手动将其从版本控制中移除。

    .gitignore文件是一个项目级别的配置文件,可以针对不同的项目创建不同的.gitignore文件。同时,也可以在全局范围配置Git忽略规则,通过git config --global core.excludesfile命令设置一个全局的.gitignore文件路径。


http://www.ppmy.cn/devtools/25251.html

相关文章

【C语言进阶】程序编译中的预处理操作

📚作者简介:爱编程的小马,正在学习C/C,Linux及MySQL.. 📚以后会将数据结构收录为一个系列,敬请期待 ● 本期内容讲解C语言中程序预处理要做的事情 目录 1.1 预处理符号 1.2 #define 1.2.1 #define定义标识…

可能内存溢出的高级排序算法-归并排序

归并排序 归并排序在经典递归实现中需要的额外空间相对较多。这是因为在归并排序的过程中,需要与原始数组大小相同的额外空间来存储临时合并的数组。所以,其空间复杂度为O(n),其中n表示待排序数组的长度。在递归过程中,需要创建临…

【目标检测】Yolov7 的 ELAN 和 E-ELAN 模块演进(涉及到分组卷积,cardinality,梯度路径)

感觉从 YOLOv6 开始,YOLOv6 系列感觉优化点都着重于推理速度上面,YOLOv6 的 RepBlock 重参数化,给我的感觉就是算子融合进行加速。而 YOLOv7,为了在各种架构的边缘设备上获得极致的推理速度。 YOLOv7 的工作: 新的 b…

星火首发“多情感超拟人合成”,安卓端下载量国内领先

【头部财经】日前,据七麦数据显示,截至4月26日,科大讯飞的讯飞星火APP在安卓端下载量已超过9600万次,成为国内工具类通用大模型APP的领跑者,讯飞星火凭借其前沿技术和卓越性能,赢得了广大用户的信赖和支持。…

MS8258D高增益带宽积 FET 输入放大器

MS8258D 是一款具有 CMOS 输入的低噪声运算放大 器,适用于宽带跨阻和电压放大器应用。 当将该器件配置为跨阻放大器 (TIA) 时, 7GHz 增益 带宽积 (GBWP) 可为高跨阻增益下实现宽闭环带宽的应 用提供支持。 MS8258D 具有反馈引脚 (FB) &#x…

Linux 高级网络设置

1. rp_filter 逆向路由检查 rp_filter (Reverse Path Filtering)参数定义了网卡对接收到的数据包进行反向路由验证的规则。他有三个值,0、1、2,具体含意如下: 0:关闭反向路由校验1:开启严格的…

uni框架下的前端小知识

<movable-area> 和 <movable-view> 组件来创建一个可以移动的区域&#xff0c;这通常用于模拟地图或座位图等场景的拖动效果。 1、direction&#xff1a;移动方向&#xff0c;可选值为all、vertical、horizontal分别表示所有方向、垂直、水平方向。 2、inertia&am…

Vue2之 v-if VS v-show

Vue2 中的 v-if 和 v-show 都是用来实现条件性渲染的指令&#xff0c;用于控制元素显示与隐藏的指令&#xff0c;但它们在实现机制和使用场景上有所不同&#xff1a; 一、实现机制&#xff1a; 1.1、v-if 当条件表达式为真时&#xff0c;Vue.js 会根据条件动态地创建或销毁…