能不能在一个项目中使用不同的 git?

2020 年 4 月 15 日
 JCZ2MkKb5S8ZX9pq

背景

- bin
- deps
- sqlite
- assets

需求

问题

3981 次点击
所在节点    git
22 条回复
coderluan
2020 年 4 月 15 日
Submodule 不行吗?
zu1k
2020 年 4 月 15 日
git submodule
GM
2020 年 4 月 15 日
submodule 太难用了,别用。
FHXISDOG
2020 年 4 月 15 日
添加一个新的远程仓库,git remote add xxx
yanqiyu
2020 年 4 月 15 日
这其实就是 submodule 的典型用途
但是 submodule 确实太麻烦
你更新了 submodule 的仓库之后还要更新外面的仓库
tairan2006
2020 年 4 月 15 日
其他部分用 dropbox 自动同步,反正你只要最新的,也不需要版本管理吧
JCZ2MkKb5S8ZX9pq
2020 年 4 月 15 日
submodule 的确有点麻烦,而且有些东西在根目录下面,切分起来也不大方便。
GreyYang
2020 年 4 月 15 日
比较复杂的项目可以参考 Android 的 Repo & Gerrit, 可以满足管理多个 git 仓的需求, 但是本身也引入了复杂度. https://source.android.com/setup/develop#repo
crz
2020 年 4 月 15 日
可以指定 git dir, 或者 work tree, 同一个目录对应多个 git dir,每个 git dir 分别设置 exclude

缺点是 exclude 每个客户端都要设置
cmdOptionKana
2020 年 4 月 15 日
依赖和大文件本来就不应该用 git 吧?用别的备份方式就好了。
bog
2020 年 4 月 15 日
你是需要 git lfs 吗
james122333
2020 年 4 月 15 日
硬派实现啊 写脚本差不多
SilentDepth
2020 年 4 月 15 日
除了 Git Submodule 还有更好的办法?

麻烦的问题可以靠脚本和 Alias 解决
vevlins
2020 年 4 月 15 日
感觉你之所以分开同步只是因为文件太大懒得时刻保持同步,不想更新的时候就不 git add 不就得了嘛,需要的时候再 add + commit + push 。

git submodules 有些大材小用了吧? 楼上的 lfs 还合理点,没用过,听说也有坑,我们公司做美术的还是习惯 svn 。
basstk
2020 年 4 月 15 日
同意 4 楼说的添加一个新的远程仓库,没测试过,应该可以
JCZ2MkKb5S8ZX9pq
2020 年 4 月 15 日
@vevlins

也不完全是,因为 homeassistant 本身结构不像我的示例这么清晰。
根目录下也有不少文件。这也是 submodule 不太方便的地方。

一部分是我的设备和自动化等等的配置文件。这部分是改完就 git 。

同时还有很多第三方插件,这个就类似 deps,比如第三方更新了,一般来说向下兼容,但偶尔也会出错。但这部分就希望跟我自己的配置分开 git 。因为更新时间不定,而且很杂,而且也都不是我的代码。

另外还有它运行中自己的 sqlite 和其它一些 log 之类的东西。

这些部分混在一起。我目前是主要备份自己写的代码,其它 ignore 。
偶尔 homeassistant 版本升级之类的,大都能兼容。但万一不兼容,有时候懒得搞就想直接回退或者比较一下差异啥的,就想要个 git,但是希望和自己写的部分能区分开。

---

另外比如自己的网站,其实也差不多,外部依赖的 js 我会分版本存一份。万一不兼容,老项目就直接指到老版本了。但那个结构比较清晰,所有第三方 js 单独丢一个目录,备份起来也就还好。实在不行还有外部 cdn 之类的。

---

美术的确是 svn 好点。最终用图 svn,源文件定期手动硬盘备份。
wangyzj
2020 年 4 月 16 日
写一个 shell
每个月第一天手动 add 一下
27
2020 年 4 月 16 日
本项目 ignore deps 文件夹
把文件夹 ln -s 或用 crontab 定时复制到另一个 git repo
msg7086
2020 年 4 月 16 日
git 可以干但是这种场景似乎不是 git 该干的活。最好还是单独做备份工作。
reus
2020 年 4 月 16 日
临时删掉.gitignore 文件不就行了,提交之后再放回去。

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

https://study.congcong.us/t/662754

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

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

© 2021 V2EX