我和我的团队在不同的网络上工作。我们没有互联网连接,也没有共享相同的网络。因此,我们唯一可以传输文件的方式是使用U盘。
唯一让我能够提交到远程Git仓库的方法是使用我的同事的电脑,该电脑可以访问连接了Git服务器的网络。那么,我需要运行哪些命令来获取、合并并将我的提交推送到她的计算机上,而不是传输整个工作目录?
比如,只传输远程服务器缺少的提交。
编辑:我忘记提到U盘可能会定期被清除,这是安全措施的一部分。但在U盘上存储远程仓库仍然是一个非常好的想法!
我和我的团队在不同的网络上工作。我们没有互联网连接,也没有共享相同的网络。因此,我们唯一可以传输文件的方式是使用U盘。
唯一让我能够提交到远程Git仓库的方法是使用我的同事的电脑,该电脑可以访问连接了Git服务器的网络。那么,我需要运行哪些命令来获取、合并并将我的提交推送到她的计算机上,而不是传输整个工作目录?
比如,只传输远程服务器缺少的提交。
编辑:我忘记提到U盘可能会定期被清除,这是安全措施的一部分。但在U盘上存储远程仓库仍然是一个非常好的想法!
# Mount thumbdrive
# Add a remote to the filesystem
git remote add cardin_usb /Volumes/myusb # or whatever the usb path is
# pull in the changes
git fetch cardin_usb
# merge any branches as per normal eg
git checkout master
git merge cardin_usb/my_feature
编辑 - 刚刚看到您只想进行更改。如果您知道远程服务器的最后一次提交,您可以生成补丁:
git format-patch lastServerCommit^..HEAD --stdout > new_changes.patch
git clone --bare
更容易操作,比手动处理补丁更容易)。 - coredumpgit
首先能够创建的有用历史记录。通过pull/fetch交换的已经是一个捆绑包(如您所说的压缩的增量)。git bundle
允许您采用自己的方式传输该数据,特别是“通过 sneakernet”(请参见:http://linux.die.net/man/1/git-bundle)。 - coredumpgit fetch
来获取你的提交内容,那会怎样呢?fetch
只会更新分支:没有冲突(没错,我在引用达斯·维达的话)。然后,SourceTree可能能够看到参考信息已经被更新。 - coredump另外,您可以在计算机之间创建以太网网络,并使用局域网连接到彼此的计算机并拉取更改。
例如: git remote add xyz myuser@laptop:/path/to/repo.git git pull xyz abc
git clone file:////192.168.1.1/yourbranch
git remote add myorigin https://path/to/remote/repository
git pull myorigin/yourbranch (or git rebase myorigin/yourbranch)
git push myorigin yourbranch
我假设你的同事电脑的IP地址是192.168.1.1
,但你需要更改它(在Windows命令提示符中键入ipconfig
)。这还假定你在本地机器上有一个名为yourbranch.git
的文件可以克隆。