Git 是現在最常用的版本控制工具(Version Control System, VCS),功能強大、指令繁多;但是對初學者而言,只需要學會 20% 的指令,就可以應付 80% 的狀況。

學習目標

  1. Git 安裝
  2. Git 基本概念
  3. 本機 Git 常用指令
  4. .gitignore 檔案

一、Git 安裝

請到 https://git-scm.com/downloads 下載安裝檔,在這裏我們以 windows 7 + Git Bash為例

大致上就是一個一直按「下一步」的過程,安裝完後,可以看到 「Git Bash」和「Git GUI」在 「Git」這個應用程式目錄中。

本文的操作主要是以 Git Bash 為例。

二、Git 基本概念

Pro Git 上有張圖可以參考
enter image description here

(一) Working Directory(工作區;untrack):

當我們在工作目錄中新建一個檔案,他預設的 Git 狀態就是 untrack,表示 Git 藉由比對他的索引,知道在目錄中多了一個檔案,但是這個==尚未被 Git 列管==。

(二) Staging Area(暫存區)

當我們使用

git add 檔案A名稱

表示我們告訴 Git ,請將「檔案A」列入 Git 的管理範圍,此時 Git 只知道==「檔案A」歸它管理,但是還沒有在 Git 檔案庫中儲存他的資料==。

(三) .git Repository

當我們使用

git commit 

表示將列管的所有檔案,其目前的內容,==存入檔案庫中==,萬一不小心檔案有問題,可以回復此時的狀態。

三、常用指令

1、開始在==目前==這個目錄中,使用 git 來管理我們的程式檔案

git init

這個會在目前的目錄下建立一個隱藏的 .git 目錄

2、環境基本設定

git config 

# 範例
# 設定你的使用者名稱(全域)
git config --global user.name john
# 設定你的信箱(全域)
git config --global user.email john@example.com
# 設定你的文字編輯器為「記事本」(預設為 vi,如果你不會使用 vi 請務必要執行此設定)
git config --global core.editor notepad

上述設定是全域設定,也就是說,其他的程式目錄,如果沒有特別指定,就使用全域設定。

如果你要在特定目錄使用另一個設定,就把 --global 這個選項拿掉:

# 先切換到要使用特別設定的目錄
cd 特定目錄
git config user.name david
git config user.email david@another.com

3、檢視你的設定

git config --list

4、檢查未處理的檔案狀態

git status

5、新增要追蹤的檔案

# 將某一檔案加入暫存區
git add 檔案名稱
# 將所有檔案加入暫存區
git add --all
# 將目前所在目錄及其子目錄中的所有檔案加入暫存區
git add .

6、將檔案送交給 Git 檔案庫

git commit 
# 也可以執行 -m 選項,直接在指令列指定註解
git commit -m "First commit" 

Git 可以處理中文,但是在 Git Bash 裏中文顯示會出現亂碼;你可以使用 gitk 來查看送交紀錄;在常用的一些 IDE 中也可以正確顯示中文。

7、檢查送交(commit)的記錄

git log
# 將每個 commit 資料摘要為一行
git log --oneline

8、修改最後一次 commit 的說明內容

git commit --amend
# 範例:修改上次 commit 的註解
git commit --amend -m "My first commit."

9、程式改不回來,抓取之前 commit 過的程式來用

git checkout 
# 從 524ba 那次的 commit 中,找出 MainActivity.java 這個檔案,覆蓋目前目錄中的 MainActivity.java 
git checkout 524ba MainActivity.java

10、回復之前的 commit 狀態

# 先查想要回復的 commit 代碼
git log --oneline
# 回復到代碼為 abc1234 的那次 commit
git reset --hard abc1234

11、從 github 上複製專案到本機

# 到我的 github 頁面,抓取 AdMob廣告範例 來看看

git clone git://github.com/kirin-lin/admobdemo.git

這會在目前的目錄下,建立一個叫 AdmobDemo 的專案目錄,並且將專案程式碼複製到該目錄。

12、圖形檢視模式

gitk

(四) .gitignore 檔案

將不想被 Git 所管理的檔案名稱加入,Git 即會忽略它。
例如:資料庫檔案、暫存檔... 等
.idea/

參考資料

1、Pro Git 電子書

Last modified: 2019-03-14

Author

Comments

Write a Reply or Comment

Your email address will not be published.