Git 能否实现两个 remote 自动配置不同的 ignore? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
vencent
V2EX    git

Git 能否实现两个 remote 自动配置不同的 ignore?

  •  
  •   vencent 2017-07-14 08:29:59 +08:00 5028 次点击
    这是一个创建于 3016 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近遇到一个我觉得还算常见的问题不知道怎么解决:本地有一个 git repo,我想每次 push 的时候提交一份不包含生产环境配置文件的到 GitHub 分享,同时把包含所有文件的 push 到生产环境服务器(即两个 remote 使用不同的 ignore 设置)

    大家有什么好方案吗?
    24 条回复    2017-08-14 19:51:11 +08:00
    misaka19000
        1
    misaka19000  
       2017-07-14 08:37:37 +08:00 via Android   1
    开两个不同的 branch
    340244120
        2
    340244120  
       2017-07-14 08:40:10 +08:00 via Android
    再开一个 repo,或者手动切换 ignore
    vencent
        3
    vencent  
    OP
       2017-07-14 08:42:38 +08:00
    补充:我使用 Tower 来管理 git
    ClassicOldSong
        4
    ClassicOldSong  
       2017-07-14 08:46:09 +08:00 via Android
    开两个不同的 branch 吧,每次 merge 一下
    mrcn
        5
    mrcn  
       2017-07-14 08:49:25 +08:00 via Android
    都不加入版本控制,参考 Laravel 的.env 文件
    一般来说环境配置这种东西很难有变动吧……
    gccdchen
        6
    gccdchen  
       2017-07-4 08:50:07 +08:00
    如果你配置不是常变的话 , 为什么不弄一份 config.xml.sample , 把 config.xml 加入 ignore
    crysislinux
        7
    crysislinux  
       2017-07-14 08:51:47 +08:00
    我们的配置文件都是单独写的,没在仓库里,仓库里一般放个配置文件的例子,比如 config.example.js 之类的
    az422
        8
    az422  
       2017-07-14 09:02:22 +08:00 via Android
    为什么不根据环境变量读取不同配置
    vencent
        9
    vencent  
    OP
       2017-07-14 09:04:08 +08:00
    @mrcn 确实配置文件不常改, 这个方法可以。不过我觉得这个需求也还算常见吧,git 居然没有提供这方面的支持
    yanhejihe
        10
    yanhejihe  
       2017-07-14 09:12:00 +08:00   1
    @vencent git 是为了文件一致性,不同的 repo 文件不一样,那还得了
    momocraft
        11
    momocraft  
       2017-07-14 09:21:45 +08:00
    ignore 是在 commit 之前有效的, push 是之后
    yanhejihe
        12
    yanhejihe  
       2017-07-14 09:25:01 +08:00
    最近我也在用 git 部署,感觉有点问题,资源文件和代码混到一起了,感觉 git 直接用来部署不是很好。有谁做过的分享一下?
    mooncakejs
        13
    mooncakejs  
       2017-07-14 09:28:01 +08:00 via iPhone
    @yanhejihe submodule。
    wsy2220
        14
    wsy2220  
       2017-07-14 09:33:21 +08:00
    配置文件用一个单独的 repo
    middleware
        15
    middleware  
       2017-07-14 10:08:50 +08:00
    不同的 remote 不是用来区分不同的内容的。因为 Git 区分不同内容的唯一方式就是 SHA-1。所以还是老老实实的 branching 才对。对 Git 来说,不同的物理位置根本不是区分内容的依据。
    shalk
        16
    shalk  
       2017-07-14 11:04:24 +08:00
    个人不推荐用 git push 来做部署,建议都保持一致,

    根据环境不同,生效的配置文件不同;
    或者用部署工具来处理;
    andyL
        17
    andyL  
       2017-07-14 12:37:43 +08:00
    两个 ignore 不能取个并集吗
    bombless
        18
    bombless  
       2017-07-14 14:14:48 +08:00
    建议配置直接 ignore 掉,不要放 repo 里面
    crazystory
        19
    crazystory  
       2017-07-14 14:34:12 +08:00
    配置文件忽略才是常见的,一般只保留配置模板不会保留具体的值
    marvinwilliam
        20
    marvinwilliam  
       2017-07-14 17:56:23 +08:00
    需要放到 github 上的作为 git-submodule, 全部文件作为主项目,放到另外一个仓库

    虽然 submodule 不是这么个用法,但应该可以满足你的需求....
    ryd994
        21
    ryd994  
       2017-07-14 19:38:34 +08:00
    配置文件单独部署
    或者开个 deploy branch 每次 rebase
    cxbig
        22
    cxbig  
       2017-07-14 22:01:47 +08:00
    配置文件单独部署啊,那么多自动部署工具,一个文件再容易不过。
    Miy4mori
        23
    Miy4mori  
       2017-07-15 21:07:01 +08:00 via iPhone
    难道生产环境的配置不都是加密在 CI 里的嘛?存仓库这事还真的干得出来?
    vencent
        24
    vencent  
    OP
       2017-08-14 19:51:11 +08:00
    @Miy4mori 本人对部署不太了解,希望寻求一些好思路。感谢各位。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3362 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 50ms UTC 04:46 PVG 12:46 LAX 21:46 JFK 00:46
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86