Git 是一款开源的分布式版本控制系统,而 GitHub 是依托 Git 的代码托管平台。git
GitHub 利用 Git 极其强大的克隆和分支功能,使得社区成员可以自由地参与到开源项目中去。github
不过,在开始学习以前,你须要一个 GitHub 帐号,以及一台能联网的 Linux 虚拟机。vim
==================================准备工做==================================服务器
若是你已经安装好了 Git,能够忽略这一步ssh
Ubuntu 安装 Git: apt-get install git 分布式
CentOS 安装 Git: yum install git ide
查看 Git 版本信息: git version 学习
配置 Git 用户信息:spa
git config --global user.name "xxxxxxx" git config --global user.email "xxxxxx@xxx.com"
把用户名和邮箱换成你本身的,键入命令后屏幕没有输出,则表示设置成功了
若是你使用的是 CentOS,则默认开启了 SSH,能够忽略这一步版本控制
Ubuntu 安装 SSH: apt-get install ssh
查看 SSH 服务状态: ps -e | grep sshd
sshd 表示 ssh-server 已启动
使用 ls -al ~/.ssh 命令查看 ssh key 是否存在,若存在则忽略这一步
生成 SSH KEY: ssh-keygen -t rsa -C "woider@gmail.com"
生成 ssh key 过程当中,会让你填写 passphrase,连按三次回车跳过便可
==================================SSH KEY==================================
进入 /root/.ssh 目录,查看 id_rsa 和 id_rsa.pub 文件:
root@localhost:~# cd /root/.ssh
root@localhost:~/.ssh# ls -a
id_rsa 为私钥,id_rsa.pub 为公钥
打开 id_rsa.pub 文件,将内容复制到剪贴板: vim id_rsa.pub
SSH KEY 公钥,用于 GitHub 身份验证
登陆 GitHub,打开 Personal settings 页面,选择 SSH and GPG keys 选项:
Title 能够随意填写,Key 中填写刚从 id_rsa.pub 中拷贝的内容
添加 SSH key 以后,Linux 就能够经过 SSH 创建本地 Git 与 GitHub 的链接了。
==================================GitHub==================================
建立一个名为 baidu 的仓库
SSH 地址为 git@github.com:XXXXX/baidu.git
经过 SSH 地址将 GitHub 仓库克隆到本地:
git clone git@github.com:XXXXXX/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:XXXXX/baidu.git 36c5c1c..228d321 master -> master root@localhost:/home/baidu#