momo's Blog.

git 使用format-patch将某个目录指定commit合并到其他分支

字数统计: 174阅读时长: 1 min
2024/02/05 Share

前言

有时候我们需要将某个目录指定commit合并到其他分支,这时候我们可以使用git format-patch来生成patch文件,然后使用git am来应用patch文件。

找到需要合并的commit

1
2
3
# 指定某个文件或者某个目录
git log -- <path>
# 找到需要合并的commit起始点

生成patch文件

1
2
3
4
# 这里的`bc12f43a404406df0e5316ac0dfcf1054f40af62`是需要合并的commit的起始点, 但是不包含这个commit
git format-patch bc12f43a404406df0e5316ac0dfcf1054f40af62..24bcb1ca3df5300b0a645cd1d920f34c1dbaddfb -o <out_path> -- <path>
# 这里的`24bcb1ca3df5300b0a645cd1d920f34c1dbaddfb`是需要合并的commit的终点, 包含这个commit. 区别在于 ^ 符号
git format-patch bc12f43a404406df0e5316ac0dfcf1054f40af62^..24bcb1ca3df5300b0a645cd1d920f34c1dbaddfb -o <out_path> -- <path>

应用patch文件

1
git am <patch_file>/*.patch
CATALOG
  1. 1. 前言
  2. 2. 找到需要合并的commit
  3. 3. 生成patch文件
  4. 4. 应用patch文件