切换分支
git checkout
创建并切换到新分支
git checkout -b
基于远程库分支创建分支
语法格式
git checkout -b
使用示例: 以远程库中的 liang 分支为起点,在本地创建一个 dev 分支
git checkout -b dev origin/liang
本地创建分支并关联远程的分支
git checkout -b app-plus origin/app-plus
如果本地和远程分支不同步 用 git fetch
查看本地和远程分支的关联情况
git branch -vv
git pull = git fetch + git merge
git reset --soft HEAD^ 撤回本次commit
git branch 命令
- git branch 创建分支
git branch <branch_name>:创建一个新分支但不自动切换。
git checkout -b <branch_name>:创建新分支并切换到该分支。
- git branch 列出分支
git branch:显示本地分支,当前分支会被标记。
git branch -a: 显示所有本地和远程分支
git branch -r:显示远程分支
- 删除分支
git branch -d <branch_name>:删除已合并的本地分支。
git branch -D <branch_name>:强制删除本地分支,不论是否合并。
- 重命名分支
git branch -m <old_name> <new_name>:重命名本地分支。
- 设置上游分支(关联远程分支)
git branch --set-upstream-to=<remote>/<branch>:设置当前分支的上游分支
eg: git branch --set-upstream-to=origin/main
- 查看分支上游信息(查看远程关联分支信息)
git branch -vv:显示每个分支的上游信息和最近提交。
- 比较分支差异
git diff <branch1> <branch2>:比较两个分支之间的差异。
eg: git diff feature-x main
这将显示 feature-x 分支和 main 分支之间的差异。
- 合并分支
git merge <branch_name>:将指定分支的更改合并到当前分支。
- 推送分支到远程仓库
git push <remote_name> <branch_name>:推送本地分支到远程仓库。
eg: git push origin new-feature
这将把本地的 new-feature 分支推送到远程仓库。
- 删除远程分支
git push <remote_name> --delete <branch_name>:删除远程分支。
eg: git push origin --delete feature-x
这将删除远程仓库中的 feature-x 分支。
- 分支命名约定
使用有意义的命名
git checkout -b feature/login-page
这将创建一个用于开发登录页面的分支。
- 分支的生命周期
从创建到合并:
git checkout -b feature-x
# 进行开发
git add .
git commit -m "Implement feature X"
git checkout main
git merge feature-x
git branch -d feature-x
这展示了从创建分支、开发、合并到删除分支的完整流程。
- 分支冲突解决
解决合并冲突
git merge feature-x
# 解决冲突
git add .
git commit
这将解决 feature-x 分支合并到 main 分支时产生的冲突。
- 分支的标签
给重要的提交打标签:
git tag -a v1.0 -m "Version 1.0 release"
这将为当前提交打上一个标签 v1.0,通常用于标记发布版本。
人生很漫长,或许我只是你人生中微不足道的一小段,只是你人生中的惊鸿一瞥。