Linux git 配置 免密 登陆

3,937 阅读3分钟

Linxu 配置git

首先安装

yum install git

设置账号

用户名和邮箱就是GitHub注册时填写的用户名和邮箱(这里的【sunzefa】【sunzefa@qq.com】举例使用,切勿当真)

git config --global user.name "sunzefa"  
git config --global user.email "sunzefa@qq.com" 

 查看用户名 git config user.name 

查看用户邮箱 git config user.email 

有一点要注意, user.name/email后面千万记得加空格,否则你就是提交了,Git也不会提醒你配置出错

生成SSH Keys

ssh-keygen -t rsa -C "sunzefa@qq.com"

键入该命令后,连续三次敲击回车键,显示如下,生成的公钥存储位置为:/root/.ssh/

查公钥信息

公钥

登入GitHub,配置SSH Keys

add

登陆之后验证

验证git pull 命令是否不需要密码

试了一下,还是需要,怎么办呢?

原来啊,这个项目是直接使用https url克隆到本地。

使用http 和 ssh 区别

1.clone项目:使用ssh方式时,首先你必须是该项目的管理者或拥有者,并且需要配置个人的ssh key。而对于使用https方式来讲,就没有这些要求。

 2.push:在使用ssh方式时,是不需要验证用户名和密码,如果你在配置ssh key时设置了密码,则仅需要验证配对密码。而对于使用https方式来讲,每次fetch和push代码都需要输入账号和密码。

如果你之前已经一直使用https方式进行开发,当前想要切换成为ssh方式进行开发,只需要执行如下几步的操作即可:

git remote rm origin 

git remote add origin "Git仓库的ssh格式地址" git push origin

git 管理代码的机制

这里写图片描述

名称解释
Workspace工作区
Index / Stage暂存区
Repository仓库区(或本地仓库)
Remote远程仓库

步骤: 

 1.在workspace添加git配置文件 

 git init

 2.添加要上传的代码及文件至Index 

 git add README.md 

3.提交代码至Repository 

 git commit -m "first commit" 

4.添加远程仓库(Remote)名及路径 git remote add origin 

git@github.com:username/test.git 

5.push,即上传(Repository)代码至远程仓库保存(Remote)

 git push -u origin master
这里origin为远程仓库名 master为分支

 常用命令 1.使用命令 git remote -v 查看你当前的 

remote url

git remote -v 

 2.使用命令 git remote set-url 来调整远程url,可以为http方式和SSH方式,

下面为SSH方式:

 git remote set-url origin git@github.com:username/project.git 

3.添加当前目录的所有文件到暂存区 

 git add . 

git中的origin

  • 首先假设你自己在github上创建了一个Repository,叫做myRepository,假设你的Github ID是user1,这个时候指向你的代码库的链接是
https://github.com/user1/myRepository1
  • clone
    如果你在terminal里输入
git clone https://github.com/user1/myRepository1

这个时候git就在本地拷贝一份托管在github上的代码库

  • 进入
cd myRepository1
  • 查看
git remote -v1

你会看到控制台输出

origin https://github.com/user1/myRepository.git (fetch)
origin https://github.com/user1/myRepository.git (push)12

也就是说git为你默认创建了一个指向远端代码库的origin(因为你是从这个地址clone下来的)

总结来讲,顾名思义,origin就是一个名字,它是在你clone一个托管在Github上代码库时,git为你默认创建的指向这个远程代码库的标签, origin指向的是repository,master只是这个repository中默认创建的第一个branch。当你git push的时候因为origin和master都是默认创建的,所以可以这样省略,但是这个是bad practice,因为当你换一个branch再git push的时候,有时候就纠结了

假设你在远端开了一个分支叫dev,再将它clone到本地,本地修改后重新push,利用 git push origin dev,就可以push到对应的远端了。
git push origin dev操作的前提是你切换到了当前远程dev分支。

  • 查看远程分支
$ git branch -a

* dev
  master
  origin/dev
  remotes/origin/HEAD -> origin/master
  remotes/origin/dev
  remotes/origin/master
123456789

可以看到当前在dev分支下

  • 切换分支
$ git checkout master

Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
12345

这样就切换去master分支了