目錄
克隆倉庫
git clone <url>
git clone <url> --depth 1 # 從遠端數據庫複製整個倉庫到本地端數據庫,但只複製最新的一次提交
git clone <url> --depth 1 --branch <branchname> # 從遠端數據庫複製指定分支的最新一次提交到本地端數據庫
提交相關操作
git commit --allow-empty-message -m "<message>" # 提交暫存區的檔案到倉庫且允許空訊息
git commit --amend -m "<message>"
git commit --amend --no-edit # 將暫存區的檔案合併到上一次提交的 commit 中
git commit --amend --no-edit --date="now" # 將暫存區的檔案合併到上一次提交的 commit 中,並修改提交時間
git commit --amend --no-edit --date="now" --reset-author # 將暫存區的檔案合併到上一次提交的 commit 中,並修改提交時間與作者
遠端倉庫操作
git remote set-url origin <url> # 修改遠端數據庫的連結
git push -u origin <branchname> # 將本地端的分支推送到遠端數據庫,-u 參數會將本地端的分支與遠端數據庫的分支建立關聯
git push origin --delete <branchname> # 刪除遠端數據庫的分支
git fetch --prune # 刪除本地端數據庫中已經不存在於遠端數據庫的分支
分支操作
git branch -m <oldbranch> <newbranch> # 修改分支名稱
git branch -a # 查看所有分支
git checkout --orphan <branchname> # 創建一個新的分支,且不包含任何歷史記錄
清理檔案
git checkout -- . && git clean -df # 捨棄所有未追蹤的檔案
git rm -rf . # 從暫存區移除所有檔案
打包分支
git archive --format zip --output <filename> <branchname> # 將指定分支的原始碼打包成 zip 檔
git archive --format tar.gz --output <filename> <branchname> # 將指定分支的原始碼打包成 tar.gz 檔
重置與暫存區操作
git rm -rf --cached . # 從暫存區移除所有已追蹤的檔案
git add . # 將所有檔案添加到暫存區
git commit -m "chore: reset .gitignore" # 將暫存區的檔案提交到倉庫
Submodule 操作
git submodule add <url> <path> # 添加 submodule,並指定 submodule 的路徑
git submodule update --init --recursive # 初始化 submodule,並將 submodule 更新到最新的 commit
git submodule update --remote --merge # 更新 submodule,並將 submodule 更新到最新的 commit,並合併到當前分支
git submodule deinit <path> # 移除 submodule
git add .gitmodules # 將 .gitmodules 添加到暫存區
git rm --cached <path> # 將 submodule 從暫存區移除
rm -rf .git/modules/<path> # 刪除 submodule 的 .git 資料夾
git commit -m "chore: remove submodule"
rm -rf <path> # 刪除 submodule 的資料夾
git push origin <branchname> # 將本地的分支推送到遠端數據庫