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#