支持客户,他们发送他们的代码库并要求修复它,在他们发送的zip中通常有一个.git文件夹,我可以用它来查看他们一直在做什么,通常是几个提交和一些新的分支我最后一次看到它。
我情不自禁地觉得我应该能够合并我不时收到的zip文件中的.git文件夹和repo的本地副本我可以保留我用来支持它们的任何历史记录,测试工具等。
客户不会使用git hub之类的东西。
我确信git可以处理它,但我想不出符文。实际上,我希望它能够为我上次看到回购时的所有内容创建补丁并“回放”我的回复。
答案 0 :(得分:2)
假设您拥有"工作副本"在/home/me/clientversion
。
您可以创建一个新的(空)目录/home/me/project
在此目录中解压缩zip存档的最新副本。
从git remote add client /home/me/clientversion
,您可以添加指向该目录的遥控器:
git fetch client
然后执行project
。
在clientversion
的主题中,您现在会在client/branch_name
中看到分支的状态,作为对clientversion
的引用。
你甚至可以拉动,合并,跟踪遥控器......
要进行更新:从project
执行git fetch client
解压缩git bundle
内的新zip档案。
-
注意:正如其他答案中所建议的,echo "id: " . $row["id"]. " - Name: " . $row["title"]. "<br>";
将为您提供更清晰的方式来管理同样的事情。
答案 1 :(得分:1)
你可以让他们导出他们的存储库 - 或者它的一部分 - 作为git包。见http://git-scm.com/docs/git-bundle
命令
git bundle create filename master
创建一个名为filename
的文件,其中包含一个捆绑的存储库,最多包含master
标记的修订版。通过在命令行上列出它们,可以包含多个分支/提示:
git bundle create filename master develop bugfix-mybug
然后您可以将捆绑包作为远程添加到本地存储库中并从中拉出来:
git remote add some-remote-name filename
git fetch some-remote-name
git merge some-remote-name/master
如果您知道目标存储库已经有一些提交,您可以通过指定包的基本提交或基于时间来导出部分包。命令:
git bundle create mybundle --since=10.days master
git bundle create mybundle version1...master
将创建包括重建主分支所需的所有提交的包,假设包的使用者分别具有10天前版本的master
或者标记/分支version1
指向的提交< / p>
当客户端生成一个新的捆绑供您使用时,只需替换该文件并再次运行git fetch some-remote-name
答案 2 :(得分:1)
您可以treat the repository as a remote repository并从那里提取更改,您可以将其与您的分支合并,也可以将您的分支重新绑定。
移动zip文件并不是最有效的传输方式,但它可以正常工作。传输.git目录就足够了,您可以在压缩它之前使用git gc
来节省空间。
在另一个方向,您可以使用git bundle
创建仅缺少部分的包,这将更容易合并。