假设仓库里有部分稍大的数据文件,为了不重复下载文件,如何利用已有的文件?
如果本地的文件对应服务器最新文件,应该怎么做?
如果本地只是仓库的某一个版本又该怎么做?
P.S 我遇见过几次这种情况,所以抽象了一下问题,希望能了解一下 git 是否有这种使用方法。
另,还请忽略下面这样的想法...像是"git 服务器不要存放数据文件","怎么能把本地文件的版本信息搞丢"之类的...
1
guoyijun163 2016-03-07 00:04:22 +08:00
最多也是只是重复下载一遍你本地和远程仓库相同的文件而已……这已经 checkout 的文件……远远比仓库里的总和要小的多吧
|
2
DarryO OP @guoyijun163 假设 文件里有份 *很大的* *不会改动的* 数据文件, checkout 的文件大都都是 *比较小的* 代码文档的话, 我觉得这种重复下载的代价还是挺高的吧
|
3
zeroten 2016-03-07 01:52:29 +08:00
git init
git remote add origin [email protected]:yourname/yourproject.git git pull origin master 可以参考这个试试 http://stackoverflow.com/questions/6246907/can-deleted-git-be-restored |
4
msg7086 2016-03-07 06:03:55 +08:00
.git 里存储的结构挺复杂的,不仅仅是单纯的数据文件,所以重建.git 的话还是需要重新从服务器上拉回来。倒是目录里的文件其实是无所谓,因为是从 .git 目录里签出的。我不知道通过目录里的文件重建 .git 是否可行,但是我觉着研究这个的时间应该足够你重新下载一遍了。
PS: 你也可以直接从服务器上 pull repo ,不需要去最原始的源头 pull ,特别是服务器在国内而原始 repo 在国外的情况。 |
5
clino 2016-03-07 07:25:37 +08:00 via Android
我觉得从你的目的上来说应该没办法关联
|
6
Sharuru 2016-03-07 07:52:10 +08:00 via Android
我一般都是把文件备份一下,然后 clone 的时候打断再把文件复制回去(
|
7
suchj 2016-03-07 08:00:45 +08:00 via Android
1 、 clone 远程文件到本地(放到不会冲突的目录),再把本地文件夹里的文件 cp 到 clone 下来仓库,查看变化,加入版本控制
2 、把本地文件 scp 到仓库机器,做方法 1 的操作,适用于仓库文件很大,而本地文件很小,添加本地到仓库而不取回的情况 |
8
angryRabbit 2016-03-07 10:22:18 +08:00
找同事用 u 盘拷贝一份放到自己电脑上
|