我们对这种奇怪的情况感到困惑:公司政策的冲突我们必须通过一些工程来解决。
想象一下公司C,以及两名员工,Alice和Bob。 Alice是C的内部员工,Bob是第三方外包商/承包商。 Alice和Bob在同一个项目上工作,该项目存储在公司内部的Git服务器上。但是,现在公司政策禁止Bob访问内部服务器。它并不禁止Alice和Bob交换有关该项目的电子邮件,但现在必须以某种方式修改通过Git的协作。
以下是我们提出的一个解决方案:
我们的目标如下:在第5步之后,Bob的存储库应该在完全的状态下结束,就好像他刚刚从内部服务器执行简单的 git pull 在公司内部。现在的问题是,如何实现这一目标?我们可以为两个存储库准备什么样的“差异”?从本质上讲,有没有办法实现拉动期间交换的信息?
当然,最简单的方法是通过电子邮件发送整个存储库的(压缩)副本,但这将是非常庞大且极其无效的。有没有更好的方法来实现这一目标?
谢谢!
答案 0 :(得分:1)
最简单的方法是通过电子邮件发送整个存储库的(压缩)副本,
您实际上可以通过增量方式执行此操作:发送git bundle
(请参阅“How can I email someone a git repository?”)。
我详细介绍了在“Transferring changes made to multiple branches using git-bundle”中执行增量捆绑的方法 最简单的是按日期:
cd myRepo
git bundle create mybundle-inc --since=10.days --all
这个想法是生成一个文件,你可以从中提取(好像那个文件是一个git repo)。
答案 1 :(得分:0)
除了发送@VonC回答的Git包之外,如果Alice可以访问Bob的PC,那么他可以设置一个裸存储库,Alice推送她的更改。这个裸存储库基本上是公司内部存储库的镜像。
除此之外,我不知道这个荒谬的政策应该达到什么目的。无论有没有,Bob都会拥有相同的数据(如果Alice推送/发送捆绑包)