如何丢弃分支并从 master 带来更改

时间:2021-05-06 14:54:47

标签: git gitlab branch

我们当前的工作流程是,每周一早上,我们都希望放弃所有合并到 temp 分支的提交,并将其镜像到最新版本的 master 分支。

然而,在整个星期内,不同的开发人员将提交到临时分支,这些提交将被推送到 Gitlab。我们想完全重置 temp 分支并将其恢复到 master 分支。

1 个答案:

答案 0 :(得分:1)

有多种方法可以实现这一点。这里有两个相当直接的方法:(注意这些方法假设你的远程名称是“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 分支。