求助 git push 成功后,是否可以直接更新服务器上的文件? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
lijinma
V2EX    git

求助 git push 成功后,是否可以直接更新服务器上的文件?

  •  
  •   lijinma 2014-04-18 09:58:34 +08:00 6723 次点击
    这是一个创建于 4249 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我现在的操作是:

    (1)git push ...
    (2)登录remote服务器执行 git reset --hard 来更新remote的文件。

    问题:

    是否可以直接在push成功后,更新remote的文件?
    16 条回复    1970-01-01 08:00:00 +08:00
    romoo
        1
    romoo  
       2014-04-18 09:59:57 +08:00   1
    Git hooks
    lijinma
        2
    lijinma  
    OP
       2014-04-18 10:02:44 +08:00
    @romoo 恩 是不是只能在服务器端写hooks? 没有指令来操作吗?

    已感谢。
    tczzjin
        3
    tczzjin  
       2014-04-18 13:49:37 +08:00
    hooks非常方便的
    simapple
        4
    simapple  
       2014-04-18 13:53:53 +08:00   2
    推荐给你看这个,用git 发布站点 : http://toroid.org/ams/git-website-howto
    lijinma
        5
    lijinma  
    OP
       2014-04-18 14:17:40 +08:00
    @tczzjin
    @simapple

    多谢你的例子,里面的hooks确实非常方便啊。

    真好!!!
    standin000
        6
    standin000  
       2014-04-18 16:26:25 +08:00
    为啥要更新remote的文件?
    lijinma
        7
    lijinma  
    OP
       2014-04-18 16:27:33 +08:00
    @standin000

    比如有一个新html添加,push成功后,html不会自动添加,必须执行 git reset --hard

    或者 git checkout
    lvwzhen
        8
    lvwzhen  
       2014-04-18 17:13:16 +08:00
    guoqiao
        9
    guoqiao  
       2014-04-18 17:13:22 +08:00   1
    @lijinma 没看懂, 为何不是git pull?
    我一般push后用fabric更新服务器.
    dorentus
        10
    dorentus  
       2014-04-18 17:21:38 +08:00   1
    楼主是直接 push 到 remote 服务器上的
    然后 remote server 上的 repo 不是 bare repo

    ---
    更常见的用法似乎是:

    push 到 remote server 上的一个 bare repo
    然后在 bare repo 里面设置 post-receive hook 去让位于另一处的 non-bare repo 从这个 bare repo pull 最新的改动。

    区别就在于中间多了个 bare repo,和实际用的 non-bare repo 分开;因为 bare repo 没有工作区,不会因人为的或者运行时自动产生的改动造成 push 或者 pull 失败……
    nicai000
        11
    nicai000  
       2014-04-18 17:23:35 +08:00   1
    每次默认更新的repo说明不是用于开发更改的, 为啥不用bare repo?
    maga
        12
    maga  
       2014-04-18 19:50:29 +08:00 via iPhone
    Git正遇到情景,太好了。另外,如果我只要repo的一部分目录,不知道有没有好的方式
    lijinma
        13
    lijinma  
    OP
       2014-04-19 09:46:11 +08:00
    @dorentus
    @nicai000

    -。- 果然我头发长见识短了。
    现在已经改成 bare repo了。

    感谢大家的回复,已经发送感谢。
    lijinma
        14
    lijinma  
    OP
       2014-04-19 09:49:53 +08:00
    @maga 你的场景肯定是:

    bare repo:

    post-receive的hook,

    使用 git pull 或者 git check 拿到所有的文件后,
    然后删除不需要的文件或文件夹就可以了吧。
    maga
        15
    maga  
       2014-04-19 16:42:47 +08:00 via iPhone
    @lijinma 谢谢兄弟,了解了下git hook,是简单好用的东西
    standin000
        16
    standin000  
       2014-04-19 18:17:22 +08:00
    @dorentus 说得很清楚了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5115 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 08:03 PVG 16:03 LAX 00:03 JFK 03:03
    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