Linux 下建立 Git 与 GitHub 的连接

时间:2024-03-05 09:34:53

Git 是一款开源的分布式版本控制系统,而 GitHub 是依托 Git 的代码托管平台。

GitHub 利用 Git 极其强大的克隆和分支功能,使得社区成员能够*地参与到开源项目中去。

不过,在开始学习之前,你需要一个 GitHub 账号,以及一台能联网的 Linux 虚拟机

=================准备工作==================

一、安装 Git

  * 如果你已经安装好了 Git,可以忽略这一步

  Ubuntu 安装 Git:  apt-get install git  

  CentOS 安装 Git:  yum install git  

  查看 Git 版本信息:  git version  

  配置 Git 用户信息:

 git config --global user.name "woider"
 git config --global user.email "woider@gmail.com"

↑ 把用户名和邮箱换成你自己的,键入命令后屏幕没有输出,则表示设置成功了

二、开启 SSH 服务

  * 如果你使用的是 CentOS,则默认开启了 SSH,可以忽略这一步

  Ubuntu 安装 SSH:  apt-get install ssh  

  查看 SSH 服务状态:  ps -e | grep sshd  

sshd 表示 ssh-server 已启动

三、生成 SSH KEY

  * 使用 ls -al ~/.ssh 命令查看 ssh key 是否存在,若存在则忽略这一步

  生成 SSH KEY:  ssh-keygen -t rsa -C "woider@gmail.com" 

↑ 生成 ssh key 过程中,会让你填写 passphrase,连按三次回车跳过即可

 

================SSH KEY===================

一、查看 SSH KEY

  进入 /root/.ssh 目录,查看 id_rsa 和 id_rsa.pub 文件:

 root@localhost:~# cd /root/.ssh
 root@localhost:~/.ssh# ls -a

↑ id_rsa 为私钥,id_rsa.pub 为公钥

二、复制 SSH KEY

  打开 id_rsa.pub 文件,将内容复制到剪贴板:  vim id_rsa.pub  

↑ SSH KEY 公钥,用于 GitHub 身份验证

三、添加 SSH KEY

  登录 GitHub,打开 Personal settings 页面,选择 SSH and GPG keys 选项:

↑ Title 可以随意填写,Key 中填写刚从 id_rsa.pub 中拷贝的内容

添加 SSH key 之后,Linux 就可以通过 SSH 建立本地 Git 与 GitHub 的连接了。

 

================GitHub===================

一、创建GitHub仓库

↑ 创建一个名为 baidu 的仓库

↑ SSH 地址为 git@github.com:woider/baidu.git

二、克隆仓库到本地

  通过 SSH 地址将 GitHub 仓库克隆到本地:

 git clone git@github.com:woider/baidu.git 

↑ 第一次连接时,需要你确认 GitHub 的 Key 的指纹信息是否真的来自 GitHub 的服务器。

  克隆到本地的仓库会自动关联远程仓库,可以通过  git remote -v  命令查看关联状态:

↑ 关联后可以通过  git push origin master  命令推送修改

注意:如果克隆的是其他人的仓库,由于没有权限,你将不能推送修改。

/* 创建一个 readme.md 文件 */
root@localhost:/home/baidu# vim readme.md

/* 输出 readme.md 文件内容 */
root@localhost:/home/baidu# cat readme.md 
Git关联GitHub
=============

/* 将文件添加到暂存区 */
root@localhost:/home/baidu# git add readme.md 

/* 提交本次修改 */
root@localhost:/home/baidu# git commit -m "add readme file"
[master 228d321] add readme file
 1 file changed, 2 insertions(+)
 create mode 100644 readme.md
 
 /* 推送到远程仓库 */
root@localhost:/home/baidu# git push origin master
Counting objects: 3, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 290 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@github.com:woider/baidu.git
   36c5c1c..228d321  master -> master

root@localhost:/home/baidu#