【问题标题】:Applying a patch that contains changes that are already applied应用包含已应用更改的补丁
【发布时间】:2021-07-01 12:44:49
【问题描述】:

我想寻求有关使用 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 中的补丁更改?

【问题讨论】:

  • 更改在同一个文件中?
  • 仅在补丁中记录的更改仅在一个文件中,但我认为这个问题也可以涵盖当这些更改在多个文件中时会发生什么

标签: git diff patch


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多