当本地和远程仓库拥有相同文件,但本地没有 .git 文件夹时,有什么方法让两者关联吗?

2016-03-06 23:48:25 +08:00
 DarryO

假设仓库里有部分稍大的数据文件,为了不重复下载文件,如何利用已有的文件?
如果本地的文件对应服务器最新文件,应该怎么做?
如果本地只是仓库的某一个版本又该怎么做?

P.S 我遇见过几次这种情况,所以抽象了一下问题,希望能了解一下 git 是否有这种使用方法。

另,还请忽略下面这样的想法...像是"git 服务器不要存放数据文件","怎么能把本地文件的版本信息搞丢"之类的...

3216 次点击
所在节点    问与答
8 条回复
guoyijun163
2016-03-07 00:04:22 +08:00
最多也是只是重复下载一遍你本地和远程仓库相同的文件而已……这已经 checkout 的文件……远远比仓库里的总和要小的多吧
DarryO
2016-03-07 00:12:03 +08:00
@guoyijun163 假设 文件里有份 *很大的* *不会改动的* 数据文件, checkout 的文件大都都是 *比较小的* 代码文档的话, 我觉得这种重复下载的代价还是挺高的吧
zeroten
2016-03-07 01:52:29 +08:00
git init
git remote add origin git@github.com:yourname/yourproject.git
git pull origin master

可以参考这个试试 http://stackoverflow.com/questions/6246907/can-deleted-git-be-restored
msg7086
2016-03-07 06:03:55 +08:00
.git 里存储的结构挺复杂的,不仅仅是单纯的数据文件,所以重建.git 的话还是需要重新从服务器上拉回来。倒是目录里的文件其实是无所谓,因为是从 .git 目录里签出的。我不知道通过目录里的文件重建 .git 是否可行,但是我觉着研究这个的时间应该足够你重新下载一遍了。
PS: 你也可以直接从服务器上 pull repo ,不需要去最原始的源头 pull ,特别是服务器在国内而原始 repo 在国外的情况。
clino
2016-03-07 07:25:37 +08:00
我觉得从你的目的上来说应该没办法关联
Sharuru
2016-03-07 07:52:10 +08:00
我一般都是把文件备份一下,然后 clone 的时候打断再把文件复制回去(
suchj
2016-03-07 08:00:45 +08:00
1 、 clone 远程文件到本地(放到不会冲突的目录),再把本地文件夹里的文件 cp 到 clone 下来仓库,查看变化,加入版本控制
2 、把本地文件 scp 到仓库机器,做方法 1 的操作,适用于仓库文件很大,而本地文件很小,添加本地到仓库而不取回的情况
angryRabbit
2016-03-07 10:22:18 +08:00
找同事用 u 盘拷贝一份放到自己电脑上

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/261563

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX