我目前在我的主分公司。我需要一些CSS的帮助,但不幸的是我的网站受到身份验证的保护。这使得其他人很难到我的网站进行调试。我打算开始一个新的分支,fix_css,第一次提交删除所有身份验证机制。
然后我考虑提交对CSS的更改。之后,我想将该分支合并回主服务器,除了第一次提交(因为我希望我的网站受到我的身份验证系统的保护)。
我该怎么做呢?
答案 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
它将生成一个列出所有提交的编辑器。如果要删除提交,只需在保存文件之前删除编辑器中的行。这样,您可以在合并之前删除任意数量的提交。