🧰 Git 日常開發實戰命令大全
本文整理了 Git 在日常開發中高頻使用的命令集合,覆蓋從基礎操作到進階技巧的完整流程,方便留存查閱👀 ,最后附上所有指令。其中內容包括:
? 本地倉庫管理:添加文件、提交更改、查看日志
🌿 分支管理:創建、切換、合并、刪除本地及遠程分支
🔁 遠程倉庫交互:拉取、推送、強推、更新遠程信息
🔄 版本回退與恢復:reset、checkout、reflog 等操作
📦 代碼暫存(Stash):臨時保存未提交的改動
🏷? 標簽管理(Tag):輕量 tag 與注解 tag 的創建與推送
💡 實用技巧:別名設置、忽略文件規則、清理已合并分支等
📌 一、查看狀態功能 命令 查看當前倉庫狀態(修改/新增文件) git status
? 二、添加文件到暫存區功能 命令 添加指定文件到暫存區 git add filename
添加指定目錄下所有內容到暫存區 git add path/
添加當前目錄下所有改動到暫存區 git add .
添加所有改動(包括刪除文件) git add --all
🔁 三、移除暫存區文件功能 命令 將文件從暫存區移出(保留工作區) git rm --cached filename
📤 四、提交更改功能 命令 提交暫存區內容到本地倉庫(帶簡短備注) git commit -m 'commit message'
💬 提交類型規范(Conventional Commits)類型 說明 build
修改構建系統(如依賴庫、Node 版本) chore
非業務性代碼調整(如配置、腳本等) ci
持續集成相關(如 Jenkins、Travis) docs
文檔修改(如 README、API 文檔) feat
新增功能 fix
修復 bug perf
性能優化 refactor
重構代碼(不改變功能邏輯) style
樣式調整(縮進、空格、分號) test
測試相關修改
📋 五、查看提交日志
🔄 六、版本回退與恢復功能 命令 回退到指定提交(丟棄之后所有更改) git reset --hard hash
(前六位即可)強推本地版本到遠程倉庫 git push -f origin 分支名
恢復某個文件到上一次提交的狀態 git checkout filename
🌿 七、分支管理功能 命令 查看本地分支 git branch
創建新分支 git branch 分支名
創建并切換分支 git checkout -b 分支名
切換已有分支 git checkout 分支名
返回上一個分支 git checkout -
刪除本地已合并分支 git branch -d [branchName]
強制刪除本地分支 git branch -D [branchName]
刪除遠程分支 git push origin --delete [branchname]
創建并重命名當前分支 git branch -M XXX
📥 八、遠程倉庫同步功能 命令 更新遠程分支信息 git remote update origin --prune
獲取遠程分支最新數據 git fetch origin
推送本地分支到遠程 git push origin 分支名
設置默認追蹤分支并推送 git push -u origin 分支名
拉取遠程分支更新(fetch + merge) git pull origin 分支名
拉取遠程分支更新并變基 git pull --rebase origin 分支名
(推薦)
🔗 九、遠程倉庫操作功能 命令 添加遠程倉庫地址 git remote add origin url
修改遠程倉庫地址 git remote set-url origin 新地址
刪除遠程倉庫配置 git remote rm origin
克隆遠程倉庫 git clone https://github.com/jxsrzj0325/mi.com.git
🔀 十、合并與沖突處理功能 命令 合并指定遠程分支到當前分支 git merge 遠程分支名
放棄 cherry-pick 操作 git cherry-pick --abort
繼續 cherry-pick 操作 git cherry-pick --continue
退出 cherry-pick(保留已應用的 commit) git cherry-pick --quit
📦 十一、代碼暫存(Stash)功能 命令 暫存未提交的修改 git stash
暫存并添加備注 git stash save "備注內容"
查看 stash 列表 git stash list
應用最近一次 stash git stash apply
應用并刪除最近一次 stash git stash pop
刪除最近一次 stash git stash drop
清空所有 stash 記錄 git stash clear
🏷? 十二、標簽管理(Tag)功能 命令 查看所有 tag git tag -l
創建輕量 tag git tag v1.0.0
創建帶注解的 tag git tag -a v1.0.0 -m "版本描述"
提交單個 tag 到遠程 git push origin v1.0.0
提交所有 tag 到遠程 git push origin --tags
🧹 十三、其他實用技巧功能 命令 設置 Git 別名(示例:圖形化日志) git config --global alias.lg "log --oneline --graph --all"
刪除所有已合并分支(除 main/master) `git branch --merged 強推覆蓋遠程分支(慎用) git push origin 分支名 --force
所有命令
# 查看狀態
$ git status # 添加管理 ( 將文件或目錄添加到本地倉庫的暫存區)
$ git add filename # 將指定的文件添加到暫存區
$ git add path/ # 將指定的目錄添加到暫存區
$ git add . # 將當前目錄所有內容 ( 文件和文件夾) 添加到暫存區
$ git add -- all # 將當前目錄所有內容 ( 文件和文件夾) 添加到暫存區# 將文件移出暫存區
$ git rm -- cached filename # 注意:filenamed 是筆誤,應為 filename# 將暫存區的內容提交到本地倉庫 (yarn lint: fix 處理 ESLint 格式)
$ git commit - m ''
# 提交類型說明:
# build: 修改項目構建系統,例如修改依賴庫、外部接口或者升級 Node 版本等;
# chore: 用于對非業務性代碼進行修改,例如修改構建流程或者工具配置等;
# ci: 修改持續集成流程,例如修改 Travis、Jenkins 等工作流配置;
# docs: 修改文檔,例如修改 README 文件、API 文檔等;
# style: 修改代碼樣式,例如調整縮進、空格、空行等;
# refactor: 重構代碼,例如修改代碼結構、變量名、函數名等但不改變功能邏輯;
# perf: 性能優化,例如提升性能、減少內存占用等;
# test: 修改測試用例,例如添加、刪除、修改測試用例等; # 查看提交日志
$ git log# 恢復歷史版本
$ git reset -- hard hash # 回退到指定提交(前六位即可)
$ git push - f origin 分支名 # 強推本地版本到遠程倉庫# 恢復文件
$ git checkout filename # 恢復某個文件到上一次提交的狀態# 查看分支
$ git branch# 更新遠程分支
$ git fetch origin
# 或者
$ git remote update origin -- prune # 推薦,會清理無效引用# 創建分支
$ git branch 分支名# 推送/ 拉取到遠程分支(git pull 是兩個指令的組合:git fetch 和 git merge)
$ git push origin 分支名
$ git pull origin 分支名# 切換分支
$ git checkout 分支名# 返回上游分支
$ git checkout - # 返回上一個分支# 合并遠程分支
$ git merge 遠程分支名# 代碼沖突后,放棄或者退出 cherry- pick 流程:# 放棄, 回到操作前的樣子,就像什么都沒發生過
$ git cherry- pick -- abort# 退出, 不回到操作前的樣子, 即保留已經 cherry- pick 成功的 commit,并退出 cherry- pick 流程:
$ git cherry- pick -- quit# 刪除本地已合并的分支:
$ git branch - D [ branchName] # 刪除遠程分支:
$ git push origin -- delete [ branchname] # 添加遠程倉庫地址 并取名 origin
$ git remote add origin url # 一般新建倉庫就有,直接復制 HTTPS 或 SSH 地址# 創建并切換到 XXX 分支
$ git checkout - b XXX # 更推薦的方式
# 或者
$ git branch - M XXX # 如果當前已有內容,重命名為 XXX 分支# 將本地倉庫推送到遠程倉庫
$ git push - u origin 分支名 # 設置默認追蹤遠程分支,后續可以直接 git push# 如果返回:fatal: 遠程 origin 已經存在。此時只需要將遠程配置刪除,重新添加即可;
$ git remote rm origin
$ git remote add origin url# 克隆遠程倉庫 ( 從無到有)
$ git clone https: / / github. com/ jxsrzj0325/ mi. com. git# 從遠程倉庫拉取分支 ( 更新)
$ git pull origin master# 保存當前未 commit 的代碼
$ git stash# 保存當前未 commit 的代碼并添加備注
$ git stash save "備注的內容" # 列出 stash 的所有記錄
$ git stash list# 刪除 stash 的所有記錄
$ git stash clear# 應用最近一次的 stash
$ git stash apply# 應用最近一次的 stash,隨后刪除該記錄
$ git stash pop# 刪除最近的一次 stash
$ git stash drop# 查看所有 tag
$ git tag - l # 打 tag
$ git tag v1. 0.0 # 提交 tag
$ git push origin v1. 0.0 # 推送所有 tag 到遠程倉庫
$ git push origin -- tags# 查看遠程倉庫信息
$ git remote - v# 設置用戶名和郵箱(如果未設置)
$ git config -- global user. name "YourName"
$ git config -- global user. email "your@email.com" # 設置默認編輯器(可選)
$ git config -- global core. editor "code --wait" # VS Code 示例# 配置別名(簡化常用命令)
$ git config -- global alias. br "branch"
$ git config -- global alias. co "checkout"
$ git config -- global alias. ci "commit"
$ git config -- global alias. st "status"
$ git config -- global alias. hist "log --oneline --graph --all" # 取消某個 commit(軟撤銷)
$ git reset -- soft HEAD ~ 1 # 取消某個 commit(硬撤銷,連帶改動一并刪除)
$ git reset -- hard HEAD ~ 1 # 修改最后一次提交的信息
$ git commit -- amend - m "新的提交信息" # 查看某次提交的詳細內容
$ git show 提交hash# 查看工作區與暫存區差異
$ git diff# 查看暫存區與上次提交差異
$ git diff -- cached# 查看遠程分支列表
$ git branch - r# 跟蹤遠程分支并創建本地分支
$ git checkout - b 本地分支名 origin/ 遠程分支名# 變基方式拉取更新(避免產生 merge commit)
$ git pull -- rebase origin 分支名# 忽略某些文件(在 . gitignore 中添加規則)
# 示例:
# * . log
# / node_modules /
# . DS_Store