2011-07-22 217 views
2

我有两个远程分支git,测试主人反映下一步将部署到我们的生产环境中的任何东西。 测试是一样的,但对于我们的测试环境。重置远程git分支

因为停滞不前或报废项目测试可能,随着时间的推移,理论上积累了大量的犯不存在。我如何避免这种情况?

我知道一个解决方案就是删除我的本地和远程test分支。然后创建一个新的基于并推送到远程。然而,这种方法迫使我的同事,并建立/部署系统也删除他们的本地分支机构之前拉新的。

回答

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