網(wǎng)站流量如何提高網(wǎng)站友情鏈接購買
git checkout
?是 Git 中最常用的命令之一,主要用于切換分支和恢復(fù)文件。以下是核心功能的詳細(xì)說明:
1. 切換分支
git checkout <branch-name>
- 切換到已存在的本地分支
- 示例:
git checkout develop
git checkout -b <new-branch>
- 創(chuàng)建并切換到新分支(相當(dāng)于?
git branch <new-branch>
?+?git checkout <new-branch>
) - 示例:
git checkout -b feature/login
git checkout --track origin/<remote-branch>
- 創(chuàng)建本地分支并跟蹤遠(yuǎn)程分支
- 示例:
git checkout --track origin/main
2. 恢復(fù)文件
git checkout -- <file-path>
- 丟棄工作區(qū)的修改(未?
git add
?的改動(dòng)) - 危險(xiǎn)操作!不可撤銷
- 示例:
git checkout -- src/index.js
git checkout <commit-id> -- <file-path>
- 從指定提交恢復(fù)文件到暫存區(qū)和工作區(qū)
- 示例:
git checkout a1b2c3d -- README.md
3. 分離頭指針模式
git checkout <commit-id>
- 進(jìn)入分離頭指針狀態(tài)(不關(guān)聯(lián)分支)
- 查看歷史提交的內(nèi)容(只讀模式)
- 示例:
git checkout HEAD~2
4. 切換標(biāo)簽
git checkout <tag-name>
- 切換到標(biāo)簽指向的提交(同樣進(jìn)入分離頭指針狀態(tài))
- 示例:
git checkout v1.0.0
5. 特殊語法
git checkout -p
- 交互式選擇要恢復(fù)的代碼塊(類似?
git add -p
?的反向操作)
git checkout @{-1}
- 快速切換回上一個(gè)分支
- 示例:從?
feature/login
?返回?main
:git checkout @{-1}
?? 注意事項(xiàng)
- 未提交的修改:切換分支時(shí)如果有未提交的修改,Git 會(huì)阻止切換(除非使用?
-f
?強(qiáng)制) - 分離頭指針警告:在此狀態(tài)下提交的更改不會(huì)屬于任何分支,需要手動(dòng)創(chuàng)建分支保存
- 新版本替代命令(Git 2.23+):
git switch
:專門處理分支切換git restore
:專門處理文件恢復(fù)
典型工作流示例
# 創(chuàng)建并切換到新分支
git checkout -b fix/bug-123 # 修改文件后放棄更改
git checkout -- src/utils.js# 切換回主分支
git checkout main # 從歷史提交恢復(fù)配置文件
git checkout 89a4cfe -- config.yml
最佳實(shí)踐:優(yōu)先使用?
git switch
?和?git restore
(Git 2.23+),語義更清晰且不易誤操作。