重置远程git分支

时间:2011-07-22 06:09:32

标签: git

我在git中有两个远程分支, master test master 反映了接下来要部署到我们的生产环境的任何内容。 test 是相同的,但对于我们的测试环境。

由于停滞或报废的项目 test ,随着时间的推移,理论上会累积很多 master 中不存在的提交。我该如何避免这种情况?

我知道一种解决方案是删除我的本地和远程测试分支。然后基于 master 创建一个新的并将其推送到远程。然而,这种方法迫使我的同事和构建/部署系统也在删除新的本地分支之前删除它们的本地分支。

1 个答案:

答案 0 :(得分:2)

允许提取test分支的另一种方法是将test的索引重置为master的索引,而不是重写test的历史记录,但添加新提交将反映与master相同的状态 然而,这将在test历史记录中留下所有额外的提交。

git checkout master
git merge -s ours test # make master believe that everything from test has been
                         merged to master up to this point.
git checkout test
git reset master -- . # reset the index content of test to the index of master
git checkout # reset the working tree of test to its new index
git commit -m "test reset to master"
git merge master # should be trivial merge
git push origin master
git push origin test