繁体   English   中英

使用 git 合并手动复制目录中的更改

[英]Using git to merge changes in a manually-copied directory

在工作中,我使用 git 在我们的远程 VPS 上保留一个大目录的备份。 因为我住在一个非常偏远的小镇,互联网很差,价格昂贵,我无法通过互联网复制这个 repo。 相反,当我开始在家工作时,我在外部驱动器上带了一份目录副本(不幸的是没有“.git”子目录)。

我对目录的主副本中的文件进行了大约 10kb 的更改。 我想将这些合并到远程服务器上的 git 存储库中,而无需通过 Internet 传输整个目录。

到目前为止的步骤:

git init
git add .
git commit -m "initial"
git remote add VPS [SSH_ADDRESS]
git remote show VPS   # successfully connects to remote

现在我想合并我在本地所做的 10kb 更改,而不传输未更改的 GB 数据。

我尝试过但失败的步骤:

git push VPS   # can't because there are non-integrated remote changes
git fetch VPS  # starts downloading GBs of data

不知道接下来去哪里 go。

一种尝试传输尽可能少的数据而不使用 git 的传输方法的 hacky 方法,它可能有效,也可能无效:

  • 生成本地工作的补丁( git format-patch
  • 压缩这些补丁( tarzip
  • 将它们发送到远程服务器( scprsync
  • 登录远程服务器( ssh
  • 应用补丁( unzip / tar后跟git apply ),修复冲突并根据自己的喜好编辑历史

这将使您的本地副本像以前一样不同步。


假设“GB 数据”是大文件而不是很多小的更改/文件,您可以避免将它们存储在实际的 git 存储库中。

有多种方法可以解决这个问题,我都没有尝试过,但这里有一些众所周知的方法:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM