Git 個人常用指令筆記

開始之前

  • mkdir demo
    創建一個叫做demo的資料夾
  • cd
    cd加一個空白鍵後,再按下tab鍵會列出當前目錄的清單
  • cd demo
    前往demo這個資料夾
  • cd ..
    回資料夾的上一層
  • cd ~
    回到電腦最外層,像是根目錄Home之類的。
  • touch index.html
    新增index.html這個檔案
  • git init
    初始化git,創建git儲存庫。

基礎操作

  • git add .
    將所有檔案加入索引,準備加入版本控管。
  • git statusgit sta
    查看現在索引的狀態,哪些檔案未被追蹤或已經追蹤。
  • git commit -m'輸入一些備註'
    將索引內容建立一個新的版本控管,未來可能會有很多個。
  • git add app
    git add .差別在於只將app資料夾的檔案加入索引。

狀況一:終端機畫面好亂想清空

  • clear

狀況二:想查看過去版本的內容(HEAD)

HEAD為目前所在位置的指標。

  • git checkout [前四碼]
    回到以前得某個指定版本狀態,查看過去的內容。
  • git checkout master
    還原最新版本。

復原檔案

狀況一:某個檔案改壞了,需要復原到上一個(最新)Commit紀錄

  • git checkout 檔案名稱
    將這個檔案復原回最新一個(上一個)版本。

狀況二:整個工作目錄都亂了,想要還原整個工作目錄的檔案和索引

  • git reset --hard
    將整個目錄復原到最新的Commit狀態,例如:
    Commit1 –> 編輯 –> Commit2 –> 編輯發現壞了
    使用git reset --hard回到
    Commit1 –> 編輯 –> Commit2

復原索引

狀況一:git add .後希望某個檔案不要加入追蹤了

  • git reset HEAD 檔案名稱
    將這個檔案從暫存索引中移除,待會就不會被Commit出去了。

    狀況二:全部都先不要追蹤了

  • git reset HEAD
    將所有檔案從暫存索引中移除,取消追蹤。

觀念提醒

  • 要使用 Git 版本控管,你必須先建立「工作目錄」與「版本庫」。(mkdir, git init)
  • 你要先在「工作目錄」進行開發,你可能會建立目錄、建立檔案、修改檔案、刪除檔案、… 等操作。
  • 然後當你想提交一個新版本到 Git 的「儲存庫」裡,一定要先更新「索引」狀態。(git add, git mv, …)
  • 然後 Git 會依據「索引」當下的狀態,決定要把那些檔案提交到 Git 的「儲存庫」裡。(git status)
  • 最後提交變更時 (git commit),才會把版本資訊寫入到「物件儲存區」當中 (此時將會寫入 commit 物件)。
    資料來源-保哥

branch 分支

  • git branch
    查看目前有哪些分支。
  • git branch 分支名稱
    建立一個新的分支。
  • git checkout 分支名稱
    前往這個分支。
  • git merge 分支名稱
    假設我有兩個分支:master和branch,今天我要將branch合併(merge)至master時,請注意必須將目前分支指回master

    建議搭配GUI(source tree)使用。

    push 推送分支到遠端數據庫(reomte)

    數據庫可能會有很多個,像是開發用或正式發布用的。
  • git reomte
    查詢目前有哪些遠端數據庫名稱,以github來說會取得預設的名稱origin
  • git push [origin] [branch_name](你要推的分支)
    透過以上方法將分支推到github上

為你自己學 Git - push 詳細介紹

pull分支(遇到衝突時)

當有多人協作的專案時,會有不同時間上傳的不同版本問題,因此產生衝突。

  • git pull
    需先透過git pull將最新版本pull下來,此時會自動進行merge,並跳出一個視窗:

    在此輸入:wq!儲存並退出即可,此為Vim是Git預設的編輯器,查看下方Vim介紹。

Vim

Vim是Git預設的編輯器,這邊是希望你寫一些備註說明為什麼要合併,預設說明如上截圖(不含#號部分內容)。主要會用到的指令:

Normal模式:

  • i(insert)或a(append)或o(新增一行)進入Insert模式
  • :w 存檔
  • :q 離開
  • :wq 存檔然後離開

Insert模式:(在這邊我們用來編輯Commit訊息)

  • esc鍵ctrl+[ 退回Normal模式

fetch

git pull = git fetch + git merge
pull就是將遠端的分支和你本地的分支進行合併(merge)的動作,
但有時候你不希望pull下來導致自己的數據庫太亂又擔心有衝突時,可以先使用下面這個指令。

  • git fetch

可以等到你看過沒問題後,再進行合併(merge)的動作。
所以如果不滿意呢?不需要撤销, git fetch 對本地分支没有影響。

fetch詳細介紹


其他

0%