跳至主要内容

[Git] TL;DR

參考資料

相關連結


內容簡介

Git是身為工程師必學的一項工具。本篇主要是先前剛開始學習時,自己整理在notion的筆記。因為不打算在notion長期儲存筆記了,所以將文章搬移到這邊。

caution

因為使用的是Mac的作業系統,有一些終端機的指令可能會與windows不同,例如列出資料夾在mac中是使用ls指令,在windows則是使用dir。以下文章主要都是以mac系統為主。

圖片版權聲明

本篇筆記內部分圖片來自於w3hexschool。

快速查詢指令

基礎指令

  • 本地數據庫初始化:git init
  • 單一檔案加入索引:git add <檔案名稱>
  • 所有檔案加入索引:git add .
  • 取消這次的stage:git restore —stage <檔案名稱>
  • 刪除索引中的檔案(回到untracked):git rm --cache <檔案名稱>
  • 提交版本:git commit -m "填寫版本資訊"
  • 觀看當前狀態:git status
  • 瀏覽歷史紀錄:git log

遠端數據庫指令

  • 本地數據庫加入遠端數據庫:git remote add <遠端數據庫簡稱> <url>
  • 本地資料推送到遠端數據庫:git push -u <遠端數據庫簡稱> <分支名稱>
  • 從遠端數據庫下載同步到本地數據庫:git pull
  • 克隆遠端數據庫:git clone <HTTPS:URL>

git push -u <遠端數據庫簡稱> <分支名稱> 其中的-u代表預設會推送到哪個遠端數據庫,在社設推好設推送據的據庫之後,可以單純使用git push來推送 建議還是完整輸入需要推送的數據庫是哪個為佳

分支相關指令

  • 移動HEAD查閱不同commit時的資訊:git checkout SHA-1 // SHA-1可以利用git log查詢,僅需輸入前幾碼即可
  • 創建分支:git branch <新分支名稱> // 可以利用git checkout <分支名稱>來查詢該分支名稱,而不用使用SHA-1
  • 用checkout創建分支:git checkout -b <分支名稱>
  • 合併分支:git merge <被合併的分支名稱> // 需要注意這邊須先將HEAD移動到要合併的分支(較舊的。 接著被合併的分支需要指定較新的分支
  • 合併分支(強制非快轉):git merge <被合併分支名稱> —-no—ff // 即使會觸發快轉模式,使用這個指令可以強制變成非快轉(會多出一個commit)
  • 查看分支:git branch
  • 刪除分支:git branch -d <branch name> // 需要注意如果要刪除分支時,要先將HEAD指向其他分支才可以刪除
  • 強制移動分支指向:git branch -f <branch name> <target SHA-1> //移動分支所指向的位置

還原指令

還原指令圖解

  • 刪除尚未加入追蹤的檔案
    • 查看將會被刪除的檔案名稱:git clean -n
    • 強制刪除檔案:git clean -f
    • 更多功能(選擇性刪除等):git clean -i
  • 從Modified回到UnModified(放棄中間的變更)
    • 放棄單一檔案變更:git checkout <file name>
    • 放棄所有檔案的變更:git checkout .
  • 回到當前版本
    • 將所有Staged中的檔案退到Modified:git reset HEAD
    • 退回到這個commit的UnModified狀態:git reset HEAD —-hard
    • 退到上一個版本並且不保留任何其他資料:git reset HEAD^
    • 退到指定版本:git reset “SHA-1”
  • 觀看所有變更的紀錄(包含reset前的資料):git reflog