目录
命令名称 | 作用 |
git branch 分支名 | 创建分支 |
git branch -v | 查看分支 |
git checkout 分支名 | 切换分支 |
git merge 分支名 | 把指定的分支合并到当前分支上 |
基本语法:git branch -v
基本语法:git branch 分支名
基本语法:git checkout 分支名
基本语法:git merge 分支名
①正常合并不冲突
②合并产生冲突
冲突产生的原因:
- 合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改
- 有两套完全不同的修改。 Git无法替我们决定使用哪一个。必须人为决定新代码内容
例如,我们首先在 master 分支的倒数第二行进行修改,并将其添加到暂存区,再提交到本地库
接着,我们去 hot-fix 分支的倒数第一行进行修改,并将其添加到暂存区,再提交到本地库
之后我们在 master 分支上合并 hot-fix 分支,发现产生冲突
解决冲突
编辑有冲突的文件,删除特殊符号,决定要使用的内容
特殊符号:<<<<<< HEAD 当前分支的代码 ====== 合并过来的代码 >>>>>> hot-fix
删除完成之后保存,再次添加到暂存区,并再次提交到本地库(注意:此时使用 git commit 命令时候不能带文件名)
master、hot-fix 其实都是指向具体版本记录的指针。当前所在的分支,其实是由 HEAD 决定的。所以创建分支的本质就是多创建一个指针。
HEAD 如果指向 master,那么我们现在就在 master 分支上
HEAD 如果执行 hotfix,那么我们现在就在 hotfix 分支上
举个例子:岳不群首先用 git 初始化自己的本地库,写了一套华山剑法,利用push 命令将自己的本地库推送到代码托管中心(Github、Gitee),大弟子令狐冲通过 clone 克隆命令完整的复制到自己的本地库,令狐冲修改两招之后将自己的本地库再次 push 到代码托管中心,这样岳不群就可以通过 pull 命令拉取令狐冲修改的代码来更新自己的本地库
令狐冲请东方不败改代码,东方不败通过 fork 命令从岳不群的的远程库中拿取代码,再通过 clone 克隆命令到自己的本地库,修改完成后使用 push 推送到在自己的远程库,使用 Pull request 拉取请求给岳不群,岳不群审核完成后使用 merge 命令合并对方的代码到自己的远程库中,再通过 pull 命令到自己的本地库中,这样修改过后的华山剑法岳不群和令狐冲就都可以使用了
命令名称 | 作用 |
git remote -v | 查看当前所有远程地址别名 |
git remote add 别名 远程地址 | 起别名 |
git push 别名 分支 | 推送本地分支上的内容克隆到本地 |
git clone 远程地址 | 将远程仓库的内容克隆到本地 |
git pull 远程库地址别名 远程分支名 | 将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并 |
基本语法:
注意:起的别名最好和本地库的名称一致
基本语法:git push 别名 分支
基本语法:git pull 远程库别名 远程分支名
基本语法:git clone 远程地址
可以看到远程仓库中还有一个 SSH 的地址,因此我们也可以使用 SSH 进行访问