Git异常情况汇总

时间:2021-04-11 16:33:53

本篇博客总结下Git使用情况中遇到的异常情况并给出解决方案,关于Git的常用命令请移步我的另一篇博客《Git常用命令》

异常情况如下:

  1.git远程删除分支后,本地git branch -a依然能看到

  2.git中Please enter a commit message to explain why this merge is necessary

  3.git branch -a 无法显示全部的远程分支

  4.Git修改.gitignore不生效

  5.bash: syntax error near unexpected token `('

异常情况1:git远程删除分支后,本地git branch -a依然能看到

为配合公司Git管理规范,在gitlab后台删除了很多不用的分支,但在本地用git  branch -a命令查看时,发现被删除的分支仍然能看到

Git异常情况汇总

此时使用git remote show origin命令查看下远程分支的信息

git remote show origin

Git异常情况汇总

如上图所示,可以看到拉取,提交的地址,也可以看到所有的远程分支以及本地分支与远程分支的对应关系

上图中显示stale的分支是被删除的分支,根据提示,执行git remote prune origin清除已被删除的分支

git remote prune origin 

Git异常情况汇总

执行完毕后,使用git branch -r(只查看远程分支)查看,发现问题已经解决

Git异常情况汇总

异常情况2:git中Please enter a commit message to explain why this merge is necessary

今天在使用git时,git pull和git merge时,经常出现如下错误信息:

Please enter a commit message to explain why this merge is necessary.(请输入提交消息来解释为什么这种合并是必要的)

Git异常情况汇总

解决方法:

1.按“Esc”退出键

2.输入“:wq”,然后按下“Enter”键(说明:要输入英文状态下的冒号)

异常情况3:git branch -a 无法显示全部的远程分支

一般情况下,当我们想看到本地和远程的所有分支时,会使用git branch -a命令,但该命令有时候不会展示最新创建的远程分支,

下面以具体事例来说明现象及解决方法:

开始新任务的开发时,同事告知我新建了一个分支AllChannel_StoreOffLine1.0,但当我获取时发现看不到这个分支

Git异常情况汇总

此时,可以通过 git fetch  将本地远程跟踪分支进行更新,与远程分支保持一致。

Git异常情况汇总

执行完成之后,再次执行git branch -a查看所有分支,发现可以看到同事新建的远程分支AllChannel_StoreOffLine1.0

Git异常情况汇总

异常情况4:Git修改.gitignore不生效

在git中,如果想忽略某个文件,不让这个文件提交到版本库中,可以修改根目录中的.gitignore文件

但有时候把某些目录或者文件加入忽略规则,发现并未生效

未生效原因:.gitignore只能忽略那些原来没有被追踪(track)的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的

解决方案:先把本地缓存删除(改变成未track状态),然后提交

git rm -r --cached <要忽略的具体文件或者目录>
git add .
git commit -m "update .gitignore"

异常情况5:bash: syntax error near unexpected token `('

今天在拉取远程分支时,发现一直提示bash: syntax error near unexpected token `('

Git异常情况汇总

在网上查找资料后才知道,原来是因为分支名称中包含()的原因

解决方案:在每个()前加上\,有点类似转义的意思

Git异常情况汇总

参考链接:http://www.pfeng.org/archives/840

     http://www.cnblogs.com/malinlin/p/5004680.html

     http://blog.csdn.net/ailo555/article/details/52202276