Git 是現在最常用的版本控制工具(Version Control System, VCS),功能強大、指令繁多;但是對初學者而言,只需要學會 20% 的指令,就可以應付 80% 的狀況。
Table of Contents
學習目標
- Git 安裝
- Git 基本概念
- 本機 Git 常用指令
- .gitignore 檔案
一、Git 安裝
請到 https://git-scm.com/downloads 下載安裝檔,在這裏我們以 windows 7 + Git Bash為例
大致上就是一個一直按「下一步」的過程,安裝完後,可以看到 「Git Bash」和「Git GUI」在 「Git」這個應用程式目錄中。
本文的操作主要是以 Git Bash 為例。
二、Git 基本概念
在 Pro Git 上有張圖可以參考
(一) 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/
Comments