在工作中,每个开发人员都有自己的开发分支,即。 branch = dev_name_of_employee。 IE浏览器。 dev_jon
dev_jon有一个新功能,其中有超过100个提交,尚未准备好进行测试或部署,因此我创建了另一个分支,将该新功能放入名为staging_jon(可以称之为holding_jon,无论如何)。
现在我需要从另一个功能开始并让dev_jon包含master的内容。有点回归到掌握的东西。
如何在不删除dev_jon及其远程分支的情况下执行此操作,然后从master重新创建它?我不能放弃所有这些变化,因为它们已被推动。
或者,在开发过程中,是否有更好的方法让每位员工在他/她自己的一致分支上工作?
答案 0 :(得分:14)
在dev_jon中,你可以这样做:
git reset --hard master
可能无法直接适用/相关,但您可以查看GitHub流程:http://scottchacon.com/2011/08/31/github-flow.html
答案 1 :(得分:5)
我不认为您当前的模型非常理想,开发人员应该能够同时开发多个功能,因此每个开发人员只有一个分支不是最灵活的。无论如何,在你的情况下,假设dev_jon跟踪origin / master,我会做什么:
git reset --hard origin/master
这也假设你当前在dev_jon分支上。
希望它有所帮助,
答案 2 :(得分:2)
您可以执行硬重置以使您的dev-jon
分支与主分支相同,但是当您发布新作品时,您必须要小心。远程分支origin\dev_jon
将是您的旧功能,当您来推动时,您将收到如下警告
! [rejected] dev_jon -> dev_jon (non-fast-forward)
error: failed to push some refs to '/tmp/example'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again. See the
'Note about fast-forwards' section of 'git push --help' for details.
考虑按照larsmans的建议创建一个功能分支。