我一直在自己开发的项目中使用git几个月。我有一个本地存储库,并定期将其推送到github进行备份。
我想在这个项目中添加另一个开发人员,但是我将负责整合整个项目。
推荐的工作流程是什么?
我们是否需要为每个开发人员提供私有和公共存储库?
如果github存储库是主存储库,那么其他开发人员是否必须在我的计算机中克隆此存储库或存储库?
他是否有权进入我的存储库或者我应该从他的存储库中取出?
答案 0 :(得分:8)
Git面向拉,而不是推动。理想情况下,其他开发人员将从Github上的 public repo中克隆;然后,当他完成了他的更改时,你要么从他提供的回购中提取,要么将他的更改与他发送给你的补丁整合。无论哪种方式,您都可以将更改提取到计算机上的私有 repo ,修复因合并而导致的任何错误,然后将更改推送到您的公共回购( Github上的那个。)
当然,让他提交你的Github回购也没有错。
答案 1 :(得分:5)
他可以自己创建github存储库的fork,当他觉得他已经准备好集成时,他可以向你发送pull请求(你将他的repos公共URL作为遥控器)或者他可以发送给你{{1设置。
通常在这种工作流程中,责任主要在于他,以确保他的补丁适用于你的公共主人。
答案 2 :(得分:2)
建议......确保你们都清楚哪些git操作会重写历史记录。重置分支指针,重新定位,附加提交等将重写历史记录,这是好的,但仅适用于私有分支。对于您正在共享的分支(推送或拉出),您应该避免重写历史记录。
这是一篇关于Packaging software using Git的文章,这是一篇很好的读物。它针对的是进行大规模集成的人(比如构建Linux发行版),但主体通常是适用的。