git分支操作
一、git branch
:分支管理
1. 查看分支
git branch # 查看本地分支(* 表示当前分支)
git branch -a # 查看所有分支(本地+远程)
git branch -vv # 查看分支跟踪关系
2. 创建/删除分支
git branch <new-branch> # 创建新分支(不切换)
git branch -d <branch> # 删除已合并的分支
git branch -D <branch> # 强制删除未合并分支
git branch -m <old> <new> # 重命名分支
3. 分支与提交的关系
git branch --contains <commitid> # 查看包含某提交的分支
git branch --merged # 查看已合并到当前分支的分支
二、git checkout
:切换与恢复
1. 切换分支
git checkout <branch> # 切换到已有分支
git checkout -b <new-branch> # 创建并切换分支(经典写法)
git switch <branch> # Git 2.23+ 推荐替代方案
2. 恢复文件
git checkout -- <file> # 撤销工作区修改(危险!)
git checkout HEAD -- <file> # 从最新提交恢复文件
git checkout <commitid> -- <file> # 从历史提交恢复文件
3. 临时切换到提交(分离头指针)
git checkout <commitid> # 进入 detached HEAD 状态
git checkout - # 返回之前的分支
三、git push
:推送代码
1. 基本推送
git push origin <branch> # 推送分支到远程
git push -u origin <branch> # 推送并建立跟踪关系(首次推送)
2. 强制推送(慎用!
git push --force origin <branch> # 覆盖远程历史(需团队协商)
git push --force-with-lease # 安全强制推送(避免覆盖他人提交)
3. 删除远程分支
git push origin --delete <branch>
4. 推送标签
git push origin <tagname> # 推送单个标签
git push origin --tags # 推送所有标签
四、git pull
:拉取更新
1. 基本拉取
git pull origin <branch> # 拉取并合并远程分支
git pull --rebase # 变基式拉取(保持线性历史)
2. 处理冲突
git pull # 若冲突,需手动解决后提交
git mergetool # 使用图形化工具解决冲突
3. 深度控制
git pull --depth=1 # 浅克隆(只拉取最近提交)
git pull --all # 拉取所有远程分支更新
命令速查表
操作 | 命令示例 | 说明 |
---|---|---|
创建分支 | git branch feat-1 | 仅创建不切换 |
切换分支 | git checkout main | 经典写法 |
推送分支 | git push -u origin feat-1 | 首次推送需加 -u |
拉取更新 | git pull --rebase | 保持干净历史 |
恢复文件 | git checkout HEAD -- file | 从最新提交恢复 |
删除远程分支 | git push origin --delete feat-1 | 清理无用分支 |