本人目前在某公司实习,公司的 Git 使用的是 SSH 连接,然后我想摸鱼 (在 Github 上开发自己的项目),于是遇到几个问题
首先 Git 支持两种协议管理远端仓库,分别是 SSH 和 HTTP/HTTPS
SSH 的链接像这样:git@github.com:arch-desgin/arch-ui-vue.git
,本地关联这个远端仓库的方式可以是
bashgit remote add origin git@github.com:arch-desgin/arch-ui-vue.git
然后我们新增了 commit,git push
一下,会发现推送不上去,需要配置 SSH Key,具体方法可以搜索一下,最终你可以在 ~/.ssh
目录下得到两个文件
把公钥放到代码托管平台,例如 github 上
本地再使用 Git 推送时,就可以根据有公私钥,推送代码到仓库了
同时,这套公私钥可以用于多个平台,账号(即将公钥复制到各个平台各个账号),不过注意别被盗了
或者还可以考虑配置多个 SSH Key,比如这篇文章 https://gitee.com/help/articles/4229
其中关键的点就是 ~/.ssh/config
文件,通过配置不同平台的 SSH key,实现多个平台开发
bash# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_id_rsa
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa
HTTP 协议链接像这样 https://github.com/arch-desgin/arch-ui-vue.git
,同样方式管理远端仓库
首次 push 代码时,会要求输入账号密码,Github 是 Acess Token
输入密码之后,下次提交就不需要再次输入密码了,这是因为使用了凭证存储,也就是 git-credential-manager 工具 (默认安装),它的模式可以分为
一般情况下,git credential 默认开启了,而且是 osxkeychain 模式,以至于这种方式非常安全。 我们可以在"钥匙串"中访问到密码
不过我发现一个极其恶心的问题,我并不知道密码是真的存在了 git credential 中,还是哪里,因为我删除,"钥匙串"中对应的密码后,再推送代码,它又给我一个新的密码了,比如我修改了密码,显然是无法推送的,出现了需要重新登录的 Dialog,但是把它关闭之后,你猜怎么着,又成功了
![]()
但是,在终端中是完全不受影响的,修改密码之后,就是没有再出现过密码,推送失败
于是我想到了,那一定是 VSCode 终端在作妖,或者 VSCode 的某个插件,比如 Gitkraken ,之后再更新 这块小问题的思路,有点像公司方法论中的:查找问题的关键是复现问题
Git 配置从高到低分为
.git/config
当前仓库的配置文件,使用 --file
选项修改,具有最高优先级~/.gitconfig
当前用户的配置文件,可以使用 --global
选项修改/etc/gitconfig
系统基本的配置文件,可以使用 --system
选项修改应用:
本文作者:pepedd864
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!