- 1、GIT 默认对文件名大小写不敏感
- 2、偶尔在操作 Git 的时候,会提示git被锁了,提交不了
- 4、git pull 拉取远程代码的时候,遇到 would clobber existing tag
- 5、git push或者 git pull 操作的时候提示 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
- 6、git 配置 ssh
- 7、本地删除远程已经不存在的分支
- 8、本地同步远程tag
- 9、本地切换到远程 master 分支的时候报错
- 10、git 本地删除本地分提示 remote ref does not exist
- 11、拉取远程代码的时候提示 Git Pull Failed
- 12、
git clone
代码提示OpenSSL SSL_read: Connection was reset, errno 10054
1、GIT 默认对文件名大小写不敏感
/# 解决 #/
git config core.ignorecase false
2、偶尔在操作 Git 的时候,会提示git被锁了,提交不了
问题:
Git 使用中显示“Another git process seems to be running in this repository…”
原因:
windows对于进程的同步互斥管理,是有资源上锁机制的。猜测这里肯定是有进程对某资源进行了加锁,但是由于进程突然崩溃,未来得及解锁,导致其他进程访问不了
解决:
打开项目目录下的 .git 文件夹,然后删掉 index.lock 就可以
4、git pull 拉取远程代码的时候,遇到 would clobber existing tag
原因:本地的 tag 跟线上远程分支的tag 不一致
解决:强制使用远程的 tag 覆盖本地的 tag
git fetch --tags -f
5、git push或者 git pull 操作的时候提示 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
原因:
远程 git 服务器更新了 ip,所以导致之前配置的 ssh 内存储的IP跟远程 git服务的ip 匹配不上
解决:
ssh-keygen -R git服务地址 # 这里的服务地址为服务的 host
6、git 配置 ssh
git config --global user.name "这里换上你的用户名"
git config --global user.email "这里换上你的邮箱"
ssh-keygen -t rsa -C "这里换上你的邮箱" # 邮箱必须是注册git的邮箱 #
# 查看 配置好的 ssh-keygen
cat ~/.ssh/id_rsa.pub
7、本地删除远程已经不存在的分支
git fetch --prune #这样就可以实现在本地删除远程已经不存在的分支
8、本地同步远程tag
git tag -l | xargs git tag -d #删除所有本地分支
git fetch origin --prune #从远程拉取所有信息
9、本地切换到远程 master 分支的时候报错
报错信息
git checkout -q --track origin/master
warning: refname 'origin/master' is ambiguous.
fatal: A branch named 'master' already exists.
问题分析:
git branch -a
的输出显示您有一个名为origin/master
的远程跟踪分支.完全正常。但是,
git show-ref master
的输出包含84e588376b89f794fa947e26848e9a804bffcc43 refs/heads/master
c4dbcc0dd4c362a67a5d6b9db300507eda83192c refs/heads/origin/master
35ab50e43e0eadf117344893dbf8da5d649f8947 refs/remotes/origin/master
这表明您很可能运行了以下低级命令:
此命令创建一个名为
master
的本地分支 (指向与 origin/master 相同的提交) ,但直属refs/
,即在refs/heads/
之外命名空间,本地分支通常所在的位置。git branch -a
不会列出这样的分支,但是Git 感到困惑,因为它看到两个分支,其引用名称以origin/master
结尾 :refs/remotes/origin/master
,您的远程跟踪分支refs/origin/master
,您(偶然)在refs/heads/
之外创建的本地分支.
解决问题:
如果您不是有意创建 refs/origin/master
只需删除它
git update-ref -d refs/origin/master
然后,不会有任何歧义,当您尝试设置 master
的上游时,Git
会遵守所设置的流程设置
删除完之后 再执行更新远程信息就可以愉快的玩耍了
git pull
10、git 本地删除本地分提示 remote ref does not exist
问题出现的场景:
本地新建一个本地分支,但在与远程分支关联的时候,关联出错,导致该分支提示 xxx is not fully merged
但是使用 git branch --delete xxx
删除又无法删除本地分支,此时远程是没有这个分支的
解决办法:
运行强制删除分支命令
git branch -D xxx # xxx 为分支名称
备注:
git
在删除分支的时候可以使用 git branch -d xxx
也可以是 git branch -D xxx
但是其中是有区别的:git branch -d
的时候如果本地分支没有被合并就会提示这个问题git branch -D
是强制删除,所以直接执行 强制删除就好了。
11、拉取远程代码的时候提示 Git Pull Failed
具体报错信息为:
# 1.
Git Pull Failed
error: You have not concluded your merge (MERGE_HEAD exists).
fatal: Exiting because of unfinished merg
# 或者
# 2.
Git Merge Failed
fatal: You have not concluded your merge (MERGE_HEAD exists)
# 或者
# 3.
Git Pull Failed
Your local changes would be overwritten by merge.
Commit, stash or revert them to proceed. View them
问题出现的场景一般为:
- 本地分支 拉取 远程分支,出现了冲突,在解决冲突之后(这个时候远程的更改已经合并到当前的本地分支了)这个时候再 放弃所有更改,再去拉取远程分支就会出现上面这几种情况
解决办法:
- 先 commit
git commit -m "commit info"
再进行 pull 拉取远程代码 - 放弃本地修改,直接覆盖之
git reset --hard
git pull
12、git clone
代码提示 OpenSSL SSL_read: Connection was reset, errno 10054
原因:
出现这种情况一般是由于 本地使用了 vpn 但是由必须使用 vpn 才能访问 github
解决办法:
修改设置,解除ssl
验证 git config --global http.sslVerify "false"
此时,再执行git
操作即可