当前位置:   article > 正文

git登录相关操作梳理

git登录

git登录相关操作梳理

本文主要基于 Linux/Mac ,Windows下未经测试,不过估计差不多,在 git bash 内操作即可。

创建ssh key并关联github等账号

因为本地Git仓库和GitHub仓库之间的传输是通过SSH加密传输的,GitHub需要识别是否是你推送,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送,所以需要配置ssh key。

ssh-keygen -t rsa -C {"YOUR_EMAIL"}
  • 1

输入命令会提示输入文件名,没有特别需求的话不需要特别输入,用默认的即可,即直接一顿回车。之后在 ~/.ssh 下得到两个文件:id_rsaid_rsa.pub ,到 github 或者 gitlab 等的个人设置界面,添加 ssh key,把 id_rsa.pub 中的内容复制进去即可,一般这一步会需要输入密码。

同机器多用户

有时候我们会有在同一台机器上登录多个 git 账户的需求,比如要同时登录我们个人的 github 账号,和在公司的 gitlab 账号。

配置 config 文件

编辑 ~/.ssh/config 文件,该文件内保存了我们 ssh 其他机器时的信息,和 ssh 连接 git 的信息。

# Default user
Host coding  # host地址对应的别名,切换用户使用该名称
HostName xxx.xx.xx.xx # host地址 我这里填的是公司搭建的git仓库的ip地址
User xiaofute1 
IdentityFile ~/.ssh/id_rsa_default  # ssh-key文件地址 默认只会读取id_rsa

# second user
Host github
HostName github.com
User xiaofute2
IdentityFile ~/.ssh/id_rsa_github
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

切换用户

这里就用到了配置文件中的host对应的字段:

ssh -T git@github
  • 1

输出类似如下信息则表示成功:

Hi xiaofute2! You've successfully authenticated, but GitHub
does not provide shell access.
  • 1
  • 2

验证出错

验证过程中出现 Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

删除 known_hosts 文件。执行以下命令

ssh -T -v git@xxx.xx.xx.xx
  • 1

设置username和email

这里设置的 username 和 email 就是我们每次 commit 记录的用户信息。注意这里是不需要密码的。验证我们的用户身份是通过上面的 ssh key。

全局

git config --global user.name "YOUR_USRE_NAME"
git config --global user.enail "YOUR_EMAIL"
  • 1
  • 2

可以用

git config --list
  • 1

来查看配置信息。

本地

本地仓库文件夹下配置用户名 会在当前仓库中提交试用该用户信息提交,覆盖全局的配置、

git config  user.name "YOUR_USER_NAME"
git config  user.email "YOUR_EMAIL"
  • 1
  • 2

由于我们全局配置的为default user的用户名和邮箱,在github上的commits history中会link不到用户,所以每次要在 github 上 commit 内容时,需要在 git init 后需要配置该本地局部仓库的用户信息。

git设置用户名密码

我们刚才提到,上面设置git用户名/邮箱是不需要密码的。如果我们的 git 源在每次操作都需要你输入用户名/密码验证,我们依然需要每次设置,那么该如何办呢?

这里主要是修改某个项目下的 .git/config 文件:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "origin"]
    url = https://github.com/Miss-you/kernel-netfilter-sample-code.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "main"]
    remote = origin
    merge = refs/heads/master
# 上面是一般的本地仓库的内容,如果想要保存用户名密码,添加以下两行
[credential]
    helper = store
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

再使用 git config --list 查看已设配置

feiqianyousadeMacBook-Pro:xt_GTPU yousa$ git config --list
core.excludesfile=/Users/yousa/.gitignore_global
user.name=Miss-you
user.email=snowfly1993@gmail.com
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=true
remote.origin.url=https://github.com/Miss-you/xt_GTPU.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

Ref:

git命令行登陆github进行操作

git多用户配置(多用户&公司/个人)

git设置用户名密码

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/698079
推荐阅读
相关标签
  

闽ICP备14008679号