如何 git 合并,但不使用最新的提交
How to git merge, but not using the latest commit
我有一个 master
分支和一个 develop
分支。 develop
分支比 master
提前了大约 10 次提交,但客户批准的版本仅包含前 8 次提交。
如何仅将 develop
的前 8 个提交合并到 master
?
通常我会这样做:
git checkout master
git merge develop
但显然这将合并所有 develop
提交。
你可以创建一个分支2版本回来
git checkout dev
git checkout -b devapproved @~2
然后你可以合并那个分支
git checkout master
git merge devapproved
您可以通过 SHA-1 提交哈希合并,例如
git checkout master
git merge 3JH9sdx8
其中 3JH9sdx8
是 develop
的提交散列,来自分支 HEAD 之前的两次提交。要找到 3JH9sdx8
哈希,您可以使用 git log develop
并检查。
您可以使用 cherry-pick
命令。
首先 git log
命令为您提供先前提交的哈希,然后您可以使用 git cherry-pick [yourHashString]
命令将指定的提交合并到当前分支。
您可以获得合并的版本并创建临时分支,例如:
# find the commit id
git log --oneline
# checkout new branch by commit id
git checkout commitID -b tmp
# Switched to branch 'master'
git checkout master
git merge tmp
# delete branch
git branch -d tmp
我有一个 master
分支和一个 develop
分支。 develop
分支比 master
提前了大约 10 次提交,但客户批准的版本仅包含前 8 次提交。
如何仅将 develop
的前 8 个提交合并到 master
?
通常我会这样做:
git checkout master
git merge develop
但显然这将合并所有 develop
提交。
你可以创建一个分支2版本回来
git checkout dev
git checkout -b devapproved @~2
然后你可以合并那个分支
git checkout master
git merge devapproved
您可以通过 SHA-1 提交哈希合并,例如
git checkout master
git merge 3JH9sdx8
其中 3JH9sdx8
是 develop
的提交散列,来自分支 HEAD 之前的两次提交。要找到 3JH9sdx8
哈希,您可以使用 git log develop
并检查。
您可以使用 cherry-pick
命令。
首先 git log
命令为您提供先前提交的哈希,然后您可以使用 git cherry-pick [yourHashString]
命令将指定的提交合并到当前分支。
您可以获得合并的版本并创建临时分支,例如:
# find the commit id
git log --oneline
# checkout new branch by commit id
git checkout commitID -b tmp
# Switched to branch 'master'
git checkout master
git merge tmp
# delete branch
git branch -d tmp