事后远程分支

时间:2015-03-09 06:00:27

标签: git repository branch

假设我已经为一个项目工作了一个星期并且每天都会提交我的更改并将它们推送到远程仓库:

Mo - Tu - We - Th - Fr - Sa - Su   (origin/master)
星期一早上我意识到我周末所写的内容是错误的。在技​​术上可以假装我在星期六创建了一个新分支,就像这样吗?

Mo - Tu - We - Th - Fr   (origin/master)
                       \
                         Sa - Su   (origin/experimental)

如果技术上可行,是否违反了更改公共回购的规定?

1 个答案:

答案 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

这样,您创建了一个额外的提交,取消SaSu,并且不会要求push --force

Mo - Tu - We - Th - Fr - Re  (origin/master)
                      \
                        Sa - Su   (origin/experimental)