Git 事后远程分支
假设我在一个项目上工作了一周,每天都提交更改并将其推送到远程回购:Git 事后远程分支,git,repository,branch,Git,Repository,Branch,假设我在一个项目上工作了一周,每天都提交更改并将其推送到远程回购: Mo - Tu - We - Th - Fr - Sa - Su (origin/master) 周一早上,我意识到我在周末写的东西走错了方向。从技术上讲,是否可以像这样假装我在周六创建了一个新分支 Mo - Tu - We - Th - Fr (origin/master) \ Sa - Su (origin/expe
Mo - Tu - We - Th - Fr - Sa - Su (origin/master)
周一早上,我意识到我在周末写的东西走错了方向。从技术上讲,是否可以像这样假装我在周六创建了一个新分支
Mo - Tu - We - Th - Fr (origin/master)
\
Sa - Su (origin/experimental)
如果这在技术上是可行的,它是否违反了更改公共回购协议的规则?您可以将当前的
master
分支机构推为实验性:
git checkout master
git checkout -b experimental
git push -u origin experimental
然后需要重置并强制推送主机,如果其他参与者已经获取了该分支,这可能会带来不便:
git reset --hard master Fr
git push --force
或者,您可以使用:
这样,您就可以创建一个额外的提交,它取消Sa
和Su
,而不需要推送--force
Mo - Tu - We - Th - Fr - Re (origin/master)
\
Sa - Su (origin/experimental)
这样做没有问题,但您必须强制推送主机。在将分支合并回主机时,不会恢复提交导致问题(类似于恢复合并提交)?@musiKk可能会,但如果他们有许多合作者已经获取了origin/master
,这比尝试强制推送要好。我完全同意。我只记得“恢复合并提交”案例中的这一点。您必须记住在合并之前重新恢复提交,否则合并会忽略这些,可能会导致奇怪的冲突。@musiKk您的意思是?但情况似乎并不完全相同。不,但我认为合并仍然会忽略历史上已经存在的提交。不过,我必须尝试一下,才能百分之百确定。
Mo - Tu - We - Th - Fr - Re (origin/master)
\
Sa - Su (origin/experimental)