Git介紹
分布式版本控制系統。
Git命令
初始化/全局配置
git init | 初始化一個Git倉庫(會創建一個.git的目錄) |
---|---|
git config --global user.name “name” | 設置提交時的用戶名 |
git config user.name | 查看設置的用戶名 |
git config --global user.email “you@email.com” | 設置郵箱 |
git config user.email | 查看郵箱 |
git config --global credentail.helper store | 保存用戶名和密碼,不用再次輸入 |
git config --list git config --global --list | 查看配置項 查看全局的。local查看本地的 |
操作遠程倉庫
git clone <倉庫地址> git clone -b <倉庫地址> | 克隆master分支 克隆指定分支 |
---|---|
git remote add origin | 將本地項目關聯到遠程倉庫 |
git remote rm origin | 刪除關聯的遠程倉庫,之后可以重新關聯其他的倉庫 |
git remote git remote -v git remote show origin | 查看遠程倉庫名稱 查看遠程倉庫地址 顯示指定遠程倉庫的詳細信息,包括url和跟蹤分支。(不一定是origin,該值根據git remote給出遠程分支名稱) |
git fetch git fetch | 自動抓取遠程所有分支的更新,但不會自動合并 抓取遠程特定的分支 |
git pull <遠程倉庫名> <遠程分支名>:<本地分支名> | 將遠程分支拉取到本地分支,并合并。 相當于執行了git fetch和git merge操作,既拉取了代碼也進行了合并。 |
本地倉庫操作
git checkout | 創建本地分支,加上 -b ,創建后會直接切換到新分支 |
---|---|
git branch git branch -r git branch -a | 查看本地分支 查看所有遠程分支 查看本地和遠程分支 |
git branch -d | 刪除本地分支 |
git branch -m | 重命名分支,-M 強制 |
git push | 將本地分支推送到與本地分支同名的遠程分支上 |
git push -u origin <本地分支> | 將新建的本地分支推送到遠程倉庫,-D 強制刪除 |
git push origin --delete | 刪除遠程分支 |
git merge git rebase | 合并分支 變基合并 |
git merge --abort | 終止合并 |
git cherry-pick | 從別的分支復制某次commit提交 |
git status | 查看當前倉庫狀態 |
git log git log --oneline | 查看提交記錄 簡潔提交記錄 |
git ls-files --stage | 查看所有已跟蹤的文件 |
git show git show [commit] git show --oneline git show HEAD~2 | 查看commit 記錄 |
git shortlog git shortlog -sn git shortlog -sn --no-merges | 返回每個貢獻者的commit次數和message。 提交次數和排名 忽略合并提交次數 |
提交/撤回
git add . git add git add *.txt | 提交所有文件 提交暫存區 添加所有以txt為后綴的文件 |
---|---|
git commit -m | 提交到本地倉庫 |
git commit -a -m | 完成add,commit。也可以-am |
git commit --amend -m | 修改上一個提交的commit 的message |
git commit --amend --no-edit | 將新修改的內容,提交到上一個commit中去 |
git config --global alias.cm “commit -m” | 設置別名。簡化git commit 。 可以通過 git cm 提交。 |
git reset HEAD git reset HEAD git reset HEAD~N | 撤銷git add 命令 |
git restore --staged | 撤銷暫存(推薦) |
git reset --hard HEAD^ git reset --hard <commit_id> git reset [–soft | –mixed |
git rm -f | 強制將文件從暫存區和工作區刪除 |
git rm --cached | 從暫存區中刪除,保留在工作區中 |
git checkout – | 取消在工作區的文件修改 |
git reflog git reflog show HEAD | 顯示當前倉庫的引用日志,這包括分支的切換、提交、重置等重要操作。多用于恢復內容。 |
存儲
將未提交的修改(工作區 + 暫存區)臨時保存到棧中,清空當前工作目錄,便于切換分支、中斷當前開發去修復緊急bug、跨分支轉移代碼等。拉取合并最新的更改時本地已經進行了修改,但是想要保留時也可以將其暫存。
git stash git stash -u | 保存所有已跟蹤文件的修改 另外再包含未跟蹤的文件 |
---|---|
git stash list | 查看存儲列表 |
git stash pop | 恢復最新存儲并且刪除記錄 |
git stash apply | 恢復存儲但不刪除記錄,默認從stash@{0}恢復 |
git stash apply stash@{N} | 恢復指定存儲 |
git stash drop stash@{1} | 刪除指定存儲 |
git stash clear | 刪除所有 |
#### 標簽 | |
---|---|
git tag git tag -l “v1” | 查看所有標簽 查找以v1開頭的標簽 |
git tag show | 查看某個標簽的詳細信息 |
git tag git tag -a -m “” git tag | 創建新標簽 添加備注信息 為特定commit創建標簽 |
git push origin --tags git push origin | 推送所有標簽 推送指定標簽 |
git tag -d git tag push origin --delete | 刪除指定標簽 刪除遠程標簽 |
git fetch --tags | 遠程標簽拉取到當前分支 |
git checkout -b | 檢出標簽 |
差異對比
git diff | 查看工作區和暫存區的差異 |
---|
flow
git flow init | 初始化 |
---|---|
git flow feature start login | 功能分支 |
git flow feature publish login | 推到遠程分支 |
git flow feature pull login | 拉取分支 |
提交規范
feat | 新增功能 | feat(auth): 添加手機號登錄功能 |
---|---|---|
fix | 修復Bug | fix(login): 修復密碼驗證邏輯錯誤 |
refactor | 代碼重構(非功能/修復) | refactor(api): 解耦支付校驗邏輯 |
docs | 文檔更新 | docs(readme): 補充安裝步驟說明 |
style | 代碼格式調整(不影響邏輯) | style(button): 統一按鈕間距樣式 |
perf | 性能優化 | perf(load): 減少首頁圖片加載時間 30% |
test | 測試用例變更 | test(order): 添加取消訂單的單元測試 |
build | 構建系統/依賴變更 | build(deps): 升級 React 至 v18.3 |
ci | 持續集成配置變更 | ci(github): 添加自動化測試流水線 |
chore | 雜項任務(非代碼/測試) | chore: 更新 ESLint 規則配置 |
revert | 撤銷提交 | revert: 回退支付接口變更 (abc123) |
merge | 分支合并(通常由工具生成) | merge: 合并 feature/payment 到 main |