git错误集合

1. Authentication failed for

原因:

此错误造成原因是登录git账号时用户名或者密码错误使验证失败导致命令执行不成功,抛出此错误

解决:

1. 找到控制面板——用户账户——凭证管理器,到凭证中去重新修改git地址凭证保存的密码。
2. 打开cmd面板,输入:git config --system --unset credential.helper,然后重新执行命令,在弹出的用户名及密码框中输入正确的账户密码即可验证通过

2. ! [rejected] master -> master (fetch first)
error: failed to push some refs to 'git@gitee.com:xxxxxxx'

原因:

出现这个问题是因为github中的README.md文件不在本地代码目录中

解决:

可以通过如下命令进行代码合并git pull --rebase origin mastergit push origin master

延伸:
#这三者的区别
1、$ git pull origin master --allow-unrelated-histories  #强制合并(允许存在不同的提交历史)两个分支是两个不同的版本,具有不同的提交历史。如果想允许不相关历史提交,强制合并
2、$ git pull --rebase origin master  #rebase 和 merge 的区别,merge会形成一个新的提交点,rebase则是在上个分支的基础上重建分,是 git pull 默认的提交方式
#如果发生冲突的话,无论是 merge,还是 rebase,都需要先解决冲突,这个过程需要通过手动解决。比如发现一个文件发生冲突。手动解决完冲突后,
#用 git add 把处理好的内容提交到暂存区。接下来的处理,merge 和 rebase 的操作不同。如果是 merge,通过 git commit 即可。如果是 rebase,
#通过 git rebase --continue,继续执行 rebase 即可。

3、$ git push -f origin master  #强烈不推荐使用
image.png

merge方式提交

rebase方式提交

3. ! [remote rejected] master -> master (pre-receive hook declined)

原因:

git push不上去的原因在于所push的分支权限为protected,只有项目的管理员或者项目的管理员指派的具有相应权限的人才能进行push

解决:

1.进入所在项目的settings,点击进入Protected branches,点击unprotected将master分支的权限改变,即关闭master的protected权限
2.新建其它分支,将项目push到新建的分支上,后期再进行merge

git branch 分支名  #新建分支
git checkout 分支名  #切换分支
#项目提交
git add .
git commit -m "提交的信息"
git remote add origin 远程仓库地址
git push -u origin 分支名

4.Your local changes to the following files would be overwritten by merge

error: Your local changes to the following files would be overwritten by merge:
        protected/config/main.php
Please, commit your changes or stash them before you can merge.
原因:

团队其他成员修改了某文件并已提交入库,你在pull之前修改了本地该文件,等你修改完代码再pull时,这时会报错如下错误.

解决:
#解决方法:
#1. 如果希望保留生产服务器上所做的改动,仅仅并入新配置项, 处理方法如下:
git stash  #备份当前工作区内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前工作区内容保存到Git栈中
git pull   #拉取服务器上当前分支代码
git stash pop   #从Git栈中读取最近一次保存的内容,恢复工作区相关内容。同时,用户可能进行多次stash操作,需要保证后stash的最先被取到,所以用栈(先进后出)来管理;pop取栈顶的内容并恢复
然后可以使用git diff -w +文件名 来确认代码自动合并的情况.
#git stash list:#显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
#git stash clear:#清空Git栈

#2. 反过来,如果希望用代码库中的文件完全覆盖本地工作版本. 方法如下:
git reset --hard
git pull
#其中git reset是针对版本,如果想针对文件回退本地修改,使用
git checkout HEAD file/to/restore
#此方法即版本回退,不建议使用第二种。除非你再三确定不需要本地的修改了。

5. Pull is not possible because you have unmerged files

Pull is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>'
as appropriate to mark resolution, or use 'git commit -a'.
原因:

文件冲突(本地的push和merge会形成MERGE-HEAD(FETCH-HEAD), HEAD(PUSH-HEAD)这样的引用。HEAD代表本地最近成功push后形成的引用。MERGE-HEAD表示成功pull后形成的引用。可以通过MERGE-HEAD或者HEAD来实现类型与svn revet的效果。将本地的冲突文件冲掉,不仅需要reset到MERGE-HEAD或者HEAD,还需要–hard。没有后面的hard,不会冲掉本地工作区。只会冲掉stage区

解决:
#解决方法:
#查看冲突文件
git status #1、也可以告诉我们冲突的文件; 
Unmerged paths:
  (use "git add <file>..." to mark resolution)

        both modified:      file
#2、手动解决冲突,然后提交更改:
vi file
git add file
git commit -m '解决冲突'

#另一种解决方法  错误示范
git reset --hard FETCH_HEAD
git pull
#上面的解决方法非常非常的霸道,是可以解决这个错误,但是它会回到初始的节点,假如我有修改本地代码但是没有提交,那么使用reset初始,可能会丢失这些修改的代码。
//注释:提交本地代码到工作区
//注释:如果有冲突,先解决冲突合并代码,然后提交
//注释:如果代码上没有冲突,但是提交的时候git提醒有冲突,那么先关闭编辑器,然后编译代码找到冲突,最后手动合并代码解决冲突
git add .
git commit -m '提交本地代码并且获取最新代码'
//注释:获取源dev分支最新代码
git pull origin dev
//注释:如有冲突就解决冲突 本地修改的代码要么提交要么隐藏后再获取,最好不要直接用reset

6. CONFLICT (content):Merge conflict in readme.txt

$ git merge feature1
Auto-merging readme.txt
CONFLICT (content):Merge conflict in readme.txt
Automatic merge failed; fix conflicts andthen commit the result.
原因:

不同分支代码合并时文件冲突造成的错误

解决:
1、git status也可以告诉我们冲突的文件;
#       both modified:      readme.txt  #冲突文件为readme.txt
2、查看readme.txt的内容:
<<<<<<<HEADmaster
=======fenzhi
>>>>>>> feature1
Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,我们修改如下后保存:
master and fenzhi
3、再提交:
$ git add readme.txt 
$ git commit -m "hebing"
#git branch -d #会在删除前检查merge状态(其与上游分支或者与head)。
#git branch -D #是git branch --delete --force的简写,它会直接删除。

7. The branch 'feature-vulcan' is not fully merged.

error:The branch 'feature-vulcan' is not fully merged.
If you are sure you want to delete it, run 'git branch -D feature-vulcan'.
原因:删除本地未合并分支时抛出异常
解决:
#git 在删除分支的时候可以使用git branch -d featurename 也可以是git branch -D featurename 其中是有区别的
git branch -d #的时候如果本地分支没有被合并就会提示这个问题
git branch -D #是强制删除,所以直接执行 强制删除就好了。

8. Please move or remove them before you can merge. Aborting

原因:

本地修改时与远端提交的代码冲突而又没有merge合并

解决:
#解决方法:
git clean  -d  -fx ""
其中 
x  -----删除忽略文件已经对git来说不识别的文件
d  -----删除未被添加到git的路径中的文件
f  -----强制运行
#注意:这样操作之后,会删除本地的修改,也就是选择与远端同步,就是你写的、修改的代码统统会被移除!所以执行之前把自己冲突的代码先备份一下,解决冲突后再还原,然后再继续pull代码,切记!!!!。

9. fatal: remote origin already exists.

原因:

本地库已经关联了远程仓库地址,且跟当前输入地址冲突时抛出此异常

解决:
$ git remote rm origin   #(删除关联的origin的远程库)
$ git remote add origin git@github.com:(github名)/(git项目名).git    #就不会报错了!
#如果输入$ git remote rm origin 还是报错的话,error: Could not remove config section 'remote.origin'. 我们需要修改gitconfig文件的内容找到你的git的安装路径,找到一个名为gitconfig的文件,打开它把里面的[remote "origin"]那一行删掉就好了!

10. fatal: Couldn't find remote ref master或者fatal: 'origin' does not appear to be a git repository以及fatal: Could not read from remote repository.

原因:

未找到远程仓库,或者指定名称不是个存储库

解决:
git remote add origin git@github.com:djqiang/gitdemo.git

11.warning: LF will be replaced by CRLF in qh.sh.The file will have its original line endings in your working directory

原因:

首先问题出在不同操作系统所使用的换行符是不一样的,主流操作系统的换行符有以下三种:
① Uinx/Linux采用换行符LF表示下一行(LF:LineFeed,中文意思是换行);
② Dos和Windows采用回车+换行CRLF表示下一行(CRLF:CarriageReturn LineFeed,中文意思是回车换行);
③ Mac OS采用回车CR表示下一行(CR:CarriageReturn,中文意思是回车)。

解决:

查看当前使用哪种换行符

git config core.autocrlf
# 此命令会有三个输出,“true”,“false”或者“input”
# 为true时,Git会将你add的所有文件视为文本文件,将结尾的CRLF转换为LF,而checkout时会再将文件的LF格式转为CRLF格式。
# 为false时,line endings不做任何改变,文本文件保持其原来的样子。
# 为input时,add时Git会把CRLF转换为LF,而check时仍旧为LF,所以Windows操作系统不建议设置此值。
git config --global core.autocrlf true   #true的位置放你想使autocrlf成为的结果,true,false或者input
# 将core.autocrlf设为false即可解决这个问题,如果你和你的伙伴只工作于Windows平台或者Linux平台,那么没问题,不过如果是存在跨平台的现象的话,还是需要考虑一下。
# 但当 core autocrlf为true时,还有一个需要慎重的地方,当你上传一个二进制文件,Git可能会将二进制文件误以为是文本文件,从而也会修改你的二进制文件,从而产生隐患。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,029评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,395评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,570评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,535评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,650评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,850评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,006评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,747评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,207评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,536评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,683评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,342评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,964评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,772评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,004评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,401评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,566评论 2 349

推荐阅读更多精彩内容