我正在遵循此处描述的工作流程,因为我发现许多指向此页面的参考资料都是一个很好的工作流程。正如文章中提到的,“功能”分支在开发人员之间共享,但不要转到中央存储库。
假设开发人员“A”使用git checkout -b newfeature develop
. 现在假设开发人员“B”也需要处理此功能。这是我的问题。
我做了什么:
- 开发人员“B”将开发人员 A 的机器添加为远程
- 开发人员“B”运行
git branch remoteA/newfeature
- 开发人员“B”在这个分支上工作,提交他的工作并将更改推送回 remoteA。
步骤 3 不工作,现在。我收到一条消息:
远程:错误:默认情况下,在非裸存储库中更新当前分支是被拒绝的,因为它会使索引和工作树与您推送的内容不一致,并且需要'git reset --hard'来匹配工作树到头。
远程:错误:您可以在远程存储库中将“receive.denyCurrentBranch”配置变量设置为“忽略”或“警告”,以允许推送到其当前分支;但是,除非您安排更新其工作树以匹配您以其他方式推送的内容,否则不建议这样做。
远程:错误:要压制此消息并仍保持默认行为,请将 receive.denyCurrentBranch 配置变量设置为 'refuse'。
我已经设置了sharedRepository = true
,但它没有帮助。
我有两个问题:
- 在开发人员之间共享功能分支的正确方法是什么?
- 如何将开发人员 B 存储库中的更改推回开发人员 A 的原始存储库?