---
# System prepended metadata

title: 'Git常見指令[較精簡版]'

---

# Git常見指令[較精簡版]

| 指令                   | 執行結果                             |
| ---------------------- | ------------------------------------ |
| clear                  | 清除所有指令                         |
| git init               | 初始化                               |
| git  add .             | 暫存所有有異動的變更                 |
| git log                | 用來看曾經commit的紀錄               |
| git status             | 查看git目前的狀態                    |
| git config --help      | 忘記指令時可以查詢help               |
| git config --list      | 查詢現在git裡面有哪些東西(清單)      |
| git commit -m "備註"   | 提交檔案(後面可備註自己改了什麼)     |
| git branch             | 查詢分支(目前)                       |
| git log                | 看提交結果(查看提交結果)             |
| git branch 新分支名稱  | 增加分支                             |
| git merge release      | 合併                                 |
| git push 節點 分支 -f  | 強制上傳覆蓋檔案                     |
| git reset HEAD^ commit | 後悔重設可以輸入此指令(僅限最近次數) |
| git reflog             | 可看到過去曾經做的修改               |
| git branch -d branch name| 刪除分支輸入git branch -d 後面接分支name|
| git checkout 分支名稱  | 切換到指定的分支                     |

# 詳細描述：

**Git基本概念**
Git的版本控制只能追踨純文字檔的變更，其它類型文件當然也可以加入 Git資料夾/程式庫，只是 Git沒辦法正確處理他們的版本狀態。

**本地(locale)與遠端(remote)**
Git的出發點就是要讓大家都能不必連線就在自已的電腦(本地)工作，完成後再推送到伺服器上(遠端)，所以本地與遠端的概念是很重要的，第一篇文章只介紹 Git最基本的使用方式，為了不要太混亂，所以只說明本地程式庫的工作方法，之後再慢慢介紹如何與遠端程式庫連接。

**開始用 Git工作**
開始工作需要有一個程式庫，這個程式庫可以是全新的程式庫，可以是已經有檔案的資料夾，也可以是自已或別人建立，已經有 Git管理的程式庫，可以在本地端操作也可以遠端操作，以下就說明如何在本地新建程式庫：

**本地端創建程式庫**
找到一個你想要儲存程式庫的資料夾，找到這個資料夾路徑，然後初始化 (initialize) Git：

    git init "資料夾路徑"
    cd "資料夾路徑"

上面資料夾路徑如果不存在的話， Git會自動新建一個。 Git會在指定資料夾裡自動創建一個隱藏資料夾 .git，所以通常你看不到有任何動靜；無論如何現在您就可以在這個程式庫裡開始工作。順道一提，這個新的程式庫不一定要是空的資料夾，也可以是原來就有資料的資料夾，寫一半的專案、報告，個人網站備份……等。只要是你想用 Git管理的資料夾，就 git init "資料夾路徑"就對了。

**基礎本地端操作**
有程式庫之後就可以開始工作了，寫程式、寫文章、修改報告……，工作完成之後，使用 Git管理最基本的幾個指令：

**加入(add)**
加入會讓 Git開始追踨資程式庫裡新增的文件，加入也等於通知 Git某些檔案的有變化，所以除了新建立的文件要加入，檔案每次修改過之後也都要執行，不然在之後推送的時候就不會被送出，檔案加入追踨的指令如下：

    git add "檔案名稱"  #加入特定檔案
    git add *           #加入所有新增或已修改檔案
    
檔案會被加入 Git的索引(index)裡，並且被放入暫存區(staging aera)，等待被提交。

**提交(commit)**
commit可以被列為承諾,有保證的意思,但在這裡git語言會把承諾這意思列為"提交"出去的意思
提交被加入(add)暫存區的檔案，指令如下：

    git commit
    
**移除(rm)**
如果想要讓 Git不再追踨某一個檔案，可以使用移除指令，要注意的是，如果只是單純執行git rm "檔案名稱"那這個檔案不只不會再被 Git追踨，同時會從程式庫裡被刪除，效果就像 Linux命令列的 rm指令一樣，如果只是想把檔案從 Git的索引裡移除，可以執行git rm --cached "檔案名稱"，這樣檔案還是會留在資料夾內，但是就不會再被 Git追踨了。

# 三個關係容易混淆[釐清楚概念]

**擷取(fetch)、合併(merge)與擷取合併(pull)**

1.擷取(fetch)
單純從遠端擷取本地端所沒有的資料，它會建立一個遠端程式庫的參照(reference)分支，但是並不會把資料合併(merge)到本地端的程式庫裡。
命令如下：
        
    git fetch origin master

2.合併(merge)
將擷取至本地端的資料併入本地程式庫分支，命令如下：
遇到衝突(conflict)時需要手動修改。
    
    git merge master


3.擷取合併(pull)
我自已是覺得如果直譯”拉取”或是”抓取”都不太明確，英文原文為了簡短使用 pull一個單字，其實它所執行的就是 fetch and merge，所以直接翻作擷取合併明確一些。
使用方法如下：

    git pull origin master


