如何解决如何丢弃分支并从 master 带来更改
我们当前的工作流程是,每周一早上,我们都希望放弃所有合并到 temp
分支的提交,并将其镜像到最新版本的 master
分支。
然而,在整个星期内,不同的开发人员将提交到临时分支,这些提交将被推送到 Gitlab。我们想完全重置 temp
分支并将其恢复到 master
分支。
解决方法
有多种方法可以实现这一点。这里有两个相当直接的方法:(注意这些方法假设你的远程名称是“origin”):
git fetch # make sure your remote copy of master is updated
git checkout temp # checkout the temp branch if not already
git reset --hard origin/master # reset temp to remote master
git push --force # push out the new temp branch to origin/temp
如果您愿意,可以将中间的两个命令合二为一:
git fetch # make sure your remote copy of master is updated
git checkout -B temp origin/master # checkout/create temp and reset to origin/master
git push --force # push out the new temp branch to origin/temp
附注:在强制推送时,我几乎总是建议使用 git push --force-with-lease
,这样您就不会意外地将您不知道的遥控器上的提交吹走。但是,我认为这是您确实想要使用 git push --force
的罕见情况之一,因为听起来您无论如何都想重置 temp
分支;即使有人在几分钟前向该分支推送了新提交。
另一个注意事项:Git 存储库本身使用一种名为 Gitworkflows 的分支策略,与您的策略一样,它有一个用于集成测试的一次性分支,并且是定期复位。 Git 维护者称该分支为 next
,它代表“下一个”版本的候选功能。 (甚至还有一个名为 pu
的第二级丢弃分支用于“建议的更新”。)只是想知道您是否有兴趣知道您正在使用(n 可以说)经过验证的真实策略,至少关于您的temp
分支。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。