当前位置: 首页 > article >正文

【第七节】Git 进阶操作

目录

前言

一、 高级操作概述

二、 交互式暂存

2.1 逐块暂存

三、 Git Stash

3.1 保存工作进度

3.2 查看和管理存储

四、 Git Rebase

4.1 变基操作

4.2 交互式变基

五、 Git Cherry-Pick

5.1 拣选提交

5.2 处理拣选冲突

六、 综合示例

七、总结


前言

        在掌握了 Git 的基础操作之后,进一步学习高级操作可以帮助你更高效地管理和优化代码库。本文将介绍一些常见的 Git 高级操作,包括交互式暂存、Git Stash、Git Rebase 和 Git Cherry-Pick,帮助你更好地控制提交历史和处理复杂的开发任务。


一、 高级操作概述

以下是一些常见的 Git 高级操作及其功能:

- **交互式暂存**:逐块选择要暂存的更改,精细控制提交内容。
- **Git Stash**:临时保存工作进度,方便切换任务。
- **Git Rebase**:将一个分支上的更改移到另一个分支之上,保持提交历史线性。
- **Git Cherry-Pick**:选择特定提交并应用到当前分支。

二、 交互式暂存

2.1 逐块暂存

`git add -p` 命令允许你逐块选择要暂存的更改,这在处理复杂更改时非常有用。

**示例:**

git add -p

执行此命令后,Git 会逐块显示文件的更改,你可以选择是否暂存每个块。常用选项包括:

- **y**:暂存当前块。
- **n**:跳过当前块。
- **s**:拆分当前块。
- **e**:手动编辑当前块。
- **q**:退出暂存。

三、 Git Stash

3.1 保存工作进度

`git stash` 命令允许你临时保存当前工作目录的更改,以便你可以切换到其他分支或处理其他任务。

**示例:**

git stash

3.2 查看和管理存储

- **查看存储的进度**:

  git stash list

- **应用最近一次存储的进度**:

  git stash apply

- **应用并删除最近一次存储的进度**:

  git stash pop

- **删除特定存储**:

  git stash drop stash@{n}

- **清空所有存储**:

  git stash clear

四、 Git Rebase

4.1 变基操作

`git rebase` 命令用于将一个分支上的更改移到另一个分支之上。它可以帮助保持提交历史的线性,减少合并时的冲突。

**示例:**

git rebase <branchname>

例如,将当前分支变基到 `main` 分支:

git rebase main

4.2 交互式变基

`git rebase -i` 命令允许你在变基过程中编辑、删除或合并提交。

**示例:**

git rebase -i <commit>

常用选项包括:
- **pick**:保留提交。
- **reword**:修改提交信息。
- **edit**:编辑提交。
- **squash**:将当前提交与前一个提交合并。
- **fixup**:将当前提交与前一个提交合并,不保留提交信息。
- **drop**:删除提交。

五、 Git Cherry-Pick

5.1 拣选提交

`git cherry-pick` 命令允许你选择特定的提交并将其应用到当前分支。它在需要从一个分支移植特定更改到另一个分支时非常有用。

**示例:**

git cherry-pick <commit>

例如,将 `abc123` 提交应用到当前分支:

git cherry-pick abc123

5.2 处理拣选冲突

如果拣选过程中出现冲突,解决冲突后使用以下命令继续拣选:

git cherry-pick --continue

六、 综合示例

以下是一个综合示例,展示了如何使用这些高级操作:

1. **交互式暂存**:

   git add -p

2. **保存工作进度**:

   git stash

3. **查看存储的进度**:

   git stash list

4. **应用存储的进度**:

   git stash apply

5. **变基当前分支到 `main` 分支**:

   git rebase main

6. **交互式变基,编辑提交历史**:

   git rebase -i HEAD~3

7. **拣选 `feature` 分支上的特定提交到 `main` 分支**:

   git checkout main
   git cherry-pick abc123

七、总结

        本文介绍了 Git 的一些高级操作,包括交互式暂存、Git Stash、Git Rebase 和 Git Cherry-Pick。通过掌握这些操作,你可以更灵活地管理代码库,优化提交历史,并高效处理复杂的开发任务。


http://www.kler.cn/a/442209.html

相关文章:

  • 论文笔记-arXiv2025-A survey about Cold Start Recommendation
  • 如何将数据库字符集改为中文,让今后所有的数据库都支持中文
  • Go语言简洁框架目录和高效的快发框架设计
  • 【经济学通识——国债】
  • Linux第二课:LinuxC高级 学习记录day04
  • 静态综合路由实验
  • 土地档案管理关系[源码+文档]
  • 包子凑数(2017年蓝桥杯试题H)
  • 提前对风险进行预警并实施管控,运用AI技术将管理推向新时代的智慧地产开源了。
  • 大腾智能CAD:国产云原生三维设计新选择
  • 基于python对网页进行爬虫简单教程
  • ISCTF复现-misc
  • docker 搭建自动唤醒UpSnap工具
  • CAN配置---波特率中断引脚等---autochips-AC7811-ARM-M3内核
  • 指针的一些题目
  • Python中opencv的一些函数及应用
  • AngularJS 输入验证
  • ONES 功能上新|ONES Copilot、ONES Wiki 新功能一览
  • 指针的深入讲解
  • 达梦8-达梦数据的示例用户和表
  • ARM嵌入式学习--第七天(GPT)
  • JAVA学习-练习试用Java实现“声明一个字符串数组,并初始化它包含一些水果的名称,然后打印出数组中的所有元素”
  • 在MAC系统下安装Docker、Dify以及docker镜像加速
  • uniapp地址类 方法
  • MySQL 实战:小型项目中的数据库应用(二)
  • 在Proteus软件仿真STM32F103寄存器方式PID调速电机