git 合并 - 提交或分支(不清楚文档)?

git merge - commits or branches (not clear docs)?

来自文档(https://git-scm.com/docs/git-merge)

概要

git merge [-n] [--stat] [--no-commit] [--squash] [--[no-]edit]
    [-s <strategy>] [-X <strategy-option>] [-S[<keyid>]]
    [--[no-]allow-unrelated-histories]
    [--[no-]rerere-autoupdate] [-m <msg>] [-F <file>] [<commit>…​]
git merge --abort  
git merge --continue

描述

"git merge topic" will replay the changes made on the topic branch

synopsys 中没有提到分支,它列出了 [<commit>…​] 但所有示例都显示 merge 有分支。

分支是对提交的引用。所以你可以通过任何方式指定一个提交(一个分支,一个标签......)。

Git 将搜索共同祖先并创建合并提交。合并提交代表自身从共同祖先到指定引用的提交序列的更改。

如果您只需要合并一定数量的提交形成指定的序列(不是全部),您需要将其中一些重新设置为单独的序列(或对每个提交使用 cherry-pick 命令)并合并新序列。或任意组合。

如果您只需要合并一个特定的提交,您可以 cherry-pick 但它不是合并提交而是通用提交。要真正合并提交与一个分支只包含一个提交使用以前的方法。

您可以使用 Cherry Pick

  1. 检查您想要挑选特定的分支 提交。在这种情况下 master 分支:

    git checkout master

  2. 现在您可以从您的功能分支中挑选:

    git cherry-pick ae79cffbcf5e14e776903521009b9361fe35fd76

这将挑选具有哈希 ae79cffbcf5e14e776903521009b9361fe35fd76 的提交并将其添加为主分支上的新提交。

注意:它将在 master 分支中有一个新的(和不同的)提交 ID。