Git入門教學

料理食材(內文內容)

  • Git簡介
  • Git基本用法

誰可以安心食用(適合誰讀)

  • 會使用瀏覽器的人
  • 有Github帳號的人(沒有請點這裡去辦)
  • 不會懼怕小黑窗(Terminal)的人

服用完你會獲得什麼

  • 會使用基本的Git指令
  • 把你電腦上的專案推上Github

Git簡介

試想在很久以前,你對資訊還不太熟悉,你是否會為了每次編輯而做一份備份的動作呢?這可能讓你的檔案變得跟下圖一樣:

一個月或更久後再回來看,通常就不知道每一個檔案的差別是什麼了,一個一個查閱時,卻又因為這些檔案都含有大量相同的內容,難以找出不同點,於是你只好花費寶貴的青春在做這種沒意義的事情上。

而現在你長大了,為了避免重複年少時的過錯,你想到了一個方法可以解決這樣子的困境,那就是創立一個版本集,每次變更時都會紀錄成一個版本存進版本集中,每一個版本只紀錄與上一版的差異,當需要特定版本的檔案時,只要依照版本集對檔案進行修改,你就可以得到特定版本的檔案了, 而因為這樣做你可以達成:

  1. 減少儲存空間,因為每一版不需要儲存整個檔案。
  2. 容易辨識每一版本的差異,因為沒有重複的內容。
  3. 與別人分工變容易, 因為只需要把彼此不同版本加起來(merge)就好。

這真是個天才的想法!但唯一的缺點大概就是要回到特地版本時,需要依照中間的版本紀錄對檔案做修改,假如有上百個版本,那將會是個災難。

不過沒關係,因為世界上有著和你相同想法的天才已經用程式幫你開發好這一套分散式版本控制系統了,這個名稱叫做"Git"。

分散式是指每位專案參與者的個人電腦都可以擁有一份 Git資料庫,在開發過程中都可以對自己的資料庫進行操作,等到開發到一個階段時再推上遠端的資料庫(例如Github上的資料庫)做同步的動作。

Git跟Github的差別

現在我們已經知道Git是什麼了,那Github呢?

Git和Github大概就像是影片跟youtube的差別,後者就是儲存一大堆Git的網站,但除此之外也提供許多便利的功能,如Github Action、Github Page等等。


Git使用流程

假設你今天已經有一份寫好的檔案,你希望上傳到Github上,讓身邊的人看看你爆肝完成的成品,那麼你該進行以下的動作:

安裝Git

這部分請依照作業系統選擇。

在Github上創建Repository

如還沒有註冊Github帳戶,請點此

當登入後,在個人首頁的右上角按下+之後選擇New Repository

之後會看到這個畫面

填寫一些這個檔案的資料即可。 需要特別介紹的是底下的Initialize this repository with:,可以看到有三個選項,以下逐一介紹:

  1. Add a README.md file

    README.md主要用於說明這個repository是在做什麼的,如果repository的根目錄上含有README.md的話,就會在Github的頁面底部呈現 就像這樣。

    README.md的編寫需要使用Markdown語法,如果不知道Markdown是什麼的話,請查閱此處

  2. Add .gitignore

    當專案中含有一些敏感資料或是不相關的檔案,如:secret_key,你不希望這些檔案被加入git中,這時你就可以把這些檔案的名稱寫在.gitignore中,這樣子在執行git add時,就不會把這些檔案加入Git資料庫裡了。

  3. Choose a license

    這裡的License是關於專案的授權條款,最常見的是MIT License,代表被授權人有權利使用、複製、修改、合併、出版發行、散布、再授權和/或販售軟體及軟體的副本,及授予被供應人同等權利。

    更多的License介紹可以查看此處

以上三個選項,不勾也可以成功創建新的資料庫。

把本地的專案推到遠端節點

  1. 在專案資料夾中開啟terminal

    • Windows系統可以在專案資料夾中按下右鍵開啟git bash
    • Mac OSX開啟terminal後輸入cd ~/Document/project

    這裡的~/Document/project請換成你專案的路徑。

  2. git init

    於該資料夾中初始化git資料庫。

  3. git add .

    把未被紀錄的文件加入緩存區,git add後與.要有空白,.的意思代表該目錄下所有文件,也可以換成其他檔案的名稱,例如git add index.html

  4. git config --global user.email "yourmail@mail.com" | git config --global user.name "yourname"

    此步驟是設定git進行commit的身份,如果你已經有安裝過git了,執行這行指令後,它顯示error: 不能鎖定設定檔案,那八成是你已經設定過了。

  5. git commit -m "本次提交進資料庫的訊息ex.Add set user function..."

    把緩存區的資料存入git資料庫中,如果沒有打-m會進入vim編輯器中,輸入:q後按enter可以離開

    關於vim的進一步操作可以查看此處

  6. git remote add origin [url]

    把遠端資料庫(github)的節點加入至本地資料庫,origin代表遠端節點的名稱,你可以換成任何名稱,例如:github[url]為遠端資料庫的網址,例如你使用github,遠端資料庫的url就會像是https://github.com/Kevin-1215/project1.git

  7. git push -u origin master

    此段是第一次push時會使用到的指令,-u代表的是設定之後push的遠端節點(這邊指定origin)和節點分支(這邊指定master),在第二次後只要使用git push就可以了。

專案修改後重推

假如你推上遠端資料庫後發現 檔案有誤,或是你要做一些修改,那麼你該怎麼做呢?

  1. git add .
  2. git commit -m "修改的內容"
  3. git push

第二次推上遠端資料庫只需要以上的指令就可以完成了。


結語

本篇只有介紹很基本的Git使用流程,未來如果還有機會再來介紹更細部的內容和Git的GUI該如何使用。