Git - 常见错误与解决方案

 

1.windows使用git时出现:warning: LF will be replaced by CRLF

分析: windows中的换行符为 CRLF, 而在linux下的换行符为LF,所以在执行add . 时出现提示

 解决: 

1 $ rm -rf .git  // 删除.git
2 
3 $ git config --global core.autocrlf false  //禁用自动转换 

 

2. 

分析: 这是因为没有添加到Git中造成的删除失败, 不在Git的控制之下

解决:

$ git add 1.php

$ git rm -f 1.php

 

3. 拉取项目需要输入用户名,密码

  我们在git clone工程时有2中形式 https 和git@git。当你使用前者拉取工程时每次都需要输入用户名和密码

解决:

git config --global credential.helper store

这个时候~/.gitconfig文件中会多一行

[credential]
helper = store

 

4. 文件名称大小写无法进行修改(名称修改了之后,无法进行提交)

  原因: git默认配置为忽略大小写

  解决: 

    1) 全局设置

                    

git config core.ignorecase false  //关闭git忽略大小写配置

     2)项目修改

  

1. git rm xx 删除本地仓库文件(备份文件)
2. 修改文件名称
3. git add xx 添加
4. git commit -m ''
5. git push

 

 5. git push -u origin master    remote: User permission denied

  fatal: unable to access 'http://git.com:11024/lanlang/xs.git/': The requested URL returned error: 403

 解决: 设置用户信息并赋予权限

git remote set-url origin https://youruser:password@github.com/user/repo.git

说明: 添加到远程代码库的时候,需要指定用户名,密码
    最后执行 git push -u origin master 

 

 6. fatal: unable to access 'http://abc@qq.com:abc123456@git.xxx.com/www.git/':

 Couldn't resolve host 'qq.com:abc123456@git.xxx.com'

 报错原因是因为用户名包含了@符号,所以需求要把@转码一下

<?php
$userame='abc@qq.com';
echo urlencode($userame);
?>
abc%40qq.com

@符号转码后变成了%40,所以只需在clone时将username变为abc%40qq.com即可,再次执行就ok了。

为了防止密码中也可能会有@,我觉得在拼接之前,可以对用户名和密码分别进行编码操作。

 

 7. Please move or remove them before you can merge

# 删除变化
git clean -d -f

 

 8. 记Git报错-refusing to merge unrelated histories

使用命令:

$git pull origin master --allow-unrelated-histories

 

 

 

 

 

  

posted @ 2018-04-12 16:23  X-Wolf  阅读(838)  评论(0编辑  收藏  举报