Git修订差异

问题描述 投票:1回答:2

我以前主要使用SVN,现在是Git新手。我在MacBook Pro上使用 "git svn "来使用SVN仓库,但偶尔我不得不远程工作,因为我只能通过ssh-连接到中间的Linux服务器,然后再连接到办公室网络中的Mac服务器,该服务器也有git-svn仓库的副本。由于端口转发被禁用,所以从我的MacBook Pro远程到办公室SVN的ssh隧道不是一个选项。

现在,当我在远程想获得最新的代码时,我会更新我的远程仓库,将我MacBook Pro上的版本和最新版本之间的差异转储到一个文件中,通过中间服务器将其ftp到我的MacBook Pro上,然后在我的本地Git仓库中打上补丁。我已经用一些bashexpect脚本把这个过程自动化了,但我没有修订注释和使用Git的所有灵活性。

有什么好办法可以把差异,包括所有的修订信息转储到一个文件中,然后用ftp把它转储到我的本地Git仓库中?

git diff git-diff
2个回答
1
投票

你想 git bundle.

假设 abcd1234 是你在笔记本上仓库中的最新提交。在拥有Git仓库的机器上,将其复制到你的笔记本上,然后:。

git bundle create myrepo.bundle abcd1234..master

现在把它复制到你的笔记本上,然后,

git pull /path/to/myrepo.bundle master

当然,你也可以说服IT部门允许你设置端口转发,或者你自己来做,运行以下命令 netcat 的中间机器上。


0
投票

Git的神奇之处在于,每个仓库都是平等的。这意味着你可以采用这样的工作流程。

  1. 把Git克隆到中间服务器上 现在该服务器上有了一个完整的版本库克隆。

  2. 再从中间服务器上做一次 Git 克隆到你的本地机器上。现在你可以在中间服务器上自由地拉和推。

  3. 定期登录中间服务器,通过正常的拉推操作与原服务器同步。

这个工作流程让 Git 做它最擅长的事情,即为您管理三角洲。

如果您想更夸张一点,可以在本地克隆文件的 .git/config 文件来引用这个中间服务器,这样你就可以根据你所在的位置自由选择pulllpush的位置。

当你在家里的时候,你输入 git pull myintermediate master当你在工作时,你输入 git pull origin master.

欢迎来到Git这个神奇的地方。

© www.soinside.com 2019 - 2024. All rights reserved.