首页 > 解决方案 > 应用包含已应用更改的补丁

问题描述

我想寻求有关使用 git 应用补丁的帮助。

假设我有以下 git 历史记录(git log)

base_commit --> commit_1 --> commit_2 

我从另一个开发人员那里收到了一个(git)补丁。这个补丁包含了他从base_commit.

我检查了补丁并做了以下内容:

git diff base_commit commit_2 

我注意到补丁的更改几乎都包含在差异中(这意味着更改已经在commit_2.

如果是这样,我就不会应用补丁。但问题是,补丁包含一个尚未包含commit_2

从这里开始的最佳方式是什么?

我通常在上面应用补丁commit_2吗?

还是我应该手动应用不在的补丁更改commit_2

标签: gitdiffpatch

解决方案


如果你喜欢合并,并且想要记录整个事情,你可以这样

git checkout base_commit
git checkout -b temp-branch
# now apply the patch however you would apply it
# and commit
git checkout main-branch
git merge temp-branch

然后你会在你的历史中看到另一个开发者做了什么,他的基础是什么,以及你是如何组合它们的,所以如果你犯了错误,你会有记录


推荐阅读