Git:创建一个分支。提出一堆。回到master分支,只想合并某些提交

时间:2010-09-15 02:58:14

标签: git

我目前在我的主分公司。我需要一些CSS的帮助,但不幸的是我的网站受到身份验证的保护。这使得其他人很难到我的网站进行调试。我打算开始一个新的分支,fix_css,第一次提交删除所有身份验证机制。

然后我考虑提交对CSS的更改。之后,我想将该分支合并回主服务器,除了第一次提交(因为我希望我的网站受到我的身份验证系统的保护)。

我该怎么做呢?

2 个答案:

答案 0 :(得分:5)

您可以提交到您的主分支上的提交

如果你有这个:

master: A--B--C--D
                  \
fixing_css:        E--F--G--H

你想要这个:

master: A--B--C--D--F--G--H

然后从fixing_css分支运行此命令:

git rebase --onto master E fixing_css

(其中E是分支上第一次提交的SHA)

“rebase”命令接受一组提交并将它们放到一个新的“基础”上。在这种情况下,您说“接受E之后提交的一组提交,并在fixing_css的末尾上升,并将它们置于master之上

答案 1 :(得分:1)

除了常规的rebase之外,您还可以使用交互式rebase来消除您不想要的任何更改:

git rebase -i master

它将生成一个列出所有提交的编辑器。如果要删除提交,只需在保存文件之前删除编辑器中的行。这样,您可以在合并之前删除任意数量的提交。