git 是一種版本管理的概念,
主要用於程式碼的協作。
因為每位工程師分配到的程式碼不同,
完成的時間也不一樣,
所以需要有東西來幫忙合併每個人寫的程式碼。
可以把每次上傳的程式碼當作一個分枝,
上傳後的程式碼會被自動合併到當前的主分枝。
而會有一些人是專門審查程式碼的,
在大致看過程式碼的合理性後,
他們會將程式碼合併到整個專案的主分枝。
舉個例子
今天tree、rev、Hank 三個人在協作一個DanDanJudge的爬蟲,
tree負責寫前端互動,
rev負責寫爬蟲主程式,
Hank負責寫網頁架構。
顯然這三個工作是完全可以分開做的,
因此在協作的過程中,
他們只要將程式碼分別傳到自己的分枝上 (tree、rev、Hank),
最後在由其中一人合併就可以了。
有很多指令,
這邊只教平常會用到的,
更詳細的教學可以點擊這裡
這是用來查看更改情況的指令
這是用來管理本地分枝的指令
這是用來將更變提交至本地的git
如果參數是.
的話,代表將所有更變提交。
這是用來將本地更變提交打包的指令
每次的打包一定要包含一串字串來敘述的這次的變更。
這是用來將打包提交至雲端的指令
將remote
上的分枝 branch
上傳。 (通常 remote
都是 origin
)
這是用來將雲端程式碼合併至本地的指令
因為 pull
真的不常用,所以這裡指講合併自己的專案就好。
這是用來將雲端專案複製到本地的指令
在複製時有很多種網址格式可以用,
最常看到的有 https
和 ssh
,
https
在每次上傳時都要輸出帳密 (如果我沒記錯的話),
因此很少人用,
事實上 Github
已經宣布停止支援用 https
上傳程式碼 (下載還是可以的),
而 ssh
因為本身自帶金鑰,
所以不需要再輸入帳密,
只需要在帳號設定一次即可,
是比較常見的方法。
如果想要學 ssh
的可以來找我 (我會查給你看)。
有各位已經有的Github、Bitbucket、Gitlab 等等,我自己是用 Github
。
雖然 git
在程式碼協作時很好用,
但在一個人實作專案時也是一個很好用的工具,
畢竟他的是版本管理器,
在程式出現嚴重bug時要復原還是很好用的。
最後提一下,
這個講義沒有講到如何解決Merge Conflict
,
解決辦法非常簡單,
自己查一下就有了,
但樣成好習慣,
在寫之前記得先 pull
就可以避免了。