使用 git 将分支的一部分合并到主分支中

Merge part of a branch into master with git

我将解释我的场景:

  1. 我有两个 git 分支说 master, branch1
  2. 我的 master 分支有以下文件和与之关联的提交 - 就像在我创建的每个文件之后我做了 git commit:

    master-file1.html has masterfile1-commit-message
    master-file2.html - masterfile2-commit-message
    master-file3.html - masterfile3-commit-message
    
  3. 我的 branch1 分支有以下文件和与之关联的提交:

    branch1-file1.html has branch1file1-commit-message
    branch1-file2.html - branch1file2-commit-message
    branch1-file3.html - branch1file3-commit-message
    branch1-file4.html - branch1file4-commit-message
    branch1-file5.html - branch1file5-commit-message
    

所以我不想将 branch1 完全合并到 master 分支,我只想部分合并。所以在最后我想要的是这样的:

  1. 我的 master 分支应该是这样的:

    master-file1.html has masterfile1-commit-message
    master-file2.html - masterfile2-commit-message
    master-file3.html - masterfile3-commit-message
    branch1-file1.html has branch1file1-commit-message
    branch1-file2.html - branch1file2-commit-message
    
  2. 我的 branch1 分支应该没有变化:

    branch1-file1.html has branch1file1-commit-message
    branch1-file2.html - branch1file2-commit-message
    branch1-file3.html - branch1file3-commit-message
    branch1-file4.html - branch1file4-commit-message
    branch1-file5.html - branch1file5-commit-message
    

我可以在 git 中实现吗?如果是那么怎么办?

首先,找到 branch1-file2.html 提交的 SHA1 哈希。您可以使用以下命令执行此操作:

git checkout branch1
git log --oneline

在每行的开头查找十六进制字符串。现在一旦你有了哈希,只需将 master 合并到它:

git checkout master
git merge <SHA1 hash>