14. Git 使用总结

记录

ubuntu 在后台启动 ssh 代理并添加私钥

$ eval “$(ssh-agent -s)”
ssh-add ~/.ssh/id_ed25519

但是遇到了错误消息 “It is required that your private key files are NOT accessible by others. This private key will be ignored.”
需要 chmod 600 <private_key_file>

查看某个分支是从哪个分支拉出来的

git reflog --date=local | grep 分支名

fatal: remote origin already exists

1
2
git remote add origin**************
fatal: remote origin already exists.(报错远程起源已经存在。)

解决方法

1、先输入 git remote rm origin
2、再输入 git remote add origin xxxxxxx

或者直接更新 url

1
git remote set-url origin https://github.com/yourname/learngit.git (这个是你的复制的仓库地址)

克隆的时候制定端口

ssh 协议默认会使用 22 端口
git@39.105.48.128:acc8226/hello.git

此种形式可以更改端口,举例这里改为了 222 端口
ssh://git@39.105.48.128:222/acc8226/hello.git

问题

The following paths are ignored by one of your .gitignore

Android studio 中使用 git add 方式添加新的文件时出现错误:The following paths are ignored by one of your .gitignore

这时使用命令 “git check-ignore -v gradlew” 测试是哪个 gitignore 文件导致。

在项目中找到 .gitignore 文件(可能隐藏了,打开文件管理器设置一下),打开文件,把添加的文件或路径删除即可。原因是文件或路径被忽略了

could not lock config file

%HOMEDRIVE%%HOMEPATH%/.gitconfig 的问题

在我的电脑上 HOME 的值是 %HOMEDRIVE%%HOMEPATH% 竟然不识别。已知 %homedrive% 指操作系统所在盘默认为 C:%HOMEPATH% 指的是用户所在目录,举例说明 \Users\zhangsan

所以手动改成 C:\Users\hp 即可。

1
2
C:\Users\hp>echo %HOMEDRIVE%%HOMEPATH%
C:\Users\hp

设置 HOME 环境变量为自己的用户目录

git pull 失败

提示 refusing to merge unrelated histories

解决方案:添加 --allow-unrelated-histories

1
git merge origin/master --allow-unrelated-histories

git clone 时,提示 warning: remote HEAD refers to nonexistent ref, unable to checkout.

原因是 .git 目录下 .git/refs/heads 不存在 HEAD 指向的文件。

键入

1
git branch -a

将展示所有分支,如果你看到了 remotes/origin/oneplus/QC8998_N_7.1 分支可用的话,然后 git checkout remotes/origin/oneplus/QC8998_N_7.1 -b NameYouWant 即可解决。