这里写目录标题
合并分支的某一次或多次提交:https://blog.csdn.net/qq_40437152/article/details/119721747
分支重命名:https://www.php.cn/tool/git/487573.html
1 分支命令汇总
功能 | 命令 |
---|---|
查看分支信息 | git branch -v 查看本地分支 git branch -av 查看本地及远程分支 |
创建分支 | git branch (branchname) git branch (branchname) (commitId) 在分支branchname的一次提交commitId上新建分支 |
切换分支 | git checkout (branchname) |
合并分支 | git merge (branchname) git cherry-pick (commitId) 合并分支上的某次提交 |
删除分支 | git branch -d (branchname) git branch -D (branchname) 强制删除 |
重命名分支 | git branch -m (本地原分支名) (本地新分支名) 重命名本地分支 git push --delete origin (远程原分支名) 删除远程旧分支 git push (本地分支别名) (本地新分支名) 推送本地新分支到远程 |
2 查看分支
查看本地分支:
$ git branch -v
查看本地及远程分支:
$ git branch -av
3 创建分支
3.1 git branch (branchname)
git branch (branchname)是在当前分支最新提交的基础之上创建名称为branchname的分支
查看当前分支状态:
$ git branch -av
创建分支test2:
$ git branch test2
当前分支情况:
切换分支到test2:
$ git checkout test2
3.2 git branch (branchname) (commitId)
git branch (branchname) (commitId)是在当前分支提交ID为commitId的基础之上创建名称为branchname的分支
查看当前最新分支上README文件中是有内容的,第二次提交时该文内容为空:
查看当前分支提交日志:
$ git log
例如在第二次提交的基础之上新建分支test3:
$ git branch test3 06c6380b85ae10c
06c6380b85ae10c为第二次commit的id,可以不写全,能表示唯一性就可以。
再次查看分支情况,test3已经建立,并且是在test2的第二次commit基础之上创建的,test3中README.md文件数据和test2的第二次commit内容一致。
4 切换分支
查看当前在哪个分支,如下,当前在test3分支:
$ git branch
master
test
test2
* test3
切换分支到test2:
$ git checkout test2
Switched to branch 'test2'
$ git branch
master
test
* test2
test3
5 合并分支
5.1 全部合并
将branchName合并到当前分支:
git merge <branchName>
5.2 部分合并
如果只想合并某个分支的某次提交,可以使用cherry-pick。
需要将一次提交合并:
git cherry-pick <commitId1>
需要将多次提交合并:
git cherry-pick <commitId1> <commitId2>
例如:需要将分支dev1中的几次提交合并到dev分支
1.查看待合并的分支 dev1 的提交版本号记录
git log dev1
2.切换到分支 dev
git checkout dev
3.执行合并
git cherry-pick commitId1 commitId2
4.推到远程
git push
6 删除分支
删除前,可先查看一共有多少分支,获取分支信息 (加了 -a ,代表也会显示 remote 的分支。如果-av和-v显示结果一样,说明没有添加 remote ,也就是只有本地分支)
git branch -av
删除 (-d会加一层判断逻辑,看是否合并到拉出的分支,确保删除动作的安全)
git branch -d <分支名称>
强制删除
git branch -D <分支名称>
7 更改分支名称
7.1 命令及执行步骤
1、重命名本地分支:
git branch -m <本地原分支名> <本地新分支名>
(如果为本地分支重命名,以下步骤可不进行,如分支已推送至远程,需执行以下步骤。)
2、删除远程旧分支:
git push --delete origin <远程原分支名>
3、推送本地新分支到远程:
git push <本地分支别名> <本地新分支名>
7.2 示例
场景:本地及远程分支旧名为v_update_1.0.1,需重命名为新分支名v_update_1.0.2
1、重命名本地分支
$ git branch -m v_update_1.0.1 v_update_1.0.2
2、查看分支情况,本地分支已经重命名为v_update_1.0.2
$ git branch -av
master 5cfc200 添加项目描述
* v_update_1.0.2 31d4332 升级至1.0.1
remotes/origin/master 5cfc200 添加项目描述
remotes/origin/v_update_1.0.1 31d4332 升级至1.0.1
3、删除远程旧分支
$ git push --delete origin v_update_1.0.1
4、查看分支情况,远程v_update_1.0.1已被删除
$ git branch -av
master 5cfc200 添加项目描述
* v_update_1.0.2 31d4332 [gone] 升级至1.0.1
remotes/origin/master 5cfc200 添加项目描述
5、推送本地新分支到远程
$ git push origin v_update_1.0.2
6、把修改后的本地分支与远程分支关联(此步骤可能不需要)
$ git branch --set-upstream-to origin/v_update_1.0.2