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

2014-04-18 09:58:34 +08:00
 lijinma
我现在的操作是:

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

问题:

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

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

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

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

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

或者 git checkout
lvwzhen
2014-04-18 17:13:16 +08:00
guoqiao
2014-04-18 17:13:22 +08:00
@lijinma 没看懂, 为何不是git pull?
我一般push后用fabric更新服务器.
dorentus
2014-04-18 17:21:38 +08:00
楼主是直接 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
2014-04-18 17:23:35 +08:00
每次默认更新的repo说明不是用于开发更改的, 为啥不用bare repo?
maga
2014-04-18 19:50:29 +08:00
Git正遇到情景,太好了。另外,如果我只要repo的一部分目录,不知道有没有好的方式
lijinma
2014-04-19 09:46:11 +08:00
@dorentus
@nicai000

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

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

bare repo:

post-receive的hook,

使用 git pull 或者 git check 拿到所有的文件后,
然后删除不需要的文件或文件夹就可以了吧。
maga
2014-04-19 16:42:47 +08:00
@lijinma 谢谢兄弟,了解了下git hook,是简单好用的东西
standin000
2014-04-19 18:17:22 +08:00
@dorentus 说得很清楚了。

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

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

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

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

© 2021 V2EX