一个分支中的小提交就像一个分支对另一个分支的提交

Small commits in one branch as one commit to another

我对翻新工作流程有疑问。

假设我有两个分支,masterdevel。 还假设 master 是干净的 ,对于问题的范围,让我们想象它只有初始提交“初始提交”。

devel,然而,相当混乱并且有很多小的提交。

我希望将 devel 分支中的那些小改动添加到 master 分支中作为一次提交,假设是“一次提交”

最终 master 必须拥有在 devel 中所做的所有更改,并且历史必须是两次提交(准确地说是“初始提交”和“单次提交”)

您应该创建第三个分支,从 devel 分支进行多次提交。然后,将第三个分支合并到 master 分支,就这样:两个提交到 master 分支。 这是例子

  1. 主分支
  2. 开发分支
  3. 临时分支
git checkout devel

git checkout -b temp

git commit 'Single Commit'

git push

git checkout master

git merge temp

您正在寻找的是 squah 合并。

您的初始 git 图表看起来类似于:

* ca97d57 (HEAD -> dev) dev_commit4
* 7c45353 dev_commit3
* 2f2f9f0 dev_commit2
* 721f8bc (master) Initial commit

所以你只需要三个 git 命令:

# check out master branch
git checkout master

# squash merge dev branch
git merge --squash dev

# commit squashed commits as single commit to master
git commit -m "Single commit"

最终的 git 图将在 master 分支中包含两个提交:

* 1c003b2 (HEAD -> master) Single commit
| * ca97d57 (dev) dev_commit4
| * 7c45353 dev_commit3
| * 2f2f9f0 dev_commit2
|/
* 721f8bc Initial commit