几个分支合并到master,然后意识到需要添加更多的变化怎么办?

Several branches merged to master, then realize more changes need to be added what to do?

举个例子吧;我在使用模板引擎生成的静态网站上工作。从编码的角度来看,这个例子有点臭(当然,如果你正在生成菜单,你会希望它们自动生成......但是为了这个例子,这是为了包含多个变化而呈现的应该包含在单个提交中)

该网站包含两组菜单,每次添加或删除新页面时,我们都会在我们的存储库中为新页面创建一个新分支。

向站点添加新页面使我们的提交发生 3 处更改:

  1. 站点顶部主菜单中的新菜单项
    • (只添加一次,因为它在网站的每个页面上都是一样的)
  2. 页面所属站点部分中的新菜单项。
    • (该项目在网站该部分的所有页面中都相同)
  3. 将新的配置数据添加到模板引擎用于生成页面的文件中。
    • (这包含一大段带有新配置数据的文本)

相反地,要删除一个页面,相同的更改将被反向删除以进行删除提交。

现在添加页面后,该分支将合并到主分支中。

假设一个分支已经合并到 master 中,但是上面列出的三个更改中的一个已经被排除在提交之外;只要没有任何内容被推送到远程,是否可以返回并重新将丢失的更改作为原始分支/变更集的一部分包含在内?最干净的方法是什么?

这么简单吗:

# Throw away the merge commit
$ git checkout master
$ git reset --hard HEAD^
# (assumes you haven't made more commits on master)

# fix up your branch
$ git checkout my-branch
# make your changes and commit

# re-merge into master
$ git checkout master
$ git merge my-branch

如果您在 master 分支上进行了后续更改,那就更难了。