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

git 求助: rebase 之后无法 push 到服务器

  •  
  •   oska874 · 2015-11-12 17:12:00 +08:00 · 4604 次点击
    这是一个创建于 3301 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在 master 分支上面有 N 个 commit ,现在要把这些 commit 合并为一个,我就用git rebase -i 23364d 把这些 commit 合并了,然后再往服务器 push ,结果就报错

    Counting objects: 2, done.
    Delta compression using up to 4 threads.
    Compressing objects: 100% (2/2), done.
    Writing objects: 100% (2/2), 665 bytes | 0 bytes/s, done.
    Total 2 (delta 0), reused 1 (delta 0)
    remote: error: insufficient permission for adding an object to repository database objects
    remote: fatal: failed to write object 33a66d58ac89fb134a8fcaeaf671b233de675924
    error: unpack failed: unpack-objects abnormal exit
    To http://192.168.0.111:8080/release.git
     ! [remote rejected] master -> master (unpacker error)
    error: failed to push some refs to 'http://192.168.0.111:8080/release.git'
    

    然后我就照着 so 上面有人的答案git repack master 之后再 push ,还是一样的错误,没办法 push 到服务器,这个怎么解决?

    12 条回复    2015-11-13 01:45:14 +08:00
    jyjmrlk
        1
    jyjmrlk  
       2015-11-12 17:16:38 +08:00
    git push -f 呢?
    daniellu
        2
    daniellu  
       2015-11-12 17:18:22 +08:00
    最好不要-f 强推就算成功了 可能代码就有问题了
    git status 一下看看
    oska874
        3
    oska874  
    OP
       2015-11-12 17:19:18 +08:00
    @daniellu Your branch is ahead of 'origin/master' by 2 commits.
    daniellu
        4
    daniellu  
       2015-11-12 17:19:56 +08:00
    没有其它的信息吗?@oska874
    oska874
        5
    oska874  
    OP
       2015-11-12 17:21:46 +08:00
    @daniellu 没了, clean 。问题得是“ remote: fatal: failed to write object 33a66d58ac89fb134a8fcaeaf671b233de675924 ” 服务器上没有 33a66d58ac89fb134a8fcaeaf671b233de675924 这个提交。
    mok502
        6
    mok502  
       2015-11-12 17:22:34 +08:00   ❤️ 1
    remote: error: insufficient permission for adding an object to repository database objects

    Git 服務器權限問題。
    oska874
        7
    oska874  
    OP
       2015-11-12 17:38:06 +08:00
    @mok502 的确是这个问题,中间重启过一次服务器,结果。。。现在 gitlab 添加的用户没办法操作 repo 所在的目录了。。。
    ivyshark
        8
    ivyshark  
       2015-11-12 17:55:59 +08:00
    @daniellu force-with-lease 不是安全的么
    luoluoluo
        9
    luoluoluo  
       2015-11-12 18:37:46 +08:00
    似乎我 13 年的时候遇到过,好久没用 git 了,从我经久失修的博客里貌似有办法

    http://lf2013.github.io/tools/skill/2013/08/08/gitnote/

    博客 N 就没管了,乱码、排版什么的请无视,重在解决问题
    bingwenshi
        10
    bingwenshi  
       2015-11-12 18:41:44 +08:00
    你没有理解 rebase 的原理, rebase 本身就是调整 branch 上的 commits ,所以肯定是要 push -f 的
    yangg
        11
    yangg  
       2015-11-12 19:45:35 +08:00
    push -f , gitlab 用户权限那里要有“+”号。
    +rw 类似这样
    oska874
        12
    oska874  
    OP
       2015-11-13 01:45:14 +08:00 via Android
    @bingwenshi 最后没加 -f 正常提交了
    @yangg 我的情况比较复杂,是用用户 git 挂载了一个磁盘才能正常读写的,不需要用户 gitlab
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3013 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:41 · PVG 22:41 · LAX 06:41 · JFK 09:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.