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#