Git的分支操作,分支合并,冲突合并,拉取远程分支,提交本地分支

Git的分支,其实本质上仅仅是只想提交对象的可变指针

        Git的默认分支名是master,在多次提交之后,你其实已经有一个执行最后那个提交对象的master分支。master分支会在每次提交时自动向前移动。而且Git 的master分支并不是一个特殊的分支。它就跟其他分支完全没有区别,之所以几乎每个仓库都有master分支,是因为 git   init命令默认创建它,并且大多数人都懒得取改动它。

1.git的分支操作

        1.1  分支创建

                创建一个名称为branch_name的分支

                git     branch   branch_name 

                查看各个分支当前所指向的对象 --decorate

                git   log   --oneline --decorate  

                创建完成后我们执行上面一条命令发现,branch_name 和 master分支都指向了相同校验和的提交对象。

        1.2  分支切换

                要切换到一个已经存在的分支,使用git  checkout 命令。

                git   checkout   branch_name //切换到了branch_name分支,这样HEAD就指向了branch_name 分支了。

                在切换分支之后,如果修改并提交了文件,那么分支的HEAD就会向前移动,而master分支并没有,依然指向git   checkout时所指向的对象。当我们再次切回master的时候,git  checkout  master 这条命令做了两件事,其一是HEAD指回了master分支,二是将工作目录恢复成master分支所指向的快照内容。也就是说,刚刚切到分支上所做的修改,在master分支上不会体现。因为Git的分支实质上仅仅是包含所指对象校验和的文件(长度为40的SHA-1值字符串),所以它的创建和销毁都异常高效。创建一个新分支就相当于往一个文件中写入41个字节(40个字符和1个换行符),所以这两步过程并没有什么日志输出,但是确实已经恢复到了切换之前的状态。

        现在这个项目的提交历史已经产生了分叉,因为刚刚新建了一个分支,并切换过去做了一些工作,我们可以在不同分支间来回切换和工作,并在时机成熟的时候将他们合并起来。

        1.3  分支的合并

                创建分支并切换到新建分支可以使用:  git    branch   -b   new_branch

       它相当于 git   branch   new_branch    

        git   checkout  new_branch

        假如下面一个场景,我想在项目添加一个功能,但是不知道能不能实现。此时可以新建一个分支,并在分支上进行开发测试,等到测试通过了,合并新建分支到master分支。可以进行如下操作:

        1.3.1.git    branch   -b     new_branch 

        1.3.2.在new_branch 上进行开发,测试通过后提交  git   add  ...   git   commit ...

·       1.3.3.合并new_branch到master:

                首先切换到master分支:

                git    checkout   master

                合并分支

                git   merge   new_branch

         1.3.4.此时如果有冲突,git会给出提示,这就需要我们手动合并冲突(手动修改冲突文件),然后再进行

·                git    add  ...git   commit ..

         1.3.5.如果一个分支完成了它的使命,可以使用下面的命令删除

                git    branch -d  new_branch

        1.4   拉取服务器的分支

                对于已经存在的分支,在拉取了服务器代码[git  clone <url>]之后,我们使用git   branch -a 就可以看到所有的分支了,如果需要在某一个分支上进行操作,只需要直接切换过去即可: [git   checkout   branch_name ]     然后就可以重复前面的操作了。

        1.5 创建自己的分支并提交到服务器端:

                创建分支: git   branch   branch_name(仅仅创建) 或者使用   git  checkout -b branch_name(创建并切换到该分支)。

                推送分支到远程:(branch_name是分支名)

                                git    push   --set-upstream origin  branch_name

                创建分支仅仅是在本地创建了一个分支,并没有服务器端与之对应,需要使用上面的命令进行提交。

          1.6 删除一个远程的分支,下面命令的branch_name是分支名

                               git   push   --delete origin branch_name

                               git push origin --delete   branch_name

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值