git push时终端报错: error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413 Request Entity Too Large fatal: The remote end hung up unexpectedly 你已经把大文件写入本地.git历史中. 你需要把它从commit历史,以及.git库里移除掉. 可以使用git filter-branch --tree-filter 'rm -f 文件…
Git仓库删除大文件 背景 当用Git久了,难免会手误或临时添加一些大文件到仓库中,即使以后添加进了.gitignore,甚至做了git rm,但是Git为了保证版本可回退,history pack里面依然会存储这些对象,这个时候我们就要为Git仓库进行瘦身. 或者不是大文件的情况,有时我们需要删除掉一些敏感信息文件,比如password.txt,即使回退也无法找到敏感文件,要实现这个要求,也要对history pack进行清理. 清理主要做如下一些事情: 寻找想要彻底清理的文件路径 查询这个文…
参考资料: An open source Git extension for versioning large files Git LFS的使用 如何使用 Git LFS 提交大文件? Git LFS 操作指南…
//查找大文件 git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3 -g | tail -5 //根据上面查找到的hash值,筛选文件名 git rev-list --objects --all | grep 28c65edc2b880f02602970a5d13f6ffc9a59cb66 //删除 git filter-branch --force --index-filter 'git rm -rf --cached --i…
windows系统不识别文件夹大小写导致 本地分支master, 在master上面新建一个分支Hotfix/aa 由于Hotfix首字母大写,所以windows系统会在 项目.git\refs\heads目录下面创建一个Hotfix文件夹, 假设后面再建分支hotfix/aa-1 windows会把aa-1放在.git\refs\heads\Hotfix下面 但是git上显示还是hotfix/aa-1 这样push到远程会报错 fatal: hotfix/aa-1 cannot be reso…
commit的时候.idea文件夹被默认选中了,如果忘记点掉就会被提交上去,想要默认忽略其实很简单. 找到项目根目录处的.gitignore文件(如果是用git版本控制的话) 双击打开之后  我们在最顶上加一行,输入.idea,就表示忽略.idea文件夹,理论上这样就可以了,可是实际上可能会无效,网上据说是要删缓存还是咋的,反正很麻烦 换一个变通的方法,idea有个changelist功能,就是让你选哪些文件是你希望提交的, 所以在commit 后,会弹出一个提交窗口, 直接选中不想提交的文件夹…
背景 由GIT管理的Visual Studio项目,使用Stash管理远端代码库,通过与Stash集成的Bamboo生成项目并发布 现象 Visual Studio项目本地生成成功,用SourceTree提交到Stash后,在Bamboo中生成项目遇到大量错误信息:"The type or namespace name 'DbModelBuilder' could not be found (are you missing a using directive or an assembly ref…
记一次使用commit提交大文件无法推送到远程库解决问题过程及git rebase使用 目录 大文件无法push到远程仓库 问题 commit的大文件无法push到远程库解决办法 git filter-branch命令: git commit后的回滚 git reset --hard 丢弃最新的提交 git rebase -i 丢弃指定提交 git rebase git rebase执行失败后的退出 git rebase成功后的回退 解决这个问题并没有特别的(删除提交历史中某个文件,然后重新pu…
http://blog.csdn.net/pipisorry/article/details/47867097 查看文件的修改历史 git log --pretty=oneline 文件名 # 显示修改历史[Git高级教程:git log与git reflog] git show 356f6def9d3fb7f3b9032ff5aa4b9110d4cca87e # 查看更改 历史版本对比 查看日志git log 查看某一历史版本的提交内容git show 4ebd4bbc3ed321d01484…
珠玉在前, 大家可以参考 Git LFS的使用 - 简书 为什么要用 Git LFS 原有的 Git 是文本层面的版本控制, 为代码这种小文件设计的, 保存大文件会导致 repo 非常臃肿, push.pull 速度过慢等问题, Git LFS 对大文件做了针对性优化, 极大地提高了在 Git 中管理大文件的体验. macOS 上使用 Git LFS # 安装 brew install git-lfs # 在项目目录初始化 cd a-git-project git lfs install # 让…
使用git时间不长,在调机械臂项目的时候,由于对TwinCAT3和vs的机制不太了解,没有添加很好的忽略文件(.gitignore).造成git仓库包含了很多没有用的文件,例如vs的sdf文件,TwinCAT3的PLC编译文件等等.当时急着赶项目结题也没有考虑特别多,抱着能用就行的心态.现在项目结题初期的检测工作已经完成,回来填之前留下的坑. 通过查找资料,看到可以通过BFG工具来清理git仓库.在GitHub的帮助页面中也推荐了这个工具.官网说是比git-filter-branch工具快10-…
1.git出错如下错误时 执行如下可解决错误: git rm --cache '大文件路径' git commit --amend -CHEAD git push 2.当必须上传大文件时.需借助git-fls 下载地址:https://git-lfs.github.com/ 使用方式: (1).在项目目录git lfs install. (2).git lfs track '.文件后缀'. (3).git add .gitattributes. (4).配置完成后就可按照平时git方式使用.…
问题 当使用Git比较一个大文件(几十兆数量级)版本见差异时,会一直等待加载,且内存消耗很大,导致其他进程很难执行.任务管理器中,可以看到此时的TortoiseGitMerge吃掉3G左右的内存. 原因 文件太大,加载很慢. 解决方法 其实,我们在使用[Compare with base]这个功能时,想要比较版本间文件的不同之处,因此,无需加载整个文件内容,只显示出文件中的不同内容即可.设置如下: 先使用[Compare with base]比较一个小文件,否则,肯能要等很长时间去加载一个大文件…
http://kasicass.blog.163.com/blog/static/39561920133294219374/ 创建测试仓库 $ git init $ echo "line one" >> foo.txt $ git add foo.txt $ git commit -m "first commit"   说说 add/reset/diff 我们修改一下 foo.txt,看看效果. $ echo "line two" &…
1:问题描述 1.1 基本信息 遇见这样一个bug,路由器有USB share的功能,可将U盘内的文件通过samba和LAN端PC机中文件进行共享,测试发现小文件可正常共享,一旦文件大了(比如1G左右),window端便显示一直在计算文件大小,最后客户端(LAN pc)会因为服务器许久不回一个Subcommand:SET_FILE_INFO(0x0008)的报文而出现timeout,导致文件传输失败. 过了一段时间后客户端发出timeout [RST] 报文(windows会弹出异常对话框取消文…
发现好像这个方法不好使.......~~!还是会失败 如果有人或者自己失误把不该同步的大文件如数据或日志或其他中间文件给commit了并且push了,然后你删掉了,但是其实他仍然在你的git记录中,你的整个项目仍然会非常大,主要是当时的那个删除你没有用git rm,但总之你想清理就很麻烦了现在,或者说,可能现在由于你commit的东西太大,导致了根本没法push上去,会出现类似 fatal: the remote end hung up unexpectedly 这样的错误,然后你就是需要清理一…
git push报错: github不能上传大文件,按道理删掉重新提交就行了 可是删掉后,git add -A,再git commit,再git push,依然报错 后来我想明白了 github上传时候,其实不止是push当前版本,还要push所有历史版本,如果之前某次commit没有上传,那么这个历史版本也要默认push 为此,解决办法: 1,用git cherry命令查看所有commit但没push的历史版本 2,再用git reset [版本id]命令撤销之前的版本 值得注意的是git r…
不小心把数据库备份文件放到git目录里了,导致无法上传代码. 首先参考了 这篇文章 http://www.cnblogs.com/qmmq/p/4604862.html. 按照文中一开始说的去做,可还是无法成功. 后来看到这句话: 如果做了这几步你push的时候还是报和开始的时候一样的错,那说明这个文件你不是最近一次commit时添加的,而是在之前commit过很多次了,这就需要把关于这个文件的所有历史commit记录全部清除掉. 这样,我由此想到,如果把提交大文件的几次提交取消掉不就可以了吗?…
错误原因: 大文件存在没有被提交的commit记录里面: 解决方案: 删除有大文件的commit记录即可 移除大文件的正确姿势 $ git rm --cached giant_file(文件名) # Stage our giant file for removal, but leave it on disk $ git commit --amend -CHEAD $ git push 解法一: 以下操作完后,相当于把本地代码回滚到远端的代码一致:的远端代码文件过大时,此种方式比从远端重新拉取方便…
方法一 这里以删除 .setting 文件夹为案例 git rm -r --cached .setting #--cached不会把本地的.setting删除 git commit -m 'delete .setting dir' git push -u origin master (推到自己的分支) 方法二 如果误提交的文件夹比较多,方法一也较繁琐 直接修改.gitignore文件,将不需要的文件过滤掉,然后执行命令(全部删除,再修改.gitignore,再重新提交push) git rm -…
昨晚在提交一个项目代码时,不小心把数据库备份文件也一起Commit了:到最后Push的时候报错了.最后弄了半天解决了,在此记录下. 如下图,文件有108M. 项目放在第三方托管平台上,根据提示查看了原因.后来看了下像单个文件最大不超过50M. 网上找处理方法,有很多种.比如删除提交过大的文件:git filter-branch --tree-filter 'rm -f 文件名' HEAD 但是这命令我这边执行不行报错:fatal: ambiguous argument 'database_bak…
在使用git进行版本管理时,往往会出现一些误操作,比如将一些不加上传的文件放到了暂存区,即上传到了上一次commit中 比如: commit c134ab90ca7c4daf8bfa22e3ad706150abbd9bbc Author: lin <@qq.com> Date: Mon Jan :: + 添加了不想放入暂存区的文件 Change-Id: I911c17175d0637de21824d34bc2b7bf8055e9d6c +++++++++++++++++++++++++++++…
问题 在使用git push推送大文件(超过了100MB)到GitHub远程仓库时提示异常,异常信息如下: fatal: sha1 file '<stdout>' write error: Broken pipe fatal: the remote end hung up unexpectedly 通过查阅了一些资料,我发现是因为GitHub对提交的文件大小做了限制,GitHub会阻止超过100 MB的推送(单文件),检查了一下我提交的文件中有一个超过200MB的文件. GitHub官方说明…
写在前面大家一定遇到过在使用Git时,不小心将一个很大的文件添加到库中,即使删除,记录中还是保存了这个文件.以后不管是拷贝,还是push/pull都比较麻烦.今天在上传工程到github上,发现最大只能上传100MB大小文件,在本地git库中有一个150MB文件,虽然已经删除,但还保存了记录.下面教大家如何从库中彻底删除无效大文件. 删除大文件方法很简单,就是先找到大文件对象再删除. 先提交所有更改 $ git commit -am "commit all"1对仓库进行gc操作 $ g…
app/test/target/ #查看大文件 git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')" #删除大文件或者目录 git filter-branch --force --index-filter 'git rm -rf --cached --ignore-unmatch app/…
在我们日常使用Git的时候,一般比较小的项目,我们可能不会注意到.git 这个文件. 其实, .git文件主要用来记录每次提交的变动,当我们的项目越来越大的时候,我们发现 .git文件越来越大. 很大的可能是因为提交了大文件,如果你提交了大文件,那么即使你在之后的版本中将其删除,但是, 实际上,记录中的大文件仍然存在. 为什么呢?仔细想一想,虽然你在后面的版本中删除了大文件,但是Git是有版本倒退功能的吧,那么如果大文件不记录下来, git拿什么来给你回退呢?但是,.git文件越来越大导致的问题…
Reference 大家一定遇到过在使用Git时,不小心将一个很大的文件添加到库中,即使删除,记录中还是保存了这个文件.以后不管是拷贝,还是push/pull都比较麻烦. === 删除大文件方法 方法很简单,就是先找到大文件对象再删除. 先清理当前working tree. commit.stash.checkout都ok 对仓库进行gc操作 git gc 运行count-objects 查看空间使用,size-pack 是以千字节为单位表示的 packfiles 的大小. git count-…
git 管理二进制文件 本文档将逐步带你体验 git 的大文件管理方式. 环境: windows10 64位 cmd git版本: git version 2.18.0.windows.1 创建到推送 创建二进制文件,修改并推送到远程. : 初始化项目 git init : 创建 100k 大小文件模拟二进制文件 和普通文本 fsutil file createnew isbin.bin 102400 cd.>text.txt : 开启 lfs 功能及文件追踪 git lfs install g…
参考: 找回Git中丢失的Commit Git误操作 git reset强制回滚 恢复commit方法 使用Git时,常有误操作,在Commit之后又执行了git reset --hard HEAD强制回滚本地记录以及文件到服务器版本,导致本地做的修改全部恢复到Git当前分支的服务器版本,同时Commmit记录也消失了. 此时解决方法是通过git reflog来查看先前记录并恢复: git reflog会记录所有HEAD的历史,也就是说当你做 reset,checkout等操作的时候,这些操作会…
删除Git记录里的大文件 仓库自身的增长 大多数版本控制系统存储的是一组初始文件,以及每个文件随着时间的演进而逐步积累起来的差异:而 Git 则会把文件的每一个差异化版本都记录在案.这意味着,即使你只改动了某个文件的一行内容,Git 也会生成一个全新的对象来存储新的文件内容.久而久之,Git 仓库会变得十分臃肿. 解决办法 step 1. 把代码拉到本地 git clone git@github.com:congyucn/GAN-102CategoryFlower.git step 2. 查看占…