Git 備忘錄

入門

初始化新倉庫

git init

克隆現有倉庫

git clone <url>

準備提交

新增未跟蹤檔案或未暫存的變更

git add <檔案>

新增所有未跟蹤檔案和未暫存的變更

git add .

選擇要暫存的檔案部分

git add -p

移動檔案

git mv <舊名稱> <新名稱>

刪除檔案

git rm <檔案>

讓 Git 忽略檔案而不刪除它

git rm --cached <檔案>

取消暫存一個檔案

git reset <檔案>

取消暫存所有內容

git reset

檢視你已暫存的內容

git status

進行提交

進行提交(並開啟文字編輯器編寫提交資訊)

git commit

進行提交

git commit -m '提交資訊'

提交所有未暫存的變更

git commit -am '提交資訊'

檢視暫存/未暫存的變更

檢視所有暫存和未暫存的變更

git diff HEAD

只檢視暫存的變更

git diff --staged

只檢視未暫存的變更

git diff

檢視提交記錄的變更

顯示一個提交與其父提交的差異

git show <提交記錄>

比較兩個提交記錄的差異

git diff <提交記錄> <提交記錄>

比較一個檔案自某個提交記錄以來的差異

git diff <提交記錄> <檔案>

顯示差異的摘要

git diff <提交記錄> --stat git show <提交記錄> --stat

放棄你的變更

放棄單個檔案的未暫存變更

git restore <檔案> git checkout <檔案>

放棄單個檔案的所有暫存和未暫存變更

git restore --staged --worktree <檔案> git checkout HEAD <檔案>

放棄所有暫存和未暫存的變更

git reset --hard

刪除未跟蹤檔案

git clean

'暫存' 所有暫存和未暫存的變更

git stash

程式碼考古

檢視分支的歷史記錄

git log main git log --graph main git log --oneline

顯示修改了某個檔案的所有提交記錄

git log <檔案>

顯示修改了某個檔案的所有提交記錄,包括它重新命名之前的記錄

git log --follow <檔案>

查詢新增或刪除了某些文字的所有提交記錄

git log -G banana

顯示最後修改了檔案中某一行的人

git blame <檔案>

恢復舊檔案

獲取另一個提交記錄中某個檔案的版本

git checkout <提交記錄> <檔案> git restore <檔案> --source <提交記錄>

新增遠端倉庫

git remote add <名稱> <URL>

拉取變更

獲取變更(但不修改你任何本地分支)

git fetch origin main

獲取變更然後 rebase 當前分支

git pull --rebase

獲取變更然後將它們合併到當前分支

git pull origin main git pull

配置 Git

設定一個配置選項

git config user.name '你的名字'

全域性設定選項

git config --global ...

新增一個別名

git config alias.st status

檢視所有可用的配置選項

man git-config