我主要使用SVN,现在是Git新手。我在Linux上使用"git svn“来处理我的MacBook存储库,但有时我不得不远程工作,因为我对办公室网络的唯一访问是在ssh连接到中间的Linux服务器之后,然后是在办公室网络中的我的Mac服务器,它也有一份git-svn存储库的副本。端口转发已禁用,因此不能选择从我的SVN远程使用ssh隧道连接到office MacBook。
现在,当我在远程并且想要获得最新的代码时,我更新我的远程存储库,转储我在Git上的版本和文件的最新版本之间的差异,通过中间服务器将其通过ftp传输到我的MacBook专业版,然后在我本地的MacBook存储库中修补文件。我使用一些bash/expect脚本在一定程度上自动化了这个过程,但我没有修订注释和使用Git的所有灵活性。
有没有一个很好的方法来转储差异,包括所有的修订信息到一个文件,ftp它,并将其应用到我本地的Git库?
发布于 2013-04-30 03:01:34
你想要git bundle。
假设abcd1234是您笔记本电脑上存储库中的最新提交。在拥有Git存储库的计算机上:
git bundle create myrepo.bundle abcd1234..master现在将其复制到您的笔记本电脑上,然后:
git pull /path/to/myrepo.bundle master当然,您可能还希望说服IT部门允许您设置端口转发,或者通过在中间机器上运行netcat来自己设置端口转发。
发布于 2013-04-30 02:57:17
Git的神奇之处在于每个存储库都是平等的。这意味着您可以采用如下工作流:
这个工作流程让Git做它最擅长的事情,也就是为你管理增量。
现在,为了更有趣一些,您可以在本地克隆的.git/config文件中设置一个单独的“远程”条目来引用这个中间服务器,这样您就可以根据您所在的位置自由地选择拉/推的位置。
当你在家里的时候,你输入git pull myintermediate master,当你在工作的时候,你输入git pull origin master。
欢迎来到伟大的Git。
https://stackoverflow.com/questions/16285726
复制相似问题