几乎每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。在很多版本控制系统中,这是个昂贵的过程,常常需要创建一个源代码目录的完整副本,对大型项目来说会花费很长时间。
master主分支
在初始化本地Git仓库的时候,Git默认已经帮我们创建了一个名字叫做master的分支
不再主分支上修改代码 而是在master创建的分支上修改代码,将修改好的代码合并到主分支上
------- 功能分支 ---------
专门用来开发新功能的分支,当新功能开发且测试完毕后,最终需要合并到master主分支上
------- 查看分支 ---------
分支前面的*号表示当前所处的分支;默认情况下就一个主分支
git branch
------- 创建新的分支 ----------
git branch 分支名称
注意⚠️
是基于当前分支,创建一个新的分支,新分支中的代码和当前分支完全一样
执行完创建分支以后,用户当前所处的还是master分支
-------- 切换分支 ----------------
使用命令,切换到指定的分支上进行开发
git checkout 分支名称
----------------分支的快速创建和切换 --------------
git checkout -b 分支名称
-b表示创建一个新分支
checkout表示切换到刚才新建的分支上
约定要在主分支上面操作
-----------合并分支 -------------
----------1、先切换到主分支 -------
git checkout master
-------2、在master分支上运行git merge login 将login分支的代码合并到master分支------
git merge login
注意点:
假设要把C分支的代码合并到A分支,则必须先切换到A分支上,在运行git merge命令,来合并C分支
------------ 删除本地分支 -------------
git branch -d 分支名称
当把功能分支的代码合并到master主分支上以后,就可以使用这个命令,删除对应的功能分支
但是注意在删除当前分支的时候,自己一定不能在这个分支上,提前切换到别的分支上面
------即使代码没有被合并 强制删除-------
git branch -D 分支名称
--------------遇到冲突时的分支合并 -------------
如果在两个不同的分支中,对同一个文件进行了不同的修改,Git就没法干净的合并它们,此时,我们需要打开这些包含冲突的文件然后手动解决冲突
- git checkout master
- git merge reg
- 执行上面的命令后会提示发生冲突,就手动的去修改代码后执行下面的操作
- git add .
- git commit -m "解决了分支合并冲突的问题"
--------------将本地分支推送到远程仓库 ---------------
如果第一次将本地分支推送到远程仓库,需要执行如下命令:
git push -u 远程仓库的别名 本地分支别名:远程分支名称
实际案例:
git push -u origin payment:pay
如果希望远程仓库分支的名称和本地分支名称保持一致,可以对命令进行简化
git push -u origin payment
注意:第一次推送分支需要带 -u参数,此后可以直接使用git push推送代码到远程分支
-------------查看远程仓库中所有分支列表 ---------------
git remote show 远程仓库名称
git remote show origin
远程仓库的名称默认是origin
--------------跟踪分支 ------------
跟踪分支指的是:从远程仓库中,把远程分支下载到本地仓库中。需要进行如下命令:
1、从远程仓库中,把对应的远程分支下载到本地仓库,保持本地分支和远程分支名称相同
- git checkout 远程分支的名称
- git checkout pay
2、从远程仓库中,把对应的远程分支下载到本地仓库,并把下载的本地分支进行重命名
- git checkout -b 本地分支名称 远程仓库名称/远程分支别名
- git checkout -b payment origin/pay
-------------拉取远程分支的最新的代码 -----------
git pull
从远程,拉取当前分支最新的代码,保持当前分支的代码和远程分支代码一致
因为github上也可以修改代码
-------------删除远程的分支 ---------------
git push 远程仓库名称 --delete 远程分支名称
eg:git push origin --delete pay
以上命令就是Git分支的主要命令哟