各位在狹小的空間里呆上一段時間之后,再出門時是否有一
種豁然開朗的感覺?
“社會化編程?”
第一章
- 是什么?GitHub 是為開發(fā)者提供 Git 倉庫的托管服務(wù)。這是一個讓開發(fā)者與
朋友厅目、同事、同學(xué)及陌生人共享代碼的完美場所法严。 - GitHub和Git的區(qū)別和聯(lián)系璧瞬?在 Git 中,開發(fā)者將源代碼存入名叫“Git 倉庫”的資料庫中并加以使用渐夸。而 GitHub 則是在網(wǎng)絡(luò)上提供 Git 倉庫的一項服務(wù)嗤锉。也就是說,GitHub 上公開的軟件源代碼全都由 Git 進行管理。
1. 協(xié)作形式變化
- 因此軟件開發(fā)者們往往要將版本管理, 系統(tǒng)墓塌、 BUG 跟蹤系統(tǒng)瘟忱、代碼審查工具奥额、郵件列表、 IRC 等眾多工具組合在一起访诱,以實現(xiàn)多人協(xié)作垫挨。
2. 在開發(fā)者之間引發(fā)化學(xué)反應(yīng)的 Pull?Request
- Pull Request 是指開發(fā)者在本地對源代碼進行更改后,向 GitHub 中
托管的 Git 倉庫請求合并的功能触菜。
3. 對特定用戶進行評論
- 任務(wù)管理和 BUG 報告可以通過 Issue 進行交互
4. 能看到更多其他團隊的軟件
- 將全公司共用代碼庫的倉庫添加到 Watch 中九榔,便能在第一時間
掌握最新版本的新功能或 BUG 修正的信息。
GitHub 與以往的倉庫托管服務(wù)最大的不同點涡相,就在于它以人為
中心哲泊。
第二章 Git的導(dǎo)入
Git 倉庫管理功能是 GitHub 的核心。
2.1 誕生背景
- Git 屬于分散型版本管理系統(tǒng)催蝗,是為版本管理而設(shè)計的軟件
2.2 什么是版本管理
- 集中型與分散型
哪個更好切威?其實雙方都各有優(yōu)缺點,需要看具
體情況而定丙号。不過先朦,隨著 Git 與 GitHub 的普及,今后使用分散型的開發(fā)者將會占絕大多數(shù)犬缨。只要規(guī)則制定得當(dāng)喳魏,分散型同樣能像集中型那樣進行管理。 - 安裝
Ubuntu:sudo apt-get install git
- 設(shè)置姓名和郵箱地址
$ git config --global user.name "Firstname Lastname"
$ git config --global user.email "your_email@example.com"
- 接下來可以看到"~/.gitconfig"
[user]
name = Firstname Lastname
email = your_email@example.com
- 提高命令的可讀性
$ git config --global color.ui auto
第三章 使用GitHub的前期準(zhǔn)備
3.1 使用前的準(zhǔn)備
- 創(chuàng)建賬號
- 設(shè)置一個好的頭像
- 設(shè)置SSH Key
ssh-keygen -t rsa -C "your_email@example.com"
- 添加公開密鑰
$ cat ~/.ssh/id_rsa.pub
ssh-rsa 公開密鑰的內(nèi)容 your_email@example.com
- 測試
$ ssh -T git@github.com
實際動手
- 創(chuàng)建倉庫
創(chuàng)建新的Repository - 編寫代碼 README.md
hello_word.php的內(nèi)容
<?php
echo "Hello World!";
?>
- 查看狀態(tài)
$ git status
- 提交
$ git add hello_world.php
$ git commit -m "Add hello world script by php"
- 查看提交日志
$ git log
- 公開時的許可協(xié)議
修正 BSD 許可協(xié)議怀薛,Apache 許可協(xié)議刺彩,MIT 許可協(xié)議等。 - 進行Push
$ git push