关于git同步的一个问题

2013-04-20 13:18:35 +08:00
 mechille
以前一直用svn,转入git没多久,菜鸟一只

过去一直是在服务器的server目录下git init一个仓库,然后本地客户端通过SSH连接clone这个仓库。每次push之后,然后再通过服务器hooks执行git reset --hard。以同步。

我觉得这个方法肯定是有问题,请问能否更简单一些
2806 次点击
所在节点    git
7 条回复
ShadowStar
2013-04-20 13:25:18 +08:00
服务器为什么需要执行git reset --hard?服务器上不需要有工作目录的,init时--bare参数。
mechille
2013-04-20 13:27:34 +08:00
@ShadowStar --bare怎么用,不太会操作。貌似是把原来.git文件夹里边的内容弄出来了...还是说直接在服务器上git --bare init一个仓库,直接http访问这个仓库?
ShadowStar
2013-04-20 13:33:29 +08:00
server$ git init --bare proj.git

local$ git clone user@server:proj
local$ git add ......
local$ git commit -m "XXXXXXXX"
local$ git push

done
csx162
2013-04-20 13:36:54 +08:00
觉得这个git视频教程蛮不错的。LZ可以看看

http://happycasts.net/episodes?tag_id=2
mechille
2013-04-20 13:38:58 +08:00
@ShadowStar 呃,但是服务器需要http编译和访问到我提交的脚本....还需要在服务器上做一个clone是吧?
wwqgtxx
2013-04-20 13:45:07 +08:00
看看progit吧,那里有详细的说明
http://git-scm.com/book/zh
ShadowStar
2013-04-20 13:45:41 +08:00
@mechille 如果用服务器编译,最好是做一个本地clone,「git clone file:///PATH/to/proj」,然后在新的目录下编译,以避免由于误操作对服务器上的代码库造成破坏。
另外,通常为了服务器上代码安全,除了文件系统的权限设置外,服务器git库的config添加:
git config receive.denyDeletes true
git config receive.denyNonFastForwards true

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

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

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

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

© 2021 V2EX