git使用之错误分析及解决(持续更新)
错误一:
- 使用
- $ git push -u origin master
- 出现如下错误:
- error: src refspec master does not match any.
- error: failed to push some refs to 'git@github.com:hahaha/ftpmanage.git'
分析及处理
- 原因:
- 本地仓库为空
- 解决方法:使用如下命令 添加文件;
- $ git add add.php addok.php conn.php del.php edit.php editok.php ftpsql.sql index.php
- $ git commit -m "init files"
错误二:
- $ git push -u origin master
- Warning: Permanently added the RSA host key for IP address 'xx.xx.xxx.xxx' to the list of known hosts.
- To git@github.com:hahaha/ftpmanage.git
- ! [rejected] master -> master (fetch first)
- error: failed to push some refs to 'git@github.com:hahahah/ftpmanage.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 integrate the remote changes
- hint: (e.g., 'git pull ...') before pushing again.
- hint: See the 'Note about fast-forwards' in 'git push --help' for details.
分析及处理
- 提示使用 git pull 之后在 push
- 使用如下命令解决:
- 复制代码
- $ git pull --rebase origin master
- warning: no common commits
- remote: Counting objects: , done.
- remote: Total (delta ), reused (delta ), pack-reused
- Unpacking objects: % (/), done.
- From github.com:hahah/ftpmanage
- * branch master -> FETCH_HEAD
- * [new branch] master -> origin/master
- First, rewinding head to replay your work on top of it...
- Applying: init files
错误三:
- git add .时 警告warning: LF will be replaced by CRLF in
分析及处理
- 原因:这是由于 ,跨平台的开发情况下产生的。
- 详细:
- 格式化是许多开发人员在协作时,特别是在跨平台情况下,遇到的令人头疼的细小问题。 由于编辑器的不同或者Windows程序员在跨平台项目中的文件行尾加入了回车换行符, 一些细微的空格变化会不经意地进入大家合作的工作或提交的补丁中。不用怕,Git的一些配置选项会帮助你解决这些问题。
- git cofig core.autocrlf
- 假如你正在Windows上写程序,又或者你正在和其他人合作,他们在Windows上编程,而你却在其他系统上,在这些情况下,你可能会遇到行尾 结束符问题。 这是因为Windows使用回车和换行两个字符来结束一行,而Mac和Linux只使用换行一个字符。 虽然这是小问题,但它会极大地扰乱跨平台协作。
- Git可以在你提交时自动地把行结束符CRLF转换成LF,而在签出代码时把LF转换成CRLF。用core.autocrlf来打开此项功能, 如果是在Windows系统上,把它设置成true,这样当签出代码时,LF会被转换成CRLF:
- $ git config --global core.autocrlf true
- Linux或Mac系统使用LF作为行结束符,因此你不想Git在签出文件时进行自动的转换;当一个以CRLF为行结束符的文件不小心被引入时你肯定想进行修正, 把core.autocrlf设置成input来告诉Git在提交时把CRLF转换成LF,签出时不$ git config –global core.autocrlf input在Windows系统上的签出文件中保留CRLF,会在Mac和Linux系统上,包括仓库中保留LF。
- 如果你是Windows程序员,且正在开发仅运行在Windows上的项目,可以设置false取消此功能,把回车符记录在库中:
- $ git config --global core.autocrlf false
错误四:
- refusing to merge unrelated histories
分析及处理
- 因为他们是两个不同的项目,要把两个不同的项目合并,git需要添加一句代码,在git pull,这句代码是在git 2.9.2版本发生的,最新的版本需要添加--allow-unrelated-histories
- 假如我们的源是origin,分支是master,那么我们 需要这样写git pull origin master ----allow-unrelated-histories需要知道,我们的源可以是本地的路径
错误五:
- 提示:更新被拒绝,因为您当前分支的最新提交落后于其对应的远程分支。
- 提示:再次推送前,先与远程变更合并(如 'git pull ...')。详见
- 提示:'git push --help' 中的 'Note about fast-forwards' 小节。
分析及处理
- 引起这个问题是远程仓库和本地不同步引起的
- 解决方案:需要先获取远端更新并与本地合并,再git push
- 具体操作如下:
- git fetch origin //获取远程更新
- git merge origin/master //把更新的内容合并到本地分支
错误六:
- 使用$ git clone时出现server certificate verification failed. CAfile:/etc/ssl/certs/ca-certificates.crt CRLfile: none
分析及处理
- 解决方法:在执行$ git clone 之前,在终端输入:
- export GIT_SSL_NO_VERIFY=
错误七:
- clone时出现,unable to negotiate with 10.0.0.8: no matching key exchange methodfound. Their offer: diffie-hellman-group1-sha1
分析及处理
- 解决方法:在执行git clone之前,在终端输入:
- export GIT_SSH_COMMAND='ssh -o KexAlgorithms=+diffie-hellman-group1-sha1'
- 这种方法每次新开git窗口,都需要重新输入export GIT_SSH_COMMAND
- 网上有说是因为客户端和服务器端git版本不一致导致的,也有说如果知道服务器ip,可以在C:\Users\Spring\.ssh下新建一个config文件,添加内容如下,但是好像不起作用:
- Host 10.0.0.8
- KexAlgorithms +diffie-hellman-group1-sha1
- 还有一种方法就是,打开.bashrc文件,在终端输入:$ vim ~/.bashrc ,然后向.bashrc文件写入:
- export GIT_SSH_COMMAND='ssh -o KexAlgorithms=+diffie-hellman-group1-sha1'
- 保存并关闭。这样就不需要每次打开终端时都重新输入export GIT_SSH_COMMAND了。
错误八:
- 在Windows上,使用git bash here,编译vs2013工程时,中文显示乱码
分析及处理
- 解决方法:打开git bash here,鼠标点击右键--> Options… --> Text --> Locale 选择zh_CN,Characterset 选择GBK,点击Apply,OK即可
错误九:
- 在Windows上写的代码移到Linux上提交时,会提示DOS line ending (CRLF) found, use Unix line ending (LF) instead
分析及处理
- 解决方法:()、下载dos2unix,执行
- sudo apt-get install dos2unit
- ()、对有问题的文件执行:
- doc2unit ../xxx.cpp
错误十:
- unable to negotiate with *.*.*.*: no matching key exchange methodfound. Their offer: diffie-hellman-group1-sha1
分析及处理
- 在Windows上更新了git 版本后,clone/pull时出现错误,
- unable to negotiate with *.*.*.*: no matching key exchange methodfound. Their offer: diffie-hellman-group1-sha1
- 解决方法:在执行git pull/clone之前,输入:
- export GIT_SSH_COMMAND='ssh -o KexAlgorithms=+diffie-hellman-group1-sha1'
- 这种方法每次打开git窗口,都要重新输入一次。
- 可以在C:\Users\Spring\.ssh的config文件下,添加内容如下,[本人测试有作用]
- Host *.*.*.*
- KexAlgorithms +diffie-hellman-group1-sha1
错误十一:
- error: RPC failed; curl OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno
- fatal: the remote end hung up unexpectedly
- fatal: early EOF
- fatal: index-pack failed
分析及处理
- 下载的项目太大
- 方法1:
- 改成ssh推送
- 方法2:
- 把推送的缓存扩大
- #首先设置通信缓存大小
- git config http.postBuffer
- #然后把缓存清除
- git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch <file/dir>' HEAD
git使用之错误分析及解决(持续更新)的更多相关文章
- git常用命名:自用,持续更新
1.切换分支 git checkout -b dev origin/feature/迭代1.1 2.提交本地代码到github git init //初始化git git config --globa ...
- Java遇到的问题、错误——持续更新
内容:dead code.关于eclipse没有js代码提示的解决 持续更新 ######################################################## dead ...
- git常用命令(持续更新中)
git常用命令(持续更新中) 本地仓库操作git int 初始化本地仓库git add . ...
- 【github&&git】4、git常用命令(持续更新中)
git常用命令(持续更新中) 本地仓库操作git int 初始化本地仓库git add . ...
- 【笔记】git 的常用操作命令(持续更新。。。)
项目正在如火如荼的开展,代码量的繁多不得不令我们运用 git 这个有用的工具去管理我们共同协作的代码 git 在这里不作什么介绍了,百度一大堆的教程 首推廖雪峰老师的:http://www.liaox ...
- 开发常用Git/Linux/idea命令快捷键总结(持续更新)
在开发过程中,会使用越来越多的命令,或快捷键,来帮助我们提高工作效率.本文记录了我在平时积累的常用命令,分享给大家. git命令 基本命令 set LESSCHARSET=utf-8 --idea T ...
- git使用技巧集合(持续更新中)
git使用技巧集合(持续更新中) 在团队协作中,git.svn等工具是非常重要的,在此只记录一些git使用过程中遇到的问题以及解决方法,并且会持续更新. 1.git commit之后,还没push,如 ...
- 常见 git 需求整理(持续更新中)
首发于 语雀文档 突然感觉自己对 git 还是挺熟悉的,因为团队里新来的七八号应届生来问我 git 问题,基本没有答不上的情况,但为了能更好地对知识进行整理,还是记录一下为好. (希望能)持续更新.. ...
- java开发中遇到的问题及解决方法(持续更新)
摘自 http://blog.csdn.net/pony12/article/details/38456261 java开发中遇到的问题及解决方法(持续更新) 工作中,以C/C++开发为主,难免与其他 ...
随机推荐
- Git Bash
Git Bash是Git的命令行工具,可以执行Git的所有命令,但是当我们想把一个URL粘贴到Git Blash时,Ctrl+V或者右键粘贴不起作用了 方法1-使用快捷键"Insert&qu ...
- thinkjs升级到3.0后的图片上传
似乎当thinkjs升级到3.0后,才接手了一个项目.只是在实际运用过程中,还是发现了与2.2的些许差别——今天先分享关于图片上传的一些问题. 1.上传文件,我们选择了jQuery的插件:http:/ ...
- vue的入门/简介
vue 特点 1. 响应的数据绑定/响应式编程 2. 组件化 vue优点 1. 轻量级的框架 2. 简单易学 3. 双向数据绑定 4. 组件化 5. 视图,数据,结构分离 6. 虚拟DOM 7. ...
- 确定稳定的 Spring Cloud 相关环境版本
开发部署 Spring Cloud 微服务框架,需要先确定 Spring Cloud 的相关环境版本,主要包含:Spring Cloud.Spring Cloud Netflix.JDK.JRE.Ja ...
- C#在使用Assembly加载程序集时失败
错误现象: 进行插件读取时出现错误:"尝试从一个网络位置加载程序集,在早期版本的 .NET Framework 中,这会导致对该程序集进行沙盒处理.此发行版的 .NET Framework ...
- c#之监控文件结构
如果需要知道修改文件或目录的时间,可以通过FileSystemWatcher类,这个类提供了一下应用程序可以捕获的事件,应用程序可以对事件作出响应. 使用FileSystemWatcher非常简单,首 ...
- Centos常用命令之:文件操作
在centos中,常用的文件操作命令有: ◇touch:建置新文件或者修改文件时间◇cat:从第一行开始显示文件内容◇tac:从最后一行开始显示文件内容,和cat相反◇nl:显示的时候,顺道输出行号◇ ...
- day 1——字典树练习
cojs 173. 词链 ★☆ 输入文件:link.in 输出文件:link.out 简单对比时间限制:1 s 内存限制:128 MB [问题描述]给定一个仅包含小写字母的英文单词表, ...
- 【悬赏征文】确认过眼神,你就是腾讯WeTest的特约撰稿人
成功的经验从来不是一蹴而就的,它仰仗基于价值认同的信息互通,知识共享. 在开发.测试领域"摸爬滚打"多年的你,一定有很多经验与见解分享. 如何让更多同行了解自己的独到见解? 怎样才 ...
- [BZOJ 4916]神犇和蒟蒻
Description 很久很久以前,有一只神犇叫yzy; 很久很久之后,有一只蒟蒻叫lty; Input 请你读入一个整数N;1<=N<=1E9,A.B模1E9+7; Output 请你 ...