问题:在某个目录中,Git push仅限于极少数用户(User1)。其他用户(User2)无法在此处推送更改。
有没有办法让 - 在这个目录中User2提交更改(git add + Git commit),然后他向User1提供提交号,后者提供Git推送?
可以吗?
答案 0 :(得分:2)
通常,User2
执行更改并提交它们。然后,她将这些更改提供给推动上游更改的User1
。
可以通过各种机制提供更改:
User2
可以git format-patch
他们并通过电子邮件将补丁发送到User1
User2
可以使用git request-pull
格式化电子邮件,保存User1
的详细信息,以便找到更改(额外的裸仓库,对机器的直接读取权限{ {1}},...)您的要求并不少见:许多开源项目的工作原理如下:虽然每个人都可以贡献变更,但是某些(值得信赖的)人员可以将这些变更集成到实际的项目存储库中。
修改强>
我将提供一些有关如何在User2
或git format-patch
使用
为您执行的最后3次提交创建补丁:
git request-pull
这将创建3个补丁文件,您可以通过电子邮件发送给允许在上游回购提交的人
为分支git format-patch -3
的所有提交创建补丁,因为您从master分支出来了:
my-new-feature
这将完成您在git format-patch master..my-new-feature
中执行的每次提交并从中创建补丁。再次,将这些补丁发送给维护者。
直接从硬盘发布对维护者的更改(Windows):
my-new-feature
。从现在开始,维护者可以读取共享文件夹的内容打开你的控制台,让神奇的事情发生:
\\yourmachine\yourworkingcopy
这会将现成的电子邮件文本发送到控制台,您可以将其发送给维护人员。