栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

总结GitHub上传项目中遇到的问题

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

总结GitHub上传项目中遇到的问题

1. git add 添加多余文件想撤销

我们知道,git add . (空格+ 点) 表示当前目录所有文件,不小心就会提交其他文件
git add 如果添加了错误的文件的话

撤销操作

  • git status 先看一下add 中的文件

  • git reset HEAD 如果后面什么都不跟的话 就是上一次add 里面的全部撤销了 ,HEAD 可以不写,直接git reset

  • git reset HEAD XXX/XXX/XXX.java 就是对某个文件进行撤销了,HEAD 可以不写,直接git reset XX文件

2. git commit 提交(未git push)后想回退

如果不小心 弄错了 git add后 , 又 git commit 了。
先使用git log 查看节点
commit xxxxxxxxxxxxxxxxxxxxxxxxxx
Author:
Date:

回退操作

  • 回退到未提交前
git reset --soft 90f1ce4d73c5dc63f46fa61984a6bb878f47374^
3.git commit后,可以使用 git revert(反做)

还原已经提交的修改
此次操作之前和之后的commit和history都会保留,并且把这次撤销作为一次最新的提交

  • git revert HEAD 撤销前一次 commit

  • git revert HEAD^ 撤销前前一次 commit

  • git revert commit-id (撤销指定的版本,撤销也会作为一次提交进行保存)

git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,版本会递增,不影响之前提交的内容。

4.使用git push(将代码推送至远程仓库)报错:Please make sure you have the correct access rightsand the repository exists

报错原因:密钥配置

解决方案:重新配置密钥(搜索下列链接中的“设置SSH key”部分)

ctrl+f 设置SSH key

5.使用git命令git remote add origin url.git报错:fatal: remote origin already exists.

报错方案:上传到git的远程源已经存在

解决方案:删除远程源

Git Bash.exe中键入代码git remote rm origin,然后接着提交:gitr remote add orgin url.git即可

6.使用git push报错
[root@linux1 php]# git push -u origin master  
To git@github.com:kangvcar/Results-Systems--PHP.git  
 ! [rejected]        master -> master (fetch first)  
error: failed to push some refs to 'git@github.com:kangvcar/Results-Systems--PHP.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing 
hint: to the same ref. You may want to first merge the remote changes (e.g.,  
hint: 'git pull') before pushing again. 
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

报错原因:GitHub远程仓库中的README.md文件不在本地仓库中。

解决方案:Git Bash.exe键入代码git pull --rebase origin master 再接着git push即可。

注:在github新建代码仓库的时候不要勾选创建README.md

7.工作中经常遇到git commit后(尚未git push操作),需要回退的情况具体方法如下:

1.执行git log找到本次commi的ID信息

比如commit id信息为:90f1ce4d73c5dc63f46fa61984a6bb878f47374

2.执行git reset --soft HEAD^操作

对应HEAD即上述commit id信息

git reset --soft 90f1ce4d73c5dc63f46fa61984a6bb878f47374^

说明:最后的符号^记得不要漏掉

此时通过git status时,可以看到git add 的文件(绿色)

3.git reset modify_file

通过git reset modify_file 操作后,

通过git status可以看到红色的修改文件

4.git checkout modify_file

通过git checkout modify_file还原至修改之前状态

8.Git报错解决:fatal: unable to access ‘https://github.com/…‘: OpenSSL SSL_read: Connection was reset

昨天还可以git push代码到远程仓库,今天git push时报了这个错:fatal: unable to access ‘https://github.com/…’: OpenSSL SSL_read: Connection was reset, errno 10054

产生原因:一般是这是因为服务器的SSL证书没有经过第三方机构的签署,所以才报错

参考网上解决办法:解除ssl验证后,再次git即可

git config --global http.sslVerify "false"

9.git push后卡住不动

有时候提交本地修改到远程分支时,会出现下图这样卡住不动的情况:

手动Ctrl+C终止后重新提交还是这样。
解决:

1.手动将仓库sideband属性设置为false,当然也可以设置全局

#全局:
git config –global sendpack.sideband false
#仓库:
git config –local sendpack.sideband false

2.检查是否还有未提交的修改,若有将修改提交,再push
3.解决问题

10.git- remote:error: this exceeds GitHub file size limit of 100.00 MB

由于Github 有单一的文档大小限制,如果超过了100MB就会显示上传失败出现下面的情况。

remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
remote: error: Trace: da815a6d6f452ecffe5fa628c59519a8
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File crawlTPL/data/reusageMapping.csv is 332.44 MB; this exceeds GitHub's file size limit of 100.00 MB

传项目到Git上,当某个文件大小超过100M时,就会上传失败,因为默认的限制了上传文件大小不能超过100M。如果需要上传超过100M的文件,就需要我们自己去修改配置。

  • 首先,打开终端,进入项目所在的文件夹;输入命令:
git config http.postBuffer 524288000
  • 执行完以上语句后输入
git config -l 

可以看到配置项的最下面多出了一行我们刚刚配置的内容. (52428000=500×1024×1024,即500M)

11.git push时有些不存在了的文件(或者已经手动删除的文件)还会被尝试提交

在工程中,我添加了一个优酷视频的静态库,我使用终端提交代码时,出现以下错误:

remote: error: File 
ManMao/Classes/Others/Library/YouTuEngineMediaPlayer/libYouTuMediaPlayerEngineYouku.a 
is 137.94 MB; this exceeds Git@OSC's file size limit of 100 MB。

文件超过了限制的大小,不能push成功。暂时就先搁置push了。

但是在上传时由于有广告标识符,所以就先删除了视频这一块。当我删除之后再次上传时,依然出现同样的错误。虽然项目中已经删除了。但是项目的本地仓库仍然存储的有这个东西。那么怎么把它踢出本地仓库呢。找了很久,终于找到一句代码,执行之后即可解决:

$ git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch (上述划斜线的内容)' HEAD

具体实例

$ git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch ManMao/Classes/Others/Library/YouTuEngineMediaPlayer/libYouTuMediaPlayerEngineYouku.a' HEAD
总结常用操作
  • 查看原来连接的地址
git remote -v

  • 解除原先连接的所有地址
git remote rm origin

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/830422.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号