我的老板决定最近尝试外包团队“增加产能”,因为我们正在修改一个现有的应用程序以添加新功能。尽管我担心他选择的团队似乎沟通不畅,也没有问足够的问题来真正理解和有效地工作,但我们还是选择了他们。
我们让他们在我们的Git存储库(托管在GitHub上)上协作。我们专门为他们创建了一个分支(称之为TheOutsourcedBranch),并要求他们在此分支中完成所有工作。
此外,我们要求他们每天结束时推送他们的提交,以便我们可以对他们的工作速度(更重要的是)和代码质量有一个合理的了解。
今天他们第一次推送。五个提交,全部在主分支(master)上。我正在努力想办法将他们的提交从主分支(master)移动到TheOutsourcedBranch分支中,而不会丢失他们所做的工作(尽管看起来我们无论如何都需要放弃它)。
橙色圆点是他们的提交,灰色圆点是我的提交。
我知道关于变基的问题有很多(可能是我需要做的),但我很难弄清哪些适用于我的特定情况。如果有影响的话,现在外包团队和我自己是唯一真正使用存储库的人。
提前致谢!
编辑: 我可能已经找到了我要找的内容:将最近的提交移动到新分支中
但我想确认我的理解。在本地,我从主分支(master)创建一个分支(TheOutsourcedBranch),其中将包含所有 A-H 的提交。然后,我将主分支(master)重置为 C。主分支(master)现在将包含 A-C。
假设这是正确的,对我来说(在本地)就没问题了。但那么我需要做什么才能“强制”远程存储库(GitHub)接受我本地的查看方式,并且放弃它自己的历史版本呢?
一旦这个问题解决了,我认为我可以重新制定这个问题,使它更加通用/信息量大,并删去一些废话--否则,我猜可能会被删除。
git reset --hard $SHA1_OF_C
(删除对主分支的引用);在此之前我一直收到“fatal: Cannot do hard reset with paths.”的错误信息。可能这是Git新版本的一个变化? - Chris O'Kellypush --force
,这是一个坏主意。它会严重破坏已经拉取的其他用户的历史记录。更糟糕的是,如果您将Git日志集成到其他系统中,例如Redmine、Jira等,则可能会严重破坏数据库,并且清理起来可能相当困难。 - Adam