V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
mechille
V2EX  ›  git

关于git同步的一个问题

  •  
  •   mechille · 2013-04-20 13:18:35 +08:00 · 2898 次点击
    这是一个创建于 4220 天前的主题,其中的信息可能已经有所发展或是发生改变。
    以前一直用svn,转入git没多久,菜鸟一只

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

    我觉得这个方法肯定是有问题,请问能否更简单一些
    7 条回复    1970-01-01 08:00:00 +08:00
    ShadowStar
        1
    ShadowStar  
       2013-04-20 13:25:18 +08:00
    服务器为什么需要执行git reset --hard?服务器上不需要有工作目录的,init时--bare参数。
    mechille
        2
    mechille  
    OP
       2013-04-20 13:27:34 +08:00
    @ShadowStar --bare怎么用,不太会操作。貌似是把原来.git文件夹里边的内容弄出来了...还是说直接在服务器上git --bare init一个仓库,直接http访问这个仓库?
    ShadowStar
        3
    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
        4
    csx162  
       2013-04-20 13:36:54 +08:00
    觉得这个git视频教程蛮不错的。LZ可以看看

    http://happycasts.net/episodes?tag_id=2
    mechille
        5
    mechille  
    OP
       2013-04-20 13:38:58 +08:00
    @ShadowStar 呃,但是服务器需要http编译和访问到我提交的脚本....还需要在服务器上做一个clone是吧?
    wwqgtxx
        6
    wwqgtxx  
       2013-04-20 13:45:07 +08:00 via Android
    看看progit吧,那里有详细的说明
    http://git-scm.com/book/zh
    ShadowStar
        7
    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
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   942 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 20:56 · PVG 04:56 · LAX 12:56 · JFK 15:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.