假设我已经为一个项目工作了一个星期并且每天都会提交我的更改并将它们推送到远程仓库:
Mo - Tu - We - Th - Fr - Sa - Su (origin/master)
星期一早上我意识到我周末所写的内容是错误的。在技术上可以假装我在星期六创建了一个新分支,就像这样吗?
Mo - Tu - We - Th - Fr (origin/master)
\
Sa - Su (origin/experimental)
如果技术上可行,是否违反了更改公共回购的规定?
答案 0 :(得分:1)
您可以将当前master
分支推送为experimental
:
git checkout master
git checkout -b experimental
git push -u origin experimental
然后你需要重置并强制推送master,如果其他贡献者已经获取该分支,这可能会很不方便:
git reset --hard master Fr
git push --force
或者你可以revert Sa
and Su
使用git revert
:
git revert -n Sa^..Su
# check, then commit
git add .
git commit -m "Revert Sa and Su"
git push
这样,您创建了一个额外的提交,取消Sa
和Su
,并且不会要求push --force
。
Mo - Tu - We - Th - Fr - Re (origin/master)
\
Sa - Su (origin/experimental)