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

求熟悉 git 大佬,遇到一个 git 问题阻塞

  •  
  •   badboy17 · 2022-12-10 12:09:46 +08:00 · 3210 次点击
    这是一个创建于 749 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司用得是 codeup 云效做代码管理平台,我是 windows 本,本地装了 git ,我拥有 A 项目和 B 项目的开发权限和 git 的读写权限(包括 pull,clone,push ),但是我的 A 项目,可以 clone 下来,但是不能 push,我的 B 项目正常,可以 Pull ,也可以 push,我本地用得是 ssh 公钥,在远端配置上了。

    git 无法 push ,报错是 remote: PermissonDenied: Permission deny: You are not allowed to push this branch to codeup.xxxxxx.git (pre-receive hook declined) error: failed to push some refs to codeup.xxxxx.git

    我试过换一个分支,删除 ssh 公钥,重新生成,把 git 卸载重装,都失败了,但是在另一台机器上,用我的账号是可以 Push 的了,所以可能还是我的 git 客户端这边的问题,这个问题阻塞挺长时间了,求大佬帮助,可以有偿

    22 条回复    2022-12-13 10:39:37 +08:00
    liuzhaowei55
        1
    liuzhaowei55  
       2022-12-10 12:15:46 +08:00 via iPhone
    分支保护,自己新建一个分支开发,这时 push 到远端的自己分支,然后提 mr 合并到原分支
    yjxjn
        2
    yjxjn  
       2022-12-10 12:33:22 +08:00
    日常用 gitlab ,我觉得楼上说的也是 codeup 的分支保护,只能通过提 mr 的方式来进行 push ,自己新建分支,提 MR 请求,然后找 owner 负责把你的分支 MR 到 master 或者 dev 上就可以了。
    abear
        3
    abear  
       2022-12-10 12:49:27 +08:00
    问题在于另一个电脑不是可以 push A 仓库吗,哈哈哈哈哈,怎么是保护分支呢。
    dzdh
        4
    dzdh  
       2022-12-10 12:53:56 +08:00
    @abear 不见得是同一个分支哦。hhhh
    cslive
        5
    cslive  
       2022-12-10 13:01:18 +08:00 via Android
    仓库分支保护了,你没有权限,找有权限的给你解除
    badboy17
        6
    badboy17  
    OP
       2022-12-10 14:00:46 +08:00
    我换成公司的跳板机,用我的 git 账号 clone ,然后 Push 是成功的
    badboy17
        7
    badboy17  
    OP
       2022-12-10 14:07:57 +08:00
    我在本地电脑换一个新建的分支 push 也是失败的
    stevenshuang
        8
    stevenshuang  
       2022-12-10 14:40:00 +08:00
    公钥生成的时候指定你公司的邮箱?
    jymsy
        9
    jymsy  
       2022-12-10 14:53:03 +08:00
    pre-receive hook declined , 明显是远程项目对 commit 的格式做了校验
    PendingOni
        10
    PendingOni  
       2022-12-10 16:04:40 +08:00
    fan123199
        11
    fan123199  
       2022-12-10 16:09:19 +08:00 via Android
    你确定一下 两台机器 push 的内容是否一样。git diff 看一下。看起来不像是 key 的问题。
    forgottencoast
        12
    forgottencoast  
       2022-12-10 16:44:34 +08:00
    @jymsy
    看起来有点像这类问题,但是话说这个提示相当于没有提示啊。
    badboy17
        13
    badboy17  
    OP
       2022-12-10 19:52:04 +08:00
    @stevenshuang 公钥生成没有指定邮箱,但是在 codeup 上绑定公钥就行了
    badboy17
        14
    badboy17  
    OP
       2022-12-10 19:55:21 +08:00
    @jymsy 跟远端无关应该,不是 commit 问题
    hxy100
        15
    hxy100  
       2022-12-10 23:25:43 +08:00
    检查下 git 仓库有没有安全方面设置,指纹,IP 等。检查下出问题仓库所有 git 相关的 hook 有没有被触发~
    vance123
        16
    vance123  
       2022-12-11 00:02:38 +08:00
    pre-receive hook declined 指的是服务器 git 仓库启用了 pre-receive 脚本,如果这个脚本运行的结果为非零,就会拒绝 push 。你应该直接去 git 服务器看看到底是什么 pre-receive 脚本
    badboy17
        17
    badboy17  
    OP
       2022-12-11 14:25:18 +08:00
    @hxy100 我的 git 账号用跳板机去 clone,Push 是没问题的,所以我觉得应该不是远端的问题
    badboy17
        18
    badboy17  
    OP
       2022-12-11 14:26:01 +08:00
    @hxy100 ip 的话,也是连了 vpn ,不应该出问题
    Authorization
        19
    Authorization  
       2022-12-11 17:56:01 +08:00
    出现这种情况可能是由于服务器端的配置问题导致的。如果您在其他电脑上可以正常使用 git push 命令,那么您的账户和 ssh 公钥配置应该是没有问题的。

    我建议您联系服务器端的管理员,询问他们是否对 A 项目设置了特殊的权限限制。如果是这样,那么您需要等待管理员修改权限设置,或者在管理员的指导下修改权限设置,才能正常使用 git push 命令。

    此外,我也建议您检查本地的 git 配置是否正确。您可以尝试使用以下命令来检查本地的 ssh 公钥是否已经配置到远程服务器上:

    ssh -T git@<服务器地址>
    如果您能够成功连接到服务器并输入上述命令,那么说明您的 ssh 公钥配置没有问题。否则,您可能需要重新生成 ssh
    lanceran
        20
    lanceran  
       2022-12-12 09:53:01 +08:00
    @Authorization ChatGPT 回复?
    julyclyde
        21
    julyclyde  
       2022-12-12 12:48:07 +08:00
    你能看见这句话就已经说明 ssh 权限正常了
    你缺的是 git 权限
    badboy17
        22
    badboy17  
    OP
       2022-12-13 10:39:37 +08:00
    @Authorization 你是说服务端的问题吗,但是我换机器就行了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2600 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 05:08 · PVG 13:08 · LAX 21:08 · JFK 00:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.