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






Related Posts

Day06 從案例看原生 History API (中)

Day06 從案例看原生 History API (中)

Nick0603
Top issues on OWASP

Top issues on OWASP

TechBridge 技術週刊
Finite State Machine (FSM) 介紹

Finite State Machine (FSM) 介紹

zavke