Git版本控制入門(3) — github


Posted by ai86109 on 2020-03-24


前面我們已經將git基礎的指令和用途都大致介紹過了,有時間的話建議看完之後再來看這篇:

Git版本控制入門(1)
Git版本控制入門(2)

我們先前提過git可以讓大家多人協作,共同開發專案,但要怎麼實現呢?其實多人協作就是大家共用一個git的專案,在git中被git控制的一個專案稱為repository,所以只要把這個repository上傳到網路上,其他人再把他下載下來就可以完成多人協作的目標了。

所以其實可以把github想成像是 google drive 或是 dropbox,只是github是拿來放git repository的地方,也可以說是個讓git repository具現化的網站。

那要怎麼放上來呢?

在github頁面右上角有個加號 > New repository > 填完資料後 create
這樣你就會有一新的repository了
但目前這個repository還是空的,所以我可以按照網頁上的指示把檔案加上來

git remote add origin https://github.com/ai86109/101.git
git push -u origin master
這樣就可以把local端的git repository成功上傳到github上了!

*-u可以省略

上傳下載

其實我們剛剛已經講過上傳了,之後如果有任何更新,在local端commit完成後,就直接git push origin master即可。

但這樣說有點不精確,如果是branch的更新呢?
其實是一樣的,先在local端切換到branch的那條支線,把原本推上去的master改成那條branch的名稱就可以了,git push origin 分支名稱

可以推上去就可以拉下來

當你的協作夥伴更新github上的檔案後,為了將我們local端的資料更新到最新版,我們可以利用指令將他下載下來,git pull origin master ,如果碰到衝突的時候也是要手動解決後,才能繼續執行。

上傳下載就是這麼的容易

神的左手惡魔的右手

那如果我在github看到其他人的repository覺得不錯,想要抓下來該怎麼做?

誠如標題的暗示,我們可以把它clone起來,有兩種方式:
到你想要clone的repository,右邊會有一個clone or download

(1)直接下載到本機
或是
(2)複製這串URL > git clone 這串URL > 就會複製一份到你電腦裡

使用直接下載的這種方式,在本機端可以做任何修改、commit,但無法push到你的github上,因為你並沒有這個repository的權限。

如果真的想改又想放在自己的github

Github右上角有fork,會複製一份到自己的repository,可以按照剛剛步驟複製到本機,修改過後也可以push回github。

但其實fork有一個常見的用法是,貢獻開放原始碼。
你發現有一個專案很有趣,但你覺得可以寫得更好,所以你把它fork過來,修改了一番之後push回你的github,然後點選New pull request,也就是creat一個PR給作者,作者就會在PR那邊看到你改的東西。

作者如果覺得這個修改很讚,可以點選Merge pull request,再confirm這個PR,就會將這個更動merge到原本的專案中,在開源界是很常見的貢獻程式碼的方法。

實際操作可以參考這篇:與其它開發者的互動 — 使用 Pull Request(PR)

免費網頁大空間

你知道github除了以上這些功能外,也可以當作靜態網頁伺服器嗎?

可以直接在github開啟網頁,就可以省下一筆租借虛擬主機的錢了,實在非常划算。使用的方式很簡單,到你的repository中,進入setting找到GitHub Pages,將source選成master branch,github便會給你一串網址,在這串網址的後面加上你要開啟的檔案名稱,進入後會看到專案檔以網頁呈現。

但GitHub Pages也是有些限制,例如像是因為只支援靜態網頁,所以php, asp的檔案他就不會理你了。

跟著Flow走

Github flow其實就是work flow(工作流程),在你執行專案時,按照這個步驟能讓你更有效率的開發。

建立分支
進行修改 & Commit
開啟 Pull Request
討論檢視程式碼
部署
合併 & 刪除分支

基本上就是按照上面這個專案的生命週期去開發,詳細的流程可以參考這篇:讓我們來了解 GitHub Flow 吧!


除了我們講了這麼久的github,市面上還有其他和他相似的服務,像是bitbucket, gitlab,如果你不想使用github的話,也可以改使用其他類似的服務。

下一篇我們要來演練一下,實際操作git時會遇到的狀況。


#Git #Github #GitHub Page #gitflow