在新建分支的时候,发现push怎么也上传不上去,一开始觉得是权限的问题,但是尝试了各种方案都没有用,后面再仔细看了一下是文件太大了,远程拒绝推送
接下来,和大家讲讲我的解决方案
1、把修改的代码迁移到新的分支中,并推送仓库
查看全部分支
git branch -a
创建分支
git branch <my_branch>
切换分支
git checkout <my_branch>
或者创建分支并切过去
git checkout -b <my_branch>
将需要上传的文件添加到暂存区
git add ./
添加说明
git commit -m "增加新的分支"
将本地分支推送到远程分支,远程分支没有的话就创建
git push origin HEAD:<my_branch>
HEAD 通常指的是当前检出的分支。/如果你的当前分支不是你想要推送的分支,那么你需要先切换到那个分支,或者显式地指定分支名而不是使用 HEAD
或者
git push -u origin <my_branch>
表示的是本地分支和远程分支的名字是一样的
2、推送报错
正常步骤的话,到第一步是ok,但是我出现文件过大的问题
问题:
! [remote rejected] contract_signing_offine -> contract_signing_offine (pre-receive hook declined) error: failed to push some refs to
实际问题是
Find the desired index: e911f00529fe0a143c6a714548eb2f8956ea6481, size: 101.811MB, exceeds quota 100MB
但是这个时候,我已经commit了,这个时候不管怎么push都是失败,即使把对应文件删除之后,再次commit,也是无法推送成功的,最好的办法是,撤销commit
①查看本地暂存区中的记录
git log -3
表示查看3条记录,使用:wq退出
②使用reset 回到提交之前的commit中,
git reset <目标commit id>
记住不要使用git reset --hard ,使用该命令会将修改的代码同步还原。如果不小心使用了,也有补救措施
查看历史修改记录
git reflog
通过git reset --hard 再返回之前的commit中即可
如果说你找不到commit id的话,那就使用git reflog中查找的进行回退即可
git reset --hard HEAD@{7}
只要进行了add和commit一般是不会丢失数据的,找到方法就好了
这个问题也是绝了,简简单单的一个问题,折磨了我一个上午,还是git命令使用的不够熟练的缘故了。