V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
liukanglai
V2EX  ›  问与答

如何让 git push 软链接?

  •  
  •   liukanglai · 2021-08-27 11:06:47 +08:00 · 4297 次点击
    这是一个创建于 1202 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需要: 我想要创建一个 git 仓库, 里面全是需要备份的文件夹, 不想复制粘贴... linux 不支持硬链接目录, 软链接无法 push 文件... 各位有什么好的解决办法吗?

    15 条回复    2021-08-29 14:03:03 +08:00
    QingStone
        1
    QingStone  
       2021-08-27 11:09:13 +08:00 via iPhone
    不要用 git 管理二进制文件
    liukanglai
        2
    liukanglai  
    OP
       2021-08-27 11:10:19 +08:00 via Android
    只是些配置文件,还有 mark down 文件
    AoEiuV020
        3
    AoEiuV020  
       2021-08-27 11:20:58 +08:00   ❤️ 1
    听这意思,是比如 /gitrepo/bak/etc/nginx 目录软链接指向 /etc/nginx,然后提交希望提交的是 /etc/nginx 中的真实文件而不是软链接?

    感觉你这需要的是 mount --bind, 而不是软链接,
    liukanglai
        4
    liukanglai  
    OP
       2021-08-27 11:25:04 +08:00 via Android
    @AoEiuV020 感谢,我去查查
    sutra
        5
    sutra  
       2021-08-27 11:25:30 +08:00
    我是反过来的,repo 的位置存着文件,用的地方软链接到它。有些不支持软链接的,则复制过去的,写了脚本来对比 repo 和实际文件。
    Reficul
        6
    Reficul  
       2021-08-27 11:45:09 +08:00   ❤️ 1
    写个 git hook
    liukanglai
        7
    liukanglai  
    OP
       2021-08-27 12:22:19 +08:00
    @AoEiuV020 可以挂载成功,但是一关机就不行了啊,可惜
    liukanglai
        8
    liukanglai  
    OP
       2021-08-27 12:25:23 +08:00
    @AoEiuV020 就是有点烦,希望有更好的办法吧
    AoEiuV020
        9
    AoEiuV020  
       2021-08-27 12:28:20 +08:00
    @liukanglai /etc/fstab 自动挂载,
    liukanglai
        10
    liukanglai  
    OP
       2021-08-27 12:50:46 +08:00
    @Reficul
    @AoEiuV020 成功搞定,两种方法都可行。而 hook 貌似极其强大,或可 push 前自动拉取文件,还可 clone 仓库时自动分发文件到指定目录!!!
    netwjx
        11
    netwjx  
       2021-08-27 16:13:54 +08:00
    git 有个专门管理大二进制文件的方案

    Git LFS ( Large File Storage )
    hsfzxjy
        12
    hsfzxjy  
       2021-08-27 18:17:18 +08:00 via Android
    楼上怎么有人说二进制和大文件呢,楼主明明不是这个问题
    sunbreak
        13
    sunbreak  
       2021-08-29 08:37:13 +08:00
    如果需求不是很复杂,普通文件的软连接是可以直接 push 的

    Flutter 跨端程序,很多 iOS/macOS 实现相同,都直接引用 common 的文件
    - common: https://github.com/Sunbreak/cronet_flutter/tree/master/common
    - iOS: https://github.com/Sunbreak/cronet_flutter/tree/master/ios/Classes
    - macOS: https://github.com/Sunbreak/cronet_flutter/tree/master/macos/Classes
    liukanglai
        14
    liukanglai  
    OP
       2021-08-29 11:00:50 +08:00 via Android
    @sunbreak 不清楚,我的软链接没有 push 成功。。。
    dingwen07
        15
    dingwen07  
       2021-08-29 14:03:03 +08:00 via iPhone
    git submodule 逃(
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5400 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 02:59 · PVG 10:59 · LAX 18:59 · JFK 21:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.