[git] 如何处理push失败的commit

在使用git及github时,遇到一个问题:commit了一个超过100M的大文件,然后在push时失败,然后就再也无法push了,本地大文件删除了,再commit,再push也还是提示有大文件提交。

这是一种非常常见的问题,是典型案例,原因是本地对大文件的commit记录还在,后来虽然remove了大文件并再次commit,但并不能抹除第一次对大文件的commit记录,因此push时相当于依次执行 commit 大文件,commit remove大文件操作,故失败。

解决方法:

1,先保存好本地已经commit但还没有push的版本,

2,本地回退到commit大文件的前一版本,此版本往后的所有本地commit都被抹除了(这就是做步骤1的原因)

3,pull到最新版本

4,将1的东西重新commit上去

5,push

这样就从版本中抹除了 大文件提交的纪录

ps: 步2在tortoiseGit右键菜单中是 reset master to this

原文地址:https://www.cnblogs.com/timeObjserver/p/11569008.html

时间: 2024-11-01 17:55:31

[git] 如何处理push失败的commit的相关文章

git push失败the remote end hung up unexpectedly

Git Push是老是失败,提示: fatal: the remote end hung up unexpectedlygit did not exit cleanly (exit code 1) 原来是文件Push文件太大引起.解决方法:windows:在 .git/config 文件中加入[http]postBuffer = 524288000 linux:git config http.postBuffer 52428800 git push失败the remote end hung up

git push 失败

先上图 已经添加了sshkey 为撒ssh 不成功,.push 只能通过http方式,每次都要输入用户 密码很麻烦. 蛋碎了几个月,今天节前最后一个小时解决了!!!! 受到这个大神的文章提示. http://www.niwozhi.net/demo_c434_i33874.html 其实很简单 就是gitlab-shell 连不上ssh, 检查的要点就是查看gitlab ,gitlab-shell的配置文件,检查他们的IP. 上图: 1.gitlab-shell的配置文件,注意看gitlab的u

git版本管理工具push失败解决方案参考

git clone [email protected] 版本后,edit某文件,commit之后,点push,提示报错. 可能有以下原因: 1.权限不够,远程仓库的文件夹(比如/home/git)下面的文件所属用户非git用户,而默认的文件权限通常是644,那么当你用非git用户push的时候,肯定是权限不够的. 解决方法:进入远程仓库的上一级,查看git目录下所有文件的权限,比如: cd /home/git ls -al 更改git目下所有文件目录的文件主为git: chown -R git.

TortoiseGit push失败原因小结(转)

花了我一个晚上,终于弄明白为什么总是 push 失败的原因了!竟然是因为我用的是注册的用户名而不是邮箱名……囧死. 另外搞清楚了一个问题,就是 Git 和远程仓库交互有两种方式,即 https 方式和 ssh 方式. 如果你采用的是 https 方式,需要在 TortoiseGit 的设置中,把 Network 一项中的 SSH client 一项,设置为 你的TortoiseGit安装路径\bin\TortoiseGitPlink.exe Remote 中,只需要添加 URL 即可,即你的远程

git如何处理别人的pull request及解决冲突 (转)

原贴地址 出过两次了,每次都查很多资料,太蛋疼,记录在此. 当你的项目比较牛逼的时候,有人给你贡献代码,但他修改的地方恰恰你前阵子也修改了,这样在github中就不能够自动merge了. 因此你需要手动去解决冲突.首先要在本机安装好命令行工具gitbash,之后用clone拉下你的项目,之后 按照以下命令输入 git checkout -b 某人-master master git pull https//github.com/某人的/某项目的.git master 这时候命令行会提示你有冲突,

git一键push至github脚本

######################################################################### # File Name: push.sh # Author: tuzhuo # mail: [email protected]163.com # Created Time: 2019年09月11日 星期三 19时56分03秒 ###############################################################

git merge --squash 选项合并commit操作实例

 参考: [转] git merge 将多个commit合并为一条之--squash 选项 git checkout master git pull origin master # 本地先拉取最新的master,最后目标是要merge到master git branch feature-123-merge # 从master创建一个新的专门用来做merge的新branch:feature-123-merge git checkout feature-123-merge git merge --s

Git - warning: push.default is unset

今天心血来潮想要把获取窗体句柄的程序給开源了. 可在执行 git push 时看到下面的消息: warning: push.default is unset; its implicit value has changed in Git 2.0 from 'matching' to 'simple'. To squelch this message and maintain the traditional behavior, use: git config --global push.defaul

git修复push文件

1 环境 2 错误 3 解决 4 参考 环境 错误 TortoiseGit 客户端 push时报 git.exe push --progress "origin" master:master error: cannot spawn sh: No such file or directoryerror: cannot spawn sh: No such file or directoryCounting objects: 3, done.Delta compression using u