通常在Git中,每个开发人员都会从原点克隆到个人跟踪仓库,进行一些更改,然后向引用其个人机器的管理器发送获取请求,该个人机器具有git-daemon或web服务器,或者允许经理用ssh连接到它。
对于一些变化,它可以让开发人员自己检查一下。对于较大的人,其他人喜欢在检查主人之前查看它。因此开发人员有权检查存储库。
但是,如果经理无法连接到其他开发人员工作机器,并且只能访问原始git仓库或电子邮件,该怎么办?发送差异给他审查的最佳方法是什么?
我们可以在电子邮件中发送补丁,或者开发人员可以将他的分支推送到原点并告诉经理git fetch origin; git diff master..case223
。还是有另一种更好的方法吗?
答案 0 :(得分:6)
我会用
git format-patch <branch-to-compare-against> --cover-letter -o patches/
这将基本上为您的提交创建适当的补丁 然后
git send-email --to <receiver@example.com> --annotate patches/*
查看手册页:
答案 1 :(得分:3)
Git捆绑
git bundle create myproposal.git origin/sharedbranch..HEAD
您可以像回购一样收到它:
cd myworktree
git pull /tmp/myproposal.git
顺便提一下,git bundle也是备份整个仓库的最有效方式,例如
git bundle create /tmp/backup.git --all --tags --remotes
答案 2 :(得分:2)
允许开发者推送到同一个仓库的某些分支。使用gitolite来管理谁拥有对哪个分支的访问权限。无需来回发送电子邮件。
更新:从那时起,我写了这篇文章:http://dymitruk.com/blog/2012/02/05/branch-per-feature/
希望这有帮助。
答案 3 :(得分:1)
无耻的广告:我建议你也考虑Gerrit。
我们将它用于代码审查,这是一个了不起的工具(特别是访问权限的可能性)。有了这个,这里的每个开发人员都可以将他的更改推送到审核分支(并且只在那里),其他开发人员可以查看更改(它们也由Jenkins自动构建和测试,并在测试成功时得到验证)。
在您的情况下,您有权让经理向存储库提交更改,我们也为开发人员启用了更改,并且仅限制了工作流限制,两位开发人员必须审核更改以提交更改。
答案 4 :(得分:0)
注意:除了git send-email
之外,您还可以使用git contacts
contrib script列出您的电子邮件感兴趣的潜在联系人。
使用Git 2.14.x / 2.15,该脚本还会检测“Reported-by
”部分。
commit 09ac673见Eric Blake (BlakeEric
)(2017年7月21日)
(由Junio C Hamano -- gitster
--合并于commit 6d2b8a3,2017年8月11日)
“
git contacts
”(在contrib/
中)现在将“Reported-by:”预告片中的地址列在其输出中,以及Sob:和其他预告片上的地址,以便更轻松通知(并感谢)原始的bug记者。
git-contacts
:也识别“Reported-by:
”对于报告错误的人来说,这很好,以便让他们知道正在考虑修复,甚至可能会帮助他们检查/测试修补程序。
当然......
S-o-b:
表示Signed-off-by:
Signed-off-by|Reviewed-by|Acked-by|Cc
)