
Git 常用命令與實戰(zhàn)操作指南一、常用 Git 命令速查命令說明示例git clone repository克隆遠程倉庫到本地git clone https://github.com/username/repo.gitgit add file將文件添加到暫存區(qū)git add index.htmlgit commit -m message提交暫存區(qū)內容到本地倉庫git commit -m Added index.htmlgit push推送本地提交到遠程倉庫git push origin mastergit pull拉取遠程更新并合并到當前分支git pull origin mastergit branch branch-name創(chuàng)建新分支git branch feature-branchgit checkout branch-name切換分支git checkout feature-branchgit merge branch-name合并指定分支到當前分支git merge feature-branchgit status查看工作區(qū)和暫存區(qū)狀態(tài)git statusgit log查看提交歷史git loggit stash暫存當前未提交的修改git stashgit remote add origin url關聯本地倉庫與遠程倉庫git remote add origin https://github.com/username/repo.git 在終端輸入git --help可查看更完整的命令幫助。二、終端基礎操作目錄與文件1. 切換盤符WindowsD: # 切換到 D 盤 cd /d D:\Projects # 切換到 D 盤的 Projects 目錄2. 切換目錄macOS / Linuxcd/# 切換到根目錄cd/Volumes/External# 切換到掛載磁盤3. 列出目錄文件WindowsdirmacOS / Linuxls4. 樹狀圖顯示目錄結構Windows需安裝 treetree/tree /fmacOS / Linux自帶tree/tree -F5. 返回上級目錄cd..cd\# Windows 返回根目錄三、完整實戰(zhàn)示例從零開始推送 C# 項目到 Gitee步驟 1初始化本地倉庫mkdircad-secondary-development-toolcdcad-secondary-development-toolgitinit步驟 2添加文件并提交# 添加所有 .cs 文件gitadd*.cs# 或添加全部文件gitadd.gitcommit-m首次提交 C# 項目代碼步驟 3關聯遠程倉庫gitremoteaddorigin https://gitee.com/yourname/cad-secondary-development-tool.git步驟 4拉取遠程更新若遠程非空gitpull--rebaseorigin master步驟 5推送本地代碼gitpush-uorigin master? 第一次推送使用-u建立上游關聯后續(xù)可直接使用git push。四、常用操作完整示例1. 拉取遠程最新代碼gitpull origin master等價于git fetchgit merge推薦日常使用前先執(zhí)行。2. 退回提交三種常用方式 回退到上一個提交保留修改gitreset--softHEAD~1撤銷 commit但保留暫存區(qū)和工作區(qū)修改 回退到上一個提交撤銷 commit 和 addgitreset--mixedHEAD~1# 默認模式撤銷 commit 和 add保留工作區(qū)修改 完全回退到指定提交丟棄所有修改gitreset--hardcommit-id徹底回到某個提交慎用會丟失后續(xù)修改 回退到遠程倉庫的某個版本gitreset--hardorigin/master3. 修改最后一次提交內容 修改提交信息gitcommit--amend-m新的提交信息 漏掉了文件補充到上一次提交gitadd忘記的文件.csgitcommit--amend--no-edit# 不修改信息只補充文件 修改更早的提交交互式變基gitrebase-iHEAD~3# 修改最近 3 次提交在打開的編輯器中將pick改為edit保存后修改內容然后執(zhí)行gitadd.gitcommit--amendgitrebase--continue4. 撤銷已推送的提交謹慎操作 方式一回退后強制推送?? 團隊協作慎用gitreset--hardHEAD~1gitpush-forigin master 方式二使用 revert 保留歷史推薦gitrevert HEAD# 撤銷最近一次提交并生成一個新的反向提交gitpush origin master五、常見報錯及解決方案? 錯誤 1fatal: unable to auto-detect email address原因未配置 Git 用戶信息。解決gitconfig--globaluser.name你的名字gitconfig--globaluser.email你的郵箱example.com? 錯誤 2! [rejected] master - master (fetch first)原因遠程有本地未獲取的新提交。解決gitpull origin master# 若有沖突解決后 add commitgitpush origin master? 錯誤 3! [rejected] master - master (non-fast-forward)原因本地與遠程提交歷史不一致如曾強制推送或變基。解決合并歷史gitpull origin master --allow-unrelated-histories# 解決沖突后提交gitpush origin master?? 也可強制推送不推薦gitpush-forigin master? 錯誤 4fatal: remote origin already exists原因已添加過遠程倉庫。解決gitremote set-url origin https://新地址.git# 或刪除后重新添加gitremote remove origingitremoteaddorigin https://新地址.git? 錯誤 5error: failed to push some refs解決步驟先git pull --rebase origin master解決沖突如有git add .git commitgit push origin master六、實用配置與查看設置/查看用戶名和郵箱gitconfig--globaluser.name你的名字gitconfig--globaluser.email你的郵箱gitconfig user.name# 查看當前用戶名gitconfig user.email# 查看當前郵箱實用配置與查看# 設置用戶名和郵箱gitconfig--globaluser.name你的名字gitconfig--globaluser.email你的郵箱# 查看當前配置gitconfig user.namegitconfig user.email# 查看 Git 全局配置gitconfig--global--list分支管理完整指南1. 分支基礎命令命令說明git branch查看本地所有分支當前分支前有*標記git branch -r查看遠程分支git branch -a查看本地和遠程所有分支git branch branch-name創(chuàng)建新分支git checkout branch-name切換到指定分支git switch branch-name切換分支Git 2.23 推薦git checkout -b branch-name創(chuàng)建并切換到新分支git switch -c branch-name創(chuàng)建并切換Git 2.23git merge branch-name將指定分支合并到當前分支git branch -d branch-name刪除本地分支已合并git branch -D branch-name強制刪除本地分支未合并git push origin --delete branch-name刪除遠程分支git branch -m old-name new-name重命名分支2. 分支管理實戰(zhàn)場景 場景一開發(fā)新功能標準流程# 1. 從主分支創(chuàng)建功能分支gitcheckout mastergitpull origin master# 確保主分支最新gitcheckout-bfeature/login# 2. 在功能分支上開發(fā)并提交gitadd.gitcommit-m完成登錄功能開發(fā)# 3. 推送功能分支到遠程便于協作或備份gitpush-uorigin feature/login# 4. 合并回主分支gitcheckout mastergitpull origin master# 拉取最新主分支gitmerge feature/login# 合并功能分支# 5. 推送更新后的主分支gitpush origin master# 6. 刪除已合并的功能分支gitbranch-dfeature/logingitpush origin--deletefeature/login 場景二緊急修復 Bug熱修復分支# 1. 從主分支創(chuàng)建熱修復分支gitcheckout mastergitcheckout-bhotfix/critical-bug# 2. 修復 Bug 并提交gitadd.gitcommit-m修復登錄驗證漏洞# 3. 合并到主分支gitcheckout mastergitmerge hotfix/critical-buggitpush origin master# 4. 同步到開發(fā)分支如果有gitcheckout developgitmerge hotfix/critical-bug# 5. 刪除熱修復分支gitbranch-dhotfix/critical-bug 場景三分支沖突解決# 合并時出現沖突gitmerge feature/branch-a# 報錯Automatic merge failed; fix conflicts and then commit the result.# 解決步驟gitstatus# 查看沖突文件# 手動編輯沖突文件刪除 , , 標記gitadd.# 標記沖突已解決gitcommit-m解決合并沖突gitpush origin master 場景四分支比較與查看# 查看兩個分支的差異gitdiffmaster..feature/login# 查看分支提交歷史圖形化gitlog--graph--oneline--all# 查看哪些分支已合并到當前分支gitbranch--merged# 查看哪些分支未合并到當前分支gitbranch --no-merged3. 分支管理常見報錯? 錯誤 1error: The branch xxx is not fully merged原因分支有未合并的提交使用-d刪除會被阻止。解決# 確認是否需要合并gitbranch --no-merged# 若確定要丟棄該分支的修改強制刪除gitbranch-Dxxx? 錯誤 2fatal: Cannot delete branch xxx checked out at remote原因嘗試刪除遠程分支但該分支正在被某個遠程用戶使用。解決先切換遠程倉庫的默認分支或確認無人使用后再刪除。? 錯誤 3合并時出現merge conflict解決手動編輯沖突文件 →git add→git commit。標簽管理完整指南1. 標簽基礎命令命令說明git tag查看所有標簽git tag -l pattern按模式搜索標簽如git tag -l v1.*git tag tag-name創(chuàng)建輕量標簽git tag -a tag-name -m message創(chuàng)建附注標簽推薦git show tag-name查看標簽詳細信息git push origin tag-name推送單個標簽到遠程git push origin --tags推送所有本地標簽到遠程git tag -d tag-name刪除本地標簽git push origin --delete tag-name刪除遠程標簽git checkout tag-name切換到標簽對應的代碼狀態(tài)2. 標簽管理實戰(zhàn)場景 場景一發(fā)布版本時打標簽# 1. 確保在主分支上gitcheckout mastergitpull origin master# 2. 打附注標簽推薦gittag-av1.0.0-m發(fā)布 1.0.0 正式版# 3. 查看標簽gittag# 4. 推送標簽到遠程gitpush origin v1.0.0# 或推送所有標簽gitpush origin--tags 場景二為歷史提交打標簽# 查看提交歷史找到目標 commit-idgitlog--oneline# 為某個歷史提交打標簽gittag-av0.9.0commit-id-mBeta 版本 場景三基于標簽創(chuàng)建分支修復舊版本 Bug# 1. 基于標簽創(chuàng)建熱修復分支gitcheckout-bhotfix/v1.0.0-fix v1.0.0# 2. 修復 Bug 并提交gitadd.gitcommit-m修復 v1.0.0 版本問題# 3. 打新標簽gittag-av1.0.1-m修復補丁版本gitpush origin v1.0.1 場景四刪除標簽# 刪除本地標簽gittag-dv1.0.0# 刪除遠程標簽gitpush origin--deletev1.0.0# 或使用舊語法gitpush origin :refs/tags/v1.0.03. 標簽管理常見報錯? 錯誤 1fatal: tag v1.0.0 already exists原因本地已存在同名標簽。解決# 刪除本地標簽后重新創(chuàng)建gittag-dv1.0.0gittag-av1.0.0-m新的信息gitpush origin v1.0.0--force? 錯誤 2推送標簽時報failed to push some refs原因遠程已有同名標簽。解決# 先刪除遠程標簽gitpush origin--deletev1.0.0# 再推送本地標簽gitpush origin v1.0.0七、總結場景推薦命令首次推送項目git init→add .→commit→remote add→push -u日常同步代碼git pull→ 修改 →add→commit→push撤銷本地提交保留修改git reset --soft HEAD~1撤銷本地提交丟棄修改git reset --hard HEAD~1修改最后一次提交git commit --amend撤銷已推送提交安全git revert HEAD強制覆蓋遠程慎用git push -f操作場景推薦命令創(chuàng)建并切換新分支git checkout -b feature/xxx合并分支git merge feature/xxx刪除本地分支git branch -d feature/xxx刪除遠程分支git push origin --delete feature/xxx查看分支圖git log --graph --oneline --all打附注標簽git tag -a v1.0.0 -m 發(fā)布說明推送標簽git push origin v1.0.0刪除遠程標簽git push origin --delete v1.0.0撤銷本地提交保留修改git reset --soft HEAD~1撤銷已推送提交安全git revert HEAD強制覆蓋遠程慎用git push -f origin master歡迎一起學習交流 我的 Gitee 主頁