git 常见问题

FAQ

Posted by Song on December 13, 2019

SSH 公钥过期

git push 报错:git@ssh.github.com: Permission denied (publickey).

说明公钥过期,刷新重新配置下公钥即可。

SSH 配置方法:

  1. 生成秘钥:ssh-keygen -t rsa -C “你自己的邮箱”

    这里不要设置密码,直接按回车,以后更新就无需密码

  2. windows系统在目录C:\Users\用户名.ssh 下找到你的秘钥

  3. id_rsa 是私钥、id_rsa.pub是公钥,用记事本打开文件id_rsa.pub,把里面的内容复制到github配置ssh.

  4. 添加私钥到ssh: ssh-add id_rsa(如果添加失败可以先执行命令ssh-agent bash)

  5. ssh -T git@github.com 测试是否绑定成功。如果返回successfully 表示已经配置成功。

以上五步完成SSH配置。

拓展

https 转成 ssh 访问的方法

  1. git remote remove origin(移除远程链接)

  2. git remote add origin git@github.com:用户名/你项目仓库.git (添加远程链接)

  3. 设置pull的远程分支:git branch –set-upstream-to=origin/master master

无仓库权限报错

1
2
remote: Permission to happylishang/CacheEmulatorChecker.git denied to songsongbrother.
fatal: unable to access 'https://github.com/happylishang/CacheEmulatorChecker.git/': The requested URL returned error: 403

songsongbrother 用户被拒绝访问,且访问当前仓库报403错误

解决方案:添加当前用户到仓库Team

SourceTree配置SSH

  • Mac:偏好设置–>账户–>添加–>连接账户、协议(rsa私钥自动识别)
  • Windows:Remote–>添加账户–>选项–>一般–>设置用户名、邮箱、项目路径–>设置ssh秘钥–>添加账户–>刷新令牌

文件忽略配置

  • 如果某些文件已经被跟踪了,添加到 .gitinore 文件会跟踪失效,可以忽略跟踪单独文件
1
2
3
4
// 忽略跟踪
git update-index --assume-unchanged filename    // 撤销忽略跟踪
git update-index --no-assume-unchanged filename  // 例子:
git update-index --assume-unchanged gradlew