推动提交到不同的分支

我们的老板最近决定尝试一个外包团队“增加容量”,因为我们修改现有应用程序以添加新功能。 尽管我担心他选择的团队似乎交流不好,并没有提出足够的问题来真正理解并且有效,但我们仍然与他们一起去了。

我们将它们设置为在我们的Git存储库上进行协作(托管在GitHub上)。 我们为他们创建了一个分支(TheOutsourcedBranch,我们会这样称呼它),并要求他们在这个分支中完成他们所有的工作。

此外,我们要求他们在每天结束时提交他们的提交,以便我们能够获得他们的工作速度以及(更重要的)他们的代码有多好的一个体面的想法。

今天他们第一次推。 五个提交,他们全都在掌握。 我试图弄清楚如何将他们的提交从master转移到TheOutsourcedBranch,而不会失去他们所做的工作(尽管从外观上看,我们将不得不抛弃它)。

可视化参考 - 橙色点是他们的提交,灰色是我的。

橙色的点是他们的提交,灰色点是我的。

我知道有数十个关于重组的问题(这可能是我需要在这里做的),但我很难弄清楚哪些适用于我的具体情况。 如果它很重要,外包组和我自己是目前真正使用回购的唯一人。

提前致谢!


编辑:我可能已经找到了我正在寻找的东西:将最近的提交移到Git的新分支

不过,我想检查我的理解。 在本地,我创建了一个主分支(TheOutsourcedBranch),它将包含一切AH。 然后我将主人重置回C.主人现在将包含AC。

假设这是正确的,那对我来说(本地)会很好。 但是,那么我需要做些什么来“强制”远程存储库(GitHub)接受我的本地视图,看看事情是如何实现的并放弃其历史版本?

一旦这样做了,我想我可以重新处理这个问题,使它更通用/提供信息并删除一些绒毛 - 否则它可能是删除的好候选者,我猜想。


获得分支很简单:

git branch their-branch master
git reset --hard master $SHA1_OF_C
git push --force $SHARED_REPO_REMOTE

这将重写历史; 它会创建一个新的分支,它等价于当前的主分支,名为their-branch ,然后将您的本地主分区重置为指向随机的SHA1(...或分支,或标记或其他),最后强制更新远程存储库分支来匹配你的本地分支。

这提供了你想要的情况。

注意事项:这会重写历史,并且可能会造成任何已经建立了老主人的人。 注意下面的合并问题。

没有rebasing希望或需要。

(另外,我建议你给他们一个临时存储库,或者让他们使用git send-email ,或者使用GitHub pull请求,否则就会阻止他们推送到主服务器,直到他们做对了。 ,可能会有一段时间了。)


让他们从每个工作单上的起点出发,为每一项工作做一个分支。 让他们将工作合并到RC分支。 您可以将您的工作合并到RC分支。 这将允许你经常测试。 查看我们在这里的工作流程:

https://plus.google.com/109096274754593704906/posts/R4qkeyRadLR

如果您对此有任何疑问,请告知我们。 它适合我们。

链接地址: http://www.djcxy.com/p/4299.html

上一篇: Moving Pushed Commits to a Different Branch

下一篇: creating git branch after the fact?