HEAD
是一个特殊的指针,它始终指向当前所在的分支的最新提交。HEAD
表示当前的工作目录和索引(暂存区)所在的位置,是当前分支的最新提交的引用。
创建分支
// 创建分支
$git branch 分支名称
// 创建并切换分支
$git checkout -b 分支名称
$git switch -c 分支名称(git2.23版本后命令)
查看分支
// 查看所有本地分支,当前分支会有 * 标记
$git branch
// 查看所有远程分支
$git branch -r
// 查看所有本地分支和远程分支
$git branch -a
// 查看所有分支的最近提交
$git show-branch
切换分支
$git checkout 分支名称
$git switch 分支名称(git2.23版本后命令)
删除分支
// 当前分支已经合并了该分支才能删
$git branch -d 分支名称
// 强制删除,未合并也行
$git branch -D 分支名称
// 删除远程分支
$git push origin --delete 分支名字
合并分支merge
// 把分支a合并到当前分支
$git merge 分支a
注意: 每次在切换分支前,一定要提交工作区的修改
因为git的分支必须指向一个commit,没有任何commit就没有任何分支
实现:bugFix和main主分支内容保持一致
// 1、确保当前在main主分支上
// 2、把bugFix的内容拿过来合并到主分支
$git merge bugFix
// 3、切换到bugFix分支
$git checkout bugFix
// 4、把主分支的内容拿过来合并到bugFix
$git merge main
合并分支rebase
// 把当前分支合并到a上去
$git rebase 分支a
// 合并提交:当你在一个分支上进行多次连续的小型提交时,你希望合并为一个更大的提交
$git rebase -i
第一步:当前在bugFix主分支上
第二步:$git rebase main
第三步:$git checkout main
第四步:$git rebase bugFix
merge和rebase 的区别:
1、merge
创建一个新的合并提交来整合两个分支的更改,而rebase
将当前分支上的提交复制到目标分支上,并在目标分支上重新应用这些提交。2、
merge
不会改变原有的提交历史,而rebase
会,所以使用时需要小心谨慎3、
merge
操作可以在任何时候进行,而rebase
更适合在要合并的分支没有太多其他人提交的情况下使用,以避免破坏公共分支的提交历史。
冲突
当多个分支修改同一个文件后,合并分支的时候就会产生冲突。
冲突处理:
1、定位产生冲突的文件 :$git status
2、打开冲突文件的修改内容为最终正确的结果
3、git add -A 和 git commit -m '注释' 提交即可