知識速查
建立版本庫
初始化專案 git init
從零開始建立專案
示例
git init
複製程式碼
克隆專案 git clone
將已有專案拷貝到本地
示例
git clone git@github.com:snowdreams1006/snowdreams1006.github.io.git
複製程式碼
新增檔案 git add
將新檔案或已修改檔案新增到快取區
示例
git add README.md
複製程式碼
檢視狀態 git status
檢視當前檔案是否和上次提交內容是否有修改
示例
git status README.md
複製程式碼
比較差異 git diff
檢視當前檔案和上次提交內容的具體差異
- 尚未快取的修改:
git diff
- 檢視已快取修改:
git diff --cached
- 檢視已快取與未快取的所有修改:
git diff HEAD
- 顯示摘要而非整個差異:
git diff --stat
示例
git diff README.md
複製程式碼
提交檔案 git commit
將快取區內容新增到版本庫
示例
git commit -m "remark"
複製程式碼
取消已快取內容 git reset HEAD
將快取區內容新增到版本庫
示例
git reset HEAD
複製程式碼
刪除檔案 git rm
- 從暫存區中移除且不保留在工作目錄:
git rm <file>
- 強制從暫存區中移除且不保留在工作目錄:
git rm -f <file>
- 從暫存區中移除但保留工作目錄:
git rm --cached <file>
示例
git rm README.md
複製程式碼
移動檔案 git mv <file_old> <file_new>
移動或重新命名檔案,目錄,軟連線
示例
git mv README.md README_NEW.md
複製程式碼
commit push pull fetch merge
的區別與含義:
git commit
: 將本地修改過的檔案提交到本地倉庫中git push
: 將本地倉庫的最新版本推送到遠端庫中git pull
: 從遠端庫獲取最新版本到本地,並自動merge
git fetch
: 從遠端庫獲取最新版本到本地,不會自動merge
git merge
: 將指定版本合併到當前分支
替換本地改動
丟棄當前檔案修改內容,已新增到暫存區以及新檔案都不會受到影響
示例
git checkout -- <file>
複製程式碼
丟棄本地所有改動
示例
git reset --hard
複製程式碼
分支管理
建立分支 git branch
建立本地分支,但不自動切換新分支
示例
git branch dev
複製程式碼
切換分支 git checkout
切換到指定分支
示例
git checkout dev
複製程式碼
建立並切換分支 git checkout -b
建立本地分支並自動切換到新分支
示例
git checkout -b feature
複製程式碼
合併分支 git merge
將指定分支合併到當前分支
示例
git merge dev
複製程式碼
刪除分支 git branch -d
刪除指定分支
示例
git branch -d dev
複製程式碼
列出分支 git branch
列出本地全部分支
示例
git branch
複製程式碼
提交日誌 git log
檢視納入版本庫的提交日誌
示例
git log
複製程式碼
標籤管理
建立標籤 git tag -a
建立標籤並提交備註
示例
git tag -a v1.0.0
複製程式碼
追加標籤 git tag -a
追加標籤並更新備註
示例
git tag -a v0.9.0 6ad8956bc09a6a62c731711eabe796690aa6471c
複製程式碼
刪除標籤 git tag -d
刪除指定標籤
示例
git tag -d v1.0.0
複製程式碼
檢視標籤 git show
檢視指定標籤
示例
git show v1.0.0
複製程式碼
列出標籤 git tag
列出本地全部標籤
示例
git tag
複製程式碼