我目前正在为一个使用共享git存储库和另一个Scrum团队的Scrum团队工作。为方便起见,我们将调用我的Scrum团队 Autobot 和其他霸天虎。
团队霸天虎拥有对存储库的完全推送和拉取权限,并且负责该框架。
团队 Autobot 能够拉动,但不能推动。通常,如果团队成员独立工作,则没有问题。但是,出现这样的情况,即拉动并推送给另一个团队成员分支是有用的。到目前为止,还没有通过霸天虎(简单修复)授予 Autobot 推送权限,因此需要解决此问题。
用例示例:考虑 Optimus (继续变换器隐喻)是否已完成以下操作:
#!/bin/bash
optimus@workstation0:~/git/work_project/> git branch sdev /sprint/dev --track
optimus@workstation0:~/git/work_project/> git checkout sdev
optimus@workstation0:~/git/work_project/> touch important_file.py
optimus@workstation0:~/git/work_project/> git add important_file.py
optimus@workstation0:~/git/work_project/> git commit -m "Important file added."
现在, Rodimus 通过编辑important_file.py来帮助 Optimus 。他创建了自己的分支并直接从 Optimus的分支中拉出来,并尝试推送:
#!/bin/bash
rodimus@workstation1:~/git/work_project/> git branch sdev /sprint/dev --track
rodimus@workstation1:~/git/work_project/> git pull ~optimus/git/work_project sdev
rodimus@workstation1:~/git/work_project/> echo "'''TODO: Add content''' > important_file.py
rodimus@workstation1:~/git/work_project/> git commit -m "Added TODO".
rodimus@workstation1:~/git/work_project/> git push ~optimus/git/work_project sdev
发生错误。什么是适当的程序?拥有第二个存储库是不可取的,但如果需要则可以。
答案 0 :(得分:3)
2014年更新(3年后)
中的the comments所述Stash实现了分支级别权限
原始答案(2011年7月)
通常的解决方案是第二个回购地点:
但这需要第二次回购。
另一种解决方案是使用Gitolite之类的授权框架来提供push access to an Autobot branch 它只需要一个repo,但是服务器(ssh或apache)能够对推送到repo的用户进行身份验证(因为local protocol没有身份验证)。
所以这两种解决方案都不是一个简单的解决方案。