搭了一个 git 服务器,但是 push 不成功 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
Ncer
V2EX    Linux

搭了一个 git 服务器,但是 push 不成功

  •  
  •   Ncer 2016-02-02 23:41:31 +08:00 6901 次点击
    这是一个创建于 3621 天前的主题,其中的信息可能已经有所发展或是发生改变。
    按照教程搭了一个 git 服务器
    http://blog.csdn.net/xsl1990/article/details/25486211

    在 git 服务器上建立了一个空仓库后,在自己的机子可以成功 git clone 下来
    但是在自己机子上做完一些修改
    git push 也正常,没有报错

    Counting objects: 18, done.
    Delta compression using up to 4 threads.
    Compressing objects: 100% (18/18), done.
    Writing objects: 100% (18/18), 10.15 KiB | 0 bytes/s, done.
    Total 18 (delta 5), reused 0 (delta 0)
    To [email protected].×.×:/home/ncer/gittest
    * [new branch] master -> master

    但是到那个服务器上看,并没有文件提交上去……
    求指导,不知道是啥问题~~
    20 条回复    2018-02-01 15:31:14 +08:00
    pagxir
        1
    pagxir  
       2016-02-02 23:51:42 +08:00   1
    已经成功,只是你不会用分布式管理工具而已。
    Ncer
        2
    Ncer  
    OP
       2016-02-02 23:56:57 +08:00
    @pagxir 不好意思,以前只用过 github ,还是第一次用这个
    不只能否指教?
    int64ago
        3
    int64ago  
       2016-02-02 23:58:14 +08:00   1
    @Ncer 其实只是把 .git/ 下的文件 push 了,你有必要完整看一遍: https://git-scm.com/book/en/v2
    pagxir
        4
    pagxir  
       2016-02-02 23:58:58 +08:00
    你重新在另外一个文件夹 clone 一遍就看到新文件了。如果已经 clone 过的,请使用 git fetch && git merge/rebase origin/master
    fan123199
        5
    fan123199  
       2016-02-03 00:00:08 +08:00 via Android   1
    服务器上是看不到文件的
    fan123199
        6
    fan123199  
       2016-02-03 00:01:06 +08:00 via Android
    你可以 clone 下来看,或者 checkout 文件一个个看
    Ncer
        7
    Ncer  
    OP
       2016-02-03 00:01:23 +08:00
    @int64ago @pagxir @fan123199
    哦哦哦,懂了!是我基本功不扎实!
    pagxir
        8
    pagxir  
       2016-02-03 00:02:29 +08:00
    1 、你件的仓库是 bare , 所以服务器根本不会检出 工作区。
    2 、即使你的仓库不是 bare ,服务器工作区也不会因为你执行 push 而更新,仍然需要你自己执行 git rebase/merge.
    publicAdmin
        9
    publicAdmin  
       2016-02-03 00:04:41 +08:00   2
    @Ncer github 我理解的是 git 的仓库 web 控制台,而实际根本也是用的 git 工具..
    我没理解 github 和 git 有什么不同....(其他周边另记)
    个人觉得诸如此类工具性质的东西,没比较花太多时间研究
    安利楼主一个可以迅速搭建的私有 git 库
    @Unknwon 开发的 gogit https://gogs.io/
    楼主也可以参考下 github 上 gogs 的 start 数

    - -
    Ncer
        10
    Ncer  
    OP
       2016-02-03 00:10:45 +08:00
    @publicAdmin
    是的,我的意思是说平时在 github 上只用过简单的 commit push poll ,
    没有深入了解原理
    moliliang
        11
    moliliang  
       2016-02-03 00:23:48 +08:00
    本来就没有~
    msg7086
        12
    msg7086  
       2016-02-03 01:16:41 +08:00
    git --bare init 建立的是裸仓库,也就是你在 .git/ 内部看到的样子。
    至于 Working Directory ,需要你从仓库里签出才行。
    ericls
        13
    ericls  
       2016-02-03 01:26:40 +08:00 via iPhone
    git 还需要服务器么?我都是 ssh 连接的
    webjin
        14
    webjin  
       2016-02-03 02:53:32 +08:00 via Android
    我遇到过,明天发脚本你,推送成功,但是不显示文件是吧。
    webjin
        15
    webjin  
       2016-02-03 02:58:07 +08:00
    1.设置远程创库地址
    # git remote add origin ssh://[email protected]/home/test/.git/ 或者 add 修改(set-url )
    2.push 推送
    # git push origin master 首次执行
    # git push
    3.然后在远程创库执行以下命令,才可以看到更新的内容
    # git config --unset core.bare 首次执行
    # git reset --hard
    Neveroldmilk
        16
    Neveroldmilk  
       2016-02-03 10:53:46 +08:00
    应该是没有把远程目录的最新版本给 pull 下来。之后才能 commit ,最后才能 push 。
    xuyifei
        17
    xuyifei  
       2016-02-03 11:15:23 +08:00
    LioMore
        18
    LioMore  
       2016-02-03 17:06:31 +08:00 via iPhone
    请 checkout 出来
    heaventear
        19
    heaventear  
       2017-03-28 17:05:04 +08:00
    如果是 github 的仓库,可以挂梯子,我用的是天路加速器,看他们官网的命令行加速器教程,可以提速几十倍, https://91tianlu.com/knowledgebase.php
    Zz0Zz
        20
    Zz0Zz  
       2018-02-01 15:31:14 +08:00
    我刚刚试了一下,要想同步 push 的文件,在服务器创建 project 时,不要创建裸仓库
    #1 . 创建支持工作目录的远程仓库

    ## 远程服务器初始化仓库
    git init <仓库名>
    ## 设置允许远程接收文件
    git config receive.denyCurrentBranch ignore

    #2. cd 仓库名 /.git ,在 hooks 文件夹中添加 post-receive 钩子文件(用于自动更新工作目录内容)
    touch post-receive
    vim post-receive
    加入内容
    WORK_TREE='../'
    git --work-tree="${WORK_TREE}" reset --hard
    然后保存

    #2. chmod -R 777 post-receive (为该文件赋予权限)

    然后你再 push 时就可以看到上面的文件了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2293 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 02:10 PVG 10:10 LAX 18:10 JFK 21:10
    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