工作中有时需要向多个分支应用同一份修改,这时就可以使用 patch 功能。这里 patch其实就是两个文件的差异。

使用 format-patch 生成patch

该方法能够保存所有的log记录

生成 patch

# 将每个commit写入单独的文件
git format-patch Commit1...Commit2

# 将所有commits全部写如一个文件
git format-patch Commit1...Commit2 --stdout > commits.patch

使用patch

git am --3way --ignore-space-change <patch_file_path>
或
git am --3way --whitespace=fix <patch_file_path>

使用 diff 或 stash 生成 patch

该方法只体现代码差异,不包含log记录

生成patch

  1. 从本地的修改生成
git diff HEAD > patchName.patch
  1. 从stash 生成
git stash show -p stash@{0} > patchName.patch

# 在PowerShell 需要添加引号
git stash show -p "stash@{0}" > patchName.patch

注:这里的0代表stash栈顶的内容

使用patch

git apply patchName.patch
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐