使用 git 将分支的一部分合并到主分支中
Merge part of a branch into master with git
我将解释我的场景:
- 我有两个 git 分支说
master
, branch1
我的 master
分支有以下文件和与之关联的提交 - 就像在我创建的每个文件之后我做了 git commit
:
master-file1.html has masterfile1-commit-message
master-file2.html - masterfile2-commit-message
master-file3.html - masterfile3-commit-message
我的 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
分支,我只想部分合并。所以在最后我想要的是这样的:
我的 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
我的 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>
我将解释我的场景:
- 我有两个 git 分支说
master
,branch1
我的
master
分支有以下文件和与之关联的提交 - 就像在我创建的每个文件之后我做了git commit
:master-file1.html has masterfile1-commit-message master-file2.html - masterfile2-commit-message master-file3.html - masterfile3-commit-message
我的
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
分支,我只想部分合并。所以在最后我想要的是这样的:
我的
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
我的
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>