2017-08-28 63 views
1

我有两个人如何生成包含提交SHA的修补程序?

  • 鲍勃,继续与其团队对项目
  • 翘,也就是现在在度假与她的笔记本电脑远离Bob的办公室

Bob想送发展自Alice离开后,Alice的主分支diff

我最初以为

bob $ git format-patch --stdout e6def65..master > history.patch 

alice $ git am history.patch 

将保持提交哈希值,但事实并非如此。

是否有解决方案可以通过电子邮件轻松地交换保存提交SHA的差异?

+0

使用树的散列,提交主题,作者电子邮件和日期以及提交者电子邮件和日期来计算提交哈希。提交者的电子邮件和日期在您的方案中与Bob和Alice不同。 – axiac

+0

'git am' *可以*保留提交哈希,但前提是没有合并(默认情况下它实际上并不尝试保留哈希,因为@axiac注意到您必须使提交者信息匹配)。如果您是原作者和提交者,并且您使时间戳匹配('--committer-date-is-author-date'),则您将得到相同的散列,前提是没有合并。 – torek

回答

2

请问git bundle做你想做的?

一些工作流程需要一台机器上显影的一个或多个分支另一台机器上被复制,但两个机不能直接连接,因此,交互GIT中的协议(GIT,SSH,HTTP)不能用。这个命令提供了对git fetch和git pull的支持,方法是在源机器的存档中打包对象和引用,然后通过某种方式(例如,通过sneakernet)移动归档文件后,使用git fetch和git pull将这些文件导入到另一个存储库中, 。由于存储库之间不存在直接连接,因此用户必须为目标存储库持有的数据包指定基础:数据包假定该基础中的所有对象都已存在于目标存储库中。

另请参阅this previous question关于Git通过电子邮件。

相关问题