CentOS 上搭建了一个 git 服务器,代码推送的诡异问题。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
run2016
V2EX    问与答

CentOS 上搭建了一个 git 服务器,代码推送的诡异问题。

  •  
  •   run2016 2017-08-20 14:14:43 +08:00 3666 次点击
    这是一个创建于 3042 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近搞了一个 django 网站的小 demo,想着把他放到新买的 digital ocean 的 vps 上去。于是在上边搭了一个 git 服务器,一切正常。

    由于本地机器(Sierra)上的项目是有 commit 记录的,之前未与任何远端服务器建联。我想保存这些记录,推到线上去。把他推送到 centOS 7 的 vps 上,成功后我去一看,原来就仅仅是把我项目中的.git 文件夹推送上去,而其他的文件都没有上去。

    于是我又随意新增了几个文件,多搞几个 commit,再推,发现每次还是只把我的.git 文件夹推上去。 不知道哪里出了问题?

    我试着用一模一样的办法,在 github 上新建了一个 repo,建立联系后往上推,却是很顺利的将所有文件都推过去了。

    一样的方法,只是服务器不同,为什么会出现这种问题呢?

    这样的问题如何解决呢? 谢谢各位前辈

    第 1 条附言    2017-08-22 19:51:20 +08:00
    问题已解决,谢谢各位前辈。
    @msg7086 说的是对的,我之前没有理清这个关系
    谢谢 @AntonChen @FPGA @Loyalsoldier @vacker 帮我找到了解决方法。
    不甚感激
    O(∩_∩)O~
    12 条回复    2017-08-21 09:26:18 +08:00
    fcka
        1
    fcka  
       2017-08-20 14:33:31 +08:00 via Android
    并没有说用的何种程序做的服务端……
    Pastsong
        2
    Pastsong  
       2017-08-20 14:39:07 +08:00 via Android
    服务端是裸库啊...是只有.git 的
    AntonChen
        3
    AntonChen  
       2017-08-20 14:40:09 +08:00 via iPhone   1
    你需要在服务器上克隆检出
    run2016
        4
    run2016  
    OP
       2017-08-20 14:44:07 +08:00
    @fcka yum install git 这种的。。
    run2016
        5
    run2016  
    OP
       2017-08-20 14:46:20 +08:00
    @Pastsong 嗯 我在本地仓库已经有很多 commit,想推到线上去呀。
    @AntonChen 克隆检出之后,我本地的 git 仓库是不是就派不上用场了。。。 我还想保留原来的 commit 记录呀。
    fcka
        6
    fcka  
       2017-08-20 15:23:54 +08:00 via Android
    没用过裸的 girt server,不过 .git 文件夹才是本体,文件只是 .git 文件夹中某一个 commit 指针位置的表示而已,你可以自己 checkout 吧…
    microhz
        7
    microhz  
       2017-08-20 16:32:33 +08:00
    你都 push 到 Github 了,直接在 vps clone 下来试试
    FPGA
        8
    FPGA  
       2017-08-20 16:41:47 +08:00   1
    给服务器 git 目录加个钩子,`.git/hooks` 目录新建 `post-receive` ,注意给执行权限
    ```sh
    #!/bin/sh
    DIR=`cd $(dirname $0); pwd`
    WORKING="$DIR/../../"
    GIT="$DIR/../"

    git --work-tree=$WORKING --git-dir=$GIT checkout -f
    ```
    msg7086
        9
    msg7086  
       2017-08-20 17:36:12 +08:00   1
    > "却是很顺利的将所有文件都推过去了。"

    说得好像你能登录进 Github 服务器看文件列表似的。

    推送本来就是在.git 里,这是保存了你 Repo 所有数据的数据库,要推的话永远就只会推.git ,不会推别的东西。
    你所有的文件,所有的提交记录,所有的分支和标签,都在.git 里。

    > "于是在上边搭了一个 git 服务器"

    前后完全矛盾。
    如果要在你服务器上拉取网站程序,你需要在上面搭一个 git 客户端。
    如果希望 push 的时候签出网站程序,你需要在 git 服务器里写一个脚本,连上网站服务器然后拉取网站程序。
    记住,git 服务器是 git 服务器,网站服务器是 git 客户端。
    Loyalsoldier
        10
    Loyalsoldier  
       2017-08-20 19:17:10 +08:00   1
    8 楼应该是对的。裸 Git Server 需要 Git Hook 自动检出
    vovov
        11
    vovov  
       2017-08-20 20:50:09 +08:00 via Android
    相信我,你需要这篇文章 https://tzwe.com/post/git-web.html
    jinhan13789991
        12
    jinhan13789991  
       2017-08-21 09:26:18 +08:00
    你需要 docker+gitlab、
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3290 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 04:22 PVG 12:22 LAX 20:22 JFK 23:22
    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