使用Tortoisegit完成基于Git提交日志的代码合并

前言

日常开发中除了分支merge合并外,经常会用cherry-pick,示例:git cherry-pick 29d9493d,如果要进行多次代码的遴选,可以借助git工具TortoixeGit,进行多次提交的遴选。

一、Git工具及常用命令

TortoiseGit工具

Tortoisegit(俗称:git小乌龟): https://tortoisegit.org/download/
Tortoisegit中文语言包: https://tortoisegit.org/download/

代码提交规范说明

  • 常用前缀说明如下

feat - 新功能 feature
fix - 修复 bug
docs - 文档注释
style - 代码格式(不影响代码运行的变动)
refactor - 重构、优化(既不增加新功能,也不是修复bug)
perf - 性能优化
test - 增加测试
chore - 构建过程或辅助工具的变动
revert - 回退,撤销之前的提交
build - 打包

Git常用命令

  • 查看分支

// 查看分支
git branch   查看本地分支
git branch -r 查看远程分支
git branch -a 查看远程和本地分支
  • 切换分支

// 切换分支
git checkout [branch-name]
  • 创建分支

// 创建分支
git checkout -b [branch-name]  // 创建新分支并切换到此分支
git push -u origin [branch-name] //上传本地指定分支到远程仓库
  • 合并分支(注意步骤:先获取,再合并

//合并分支
1 git checkout [branch2]  切换分支
2 git pull 拉取
3 git merge --no-ff [branch1][branch1]合并到当前版本[branch2]git merge --no-ff [branch1] -m '注释说明'
4 git push -u origin [branch2]  上传合并后分支
  • 合并指定提交记录(cherry-pick)

git合并某个特定的提交commit到指定的分支上
通过git log先找到A分支的commit代号(简略ID-29d9493d-前8位数)

git checkout B
git cherry-pick 29d9493d
git push
  • 回退到某次Commit

git log // 查看提交的记录
// git reset --hard commitID
git reset --hard dcd2bb446afd31e620866b2e49ba05bff108c1de
  • 将本地冲突文件冲掉

异常的获取或操作,导致文件冲突,不想要当前代码时使用下面方式

git reset --hard FETCH_HEAD
  • 删除分支

// 删除分支
git branch -D [branch-name] //删除本地分支
git push origin -d [branch-name] // 删除远程分支
git fetch -p // 移除远程仓库不存在的本地分支
// 更新本地远程分支
git remote update origin --prune

二、git基于提交日志的单次代码合并

1、使用TortoiseGITi演示

首先,切换到当前要合并到的【To】分支,右键【查看日志】,可通过【左上角,切换要提取代码的[From]分支】
在这里插入图片描述

2、使用摘取此提交,注意不是合并

在这里插入图片描述

3、确认提交日志记录,选择文件,【继续】

在这里插入图片描述

4、确认合并结果,如果有冲突,可直接点击文件解决,也可以在vscode中解决,解决后保存提交即可

在这里插入图片描述