atlassian stash中 git push 返回411

本文介绍了一个在使用Nginx作为Git服务器前端代理时遇到HTTP411错误的问题,以及如何通过安装HttpChunkinModule模块来解决这一问题。包括了具体的配置步骤和解决方法。

问题

在Nginx作为GIT服务器的前端代理时,执行GIT PUSH可能会出现HTTP 411的错误。

这是因为Nginx不能处理Chunked的POST请求。

 

 

$ git push
Counting objects: 2332669 , done.
Delta compression using up to 16 threads.
Compressing objects: 100 % ( 360818 / 360818 ), done.
error: RPC failed; result= 22 , HTTP code = 411
fatal: The remote end hung up unexpectedly
Writing objects: 100 % ( 2332669 / 2332669 ), 483.30 MiB | 114.26 MiB/s, done.
Total 2332669 (delta 1949888 ), reused 2330461 (delta 1949349 )
fatal: The remote end hung up unexpectedly

解决

官方解决方法为:https://confluence.atlassian.com/pages/viewpage.action?pageId=282988530

对于Nginx,可以安装HttpChunkinModule模块(需要重新编译)

 

 

http://wiki.nginx.org/HttpChunkinModule#Installation

 

配置如下:

 

  chunkin on;
 
#下面这个必须有
  error_page 411 = @my_411_error;
  location @my_411_error {
      chunkin_resume;
  }
 
  location /bar {
    chunkin_keepalive on;  # WARNING: too experimental!
 
    # your fastcgi_pass/proxy_pass/set/if and
    # any other config directives go here...
  }
04-23
<think>好的,用户想了解Stash工具或服务,特别是作为IT工具或代码管理工具的情况。首先,我需要确定用户指的是哪个Stash,因为可能有多个相关的工具。 首先想到的是AtlassianStash,这是一个企业级的Git仓库管理工具,后来改名为Bitbucket Server。但用户可能也提到Gitstash命令,用于临时保存代码修改。需要结合引用内容里的信息,用户提供的引用中有提到git stash的使用,比如引用3和4都详细说明了git stash的相关操作和注意事项。因此,用户可能混淆了AtlassianStashGitstash命令,需要明确两者的区别。 接下来,我需要分别解释这两个方面。首先,Gitstash命令是版本控制中的临时存储功能,允许开发者保存当前的工作进度而不提交。引用3详细描述了git stash的使用场景和指令,比如git stash save、git stash pop等,还提到注意事项,比如弹出缓存时分支不匹配的问题。引用4则提供了解决合并冲突时使用stash的步骤。这部分需要详细说明,包括基本命令、使用场景和注意事项。 另一方面,AtlassianStash(现为Bitbucket Server)是一个自托管的Git仓库管理平台,适合企业使用,提供代码审查、权限管理等功能。需要说明其功能、应用场景以及如何与Git集成。虽然用户提供的引用中没有直接提到Atlassian Stash,但根据用户的问题,可能需要提及这个工具,特别是如果用户误以为Stash是一个独立的代码管理工具的话。 在回答时,需要先区分这两个概念,避免混淆。用户的问题可能源于对Gitstash命令和Atlassian Stash工具的不清楚。根据引用内容,用户可能更关注Gitstash功能,因为引用3和4都涉及到了git stash的使用。因此,应优先详细解释Gitstash命令,包括基本用法、相关指令、注意事项,再简要介绍AtlassianStash/Bitbucket Server作为补充。 同时,用户可能需要生成相关问题,根据内容,问题可能涉及git stash的其他命令、解决冲突的方法、与Atlassian Stash的区别等。需要确保回答结构清晰,分点说明,并正确引用提供的资料,比如引用3和4中的内容,例如在注意事项中提到分支不匹配的问题时引用[^3],在解决合并冲突的步骤中引用[^4]。 最后,检查是否符合系统级指令,如使用正确的中文,数学公式格式(虽然这里可能用不到,但需注意),正确引用标识等。确保回答帮助用户明确区分两个概念,并满足其实际需求。</think>### Stash工具解析:Git stashAtlassian Stash #### 一、Git stash(代码暂存工具) Git的`stash`是本地版本控制的临时存储功能,用于保存未提交的修改,允许开发者灵活切换任务分支[^3]。 **核心指令:** ```bash git stash # 暂存当前修改(默认使用"stash@{0}"标签) git stash push -m "备注" # 带备注的暂存 git stash list # 查看暂存栈记录(按时间倒序排列) git stash pop # 弹出最新暂存记录并删除 git stash apply # 应用暂存记录但不删除 git stash drop # 删除指定暂存记录 ``` **典型场景:** 1. 临时修复线上问题:当前分支修改未完成时,需切换到`hotfix`分支 2. 合并冲突处理:`git pull`前暂存本地修改避免覆盖[^4] **注意事项:** - 暂存记录与分支解耦:弹出时需确保目标分支上下文兼容[^3] - 二进制文件处理:暂存可能无法完整保存二进制文件变更 - 时间标识格式: ```bash git stash list --date=relative # 显示"2 hours ago" git stash list --date=local # 显示本地时间戳 ``` #### 二、Atlassian Stash(已更名为Bitbucket Server) 原名为Stash的企业级Git仓库管理平台,提供: - 私有化部署的Git服务 - 精细化权限控制(仓库/分支级) - 代码审查工作流 - CI/CD流水线集成 **与Git stash的区别:** | 维度 | Git stash | Atlassian Stash/Bitbucket Server | |---------------|------------------------------------|----------------------------------| | 作用范围 | 本地临时存储 | 远程仓库管理 | | 使用场景 | 开发者本地操作 | 团队协作与代码托管 | | 数据持久性 | 随.git目录删除失效 | 长期存储 | #### 三、Git stash高级用法示例 ```bash # 选择性暂存部分文件 git stash push -p -m "部分暂存" # 查看暂存内容差异 git stash show -p stash@{1} # 创建新分支并应用暂存 git stash branch new_feature ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值