随笔 - 2649  文章 - 2452  评论 - 0  阅读 - 80424

Git 进阶操作

Git 进阶操作

在掌握了 Git 的基础操作之后,进阶操作可以帮助你更高效地管理和优化你的代码库。

以下是一些常见的进阶操作及其详细说明:

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

1、交互式暂存(Interactive Staging)

git add 命令可以选择性地将文件或文件的一部分添加到暂存区,这在处理复杂更改时非常有用。

  • 使用 git add -p:逐块选择要暂存的更改。
git add -p

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

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

2、Git Stash:临时保存工作进度

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

保存当前工作进度

git stash

查看存储的进度

git stash list

应用最近一次存储的进度

git stash apply

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

git stash pop

删除特定存储

git stash drop stash@{n}

清空所有存储

git stash clear

3、Git Rebase:变基

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

变基当前分支到指定分支

git rebase <branchname>

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

git rebase main
  • 交互式变基
git rebase -i <commit>

交互式变基允许你在变基过程中编辑、删除或合并提交。常用选项包括:

  • pick:保留提交
  • reword:修改提交信息
  • edit:编辑提交
  • squash:将当前提交与前一个提交合并
  • fixup:将当前提交与前一个提交合并,不保留提交信息
  • drop:删除提交

4、Git Cherry-Pick:拣选提交

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

拣选提交

git cherry-pick <commit>

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

git cherry-pick abc123

处理拣选冲突:如果拣选过程中出现冲突,解决冲突后使用 git cherry-pick --continue 继续拣选。

示例操作

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

交互式暂存

git add -p

保存工作进度

git stash

查看存储的进度

git stash list

应用存储的进度

git stash apply

变基当前分支到 main 分支

git rebase main

交互式变基,编辑提交历史

git rebase -i HEAD~3

编辑提交历史,如合并和重命名提交。

拣选 feature 分支上的特定提交到 main 分支

git checkout main
git cherry-pick abc123
posted on   AtlasLapetos  阅读(8)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示