Git配置连接问题之SSH Key和连接问题

1.检查本机是否有ssh key设置,切换到.ssh目录

  $ cd ~/.ssh 或cd .ssh

2.配置git用户名和邮箱,配置多个用户时添加 --add 参数

  $ git config --global --add user.name "username"
  $ git config --global --add user.email "email"

  $ git config --global --unset user.name "username"            #移除用户
  $ git config --global --unset user.email "email"               #移除邮箱

3.查看用户名和邮箱

  $ git config --list

(如果没有安装TortoiseGit则跳过)因为TortoiseGit和Git的冲突需要把TortoiseGit设置改正如下:
  1.在右键选择 TortoiseGit  ->  Settings  ->  Network  
  2.将SSH client指向  ~Git\usr\bin\ssh.exe  (Git安装路径下的\usr\bin\ssh.exe)

4.生成成对的私钥公钥

  $ ssh-keygen -t rsa -C "test@qq.com"
  注:生成id_rsa私钥公钥时需要命不同文件名,密码可设可不设。

5.添加ssh key到对应的GitHub或GitLab上面

  登录GitHub系统;点击右上角账号头像的“▼”→Settings→SSH kyes→Add SSH key。
  复制id_rsa.pub的公钥内容到Key填写框内。

6.测试公钥配置是否成功

$ssh -T git@github.com 


1.Git克隆代码需要输入密码?Git提交代码需要输入账号、密码的。

  tips:      1.Access denied. 
          2.Authentication failed.
          3.Permission denied (publickey).
  说明:问题根源是TortoiseGit采用的是自己的ssh.exe生成密钥,与git的密钥生成方式不一致,导致密钥无效。
  解决:  1.重新配置用户名和邮箱,重新生成密钥,把密钥放入远程仓库中。
       2.检查TortoiseGit右键的TortoiseGit -> Settings -> Network设置,
        将SSH client指向 ~Git\usr\bin\ssh.exe

Git采用 http 方式(而不是ssh)clone/pull/push代码时,需要输入用户名密码,解决每次输入账号密码

1. SSH免密方式
使用git bash ssh-keygen或puttygen.exe生成公钥。

2. 配置全局开机存储认证信息
下面命令会将下次弹框的账号和密码保存起来,永久使用。

git config --global credential.helper store
如果想要清除该账号和密码,使用如下命令:

git config --global credential.helper reset
想要临时存储(默认15min),使用如下命令

git config --global credential.helper cache
windows下的临时存储命令不是上面的,应该使用下面的命令

git config --global credential.helper wincred

3. 地址中携带用户信息
在https链接里加入username:password。

git remote add origin https://username:password@xxx.git 

报错

ssh: connect to host github.com port 22: Connection timed out

$git ~/.shh    到目录中
touch config    创建文件
vim config        打开文件
添加如下内容
Host github.com
User git
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443

保存
:wq

测试连接情况: ssh -T git@github.com


常用命令

$git clone url                     #克隆远程仓库
$git --version                    #查看git的版本信息
$git branch                     #查看本地所有分支
$git branch -a                   #查看所有的分支
$git branch -r                    #查看远程所有分支
$git branch dev                 #创建分支
$git branch -D master develop           #删除本地库develop

$git checkout dev                   #切换到本地dev分支
$git checkout -b dev               #创建分支并切换分支
$git checkout --track origin/dev           #切换到远程dev分支

$git commit                   #提交 
$git commit -am "test"                #提交并且加注释 
$git commit -m [message]               #提交暂存区到仓库区
$git commit -v                     #提交时显示所有diff信息

$git status                      #查看当前状态 
$git remote show                 #查看远程库
$git remote add origin url              #添加远程库
$git remote show origin                 #显示远程库origin里的资源

$git pull                     #本地与服务器端同步
$git push origin master               #将文件给推到服务器上 
$git push origin master:develop            #将本地库develop与服务器上的库进行关联
$git push origin master:my-dev             #将本地库与服务器上的库进行关联

$git merge origin/dev               #将分支dev与当前分支进行合并
$git add read.txt                  #将文件加入git
$git rm read.txt                   #从git中删除指定文件

 

posted @ 2022-11-02 10:32  JackieDYH  阅读(24)  评论(0编辑  收藏  举报  来源