主题
  • 默认模式
  • 浅蓝色模式
  • 淡绿色模式
  • 深夜模式

Git 进阶操作

在熟练掌握 Git 基础操作后,进一步学习版本控制的进阶技巧将帮助你更专业、高效地管理代码仓库,优化开发工作流。

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

  • 交互式暂存:通过分块审查更改内容,实现精细化提交控制,确保每个提交的原子性。
  • 工作区暂存:临时保存工作进度,方便任务之间的快速切换。
  • 变基操作:将分支提交历史重新应用到目标分支,保持项目历史线性整洁完整。
  • 拣选提交:精准选取特定提交应用到当前分支。

1. 交互式暂存(Interactive Staging)

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

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

git add -p

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

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

2. 工作区暂存(Git Stash)

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

Git命令 操作说明
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继续拣选。

5. 示例操作

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

✅ 交互式暂存:

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


评论区 0
发表评论
教程介绍
Git 是一个分布式版本控制系统,用于高效管理文件的修改历史,支持多人协作开发。
14 章节
39 阅读
0 评论