Git分支详解

Git分支详解

git branch命令

  • 查看分支 git branch
  • 新建分支 git branch branch_name
  • 切换分支 git checkout branch
  • 删除分支 git branch -d branch_name
    (注意不能删除当前所在的分支)
  • 更改分支名称 git branch -m old_name new_name
  • 创建分支并切换到新创建的分支 git branch -b branch_name
  • 合并分支 git merge branch_name
  • 查看工作区与暂存区差异 git diff
  • 查看提交历史 git log
  • 封存当前暂存区修改 git stash
  • 查看当前保存内容 git stash list
  • 提取暂存区 git stash apply stash@{0}

git分支初步使用

  1. 首先查看当前目录下的git分支

    $ git branch
      admin
    * master
    

    当前目录有两个分支,分别是master与admin分支,并且目前我们处于master分支上。
    当前的项目文件的内容相同,因为我们没有做修改。

  2. 对文件进行修改并合并
    在master分支下的文件里添加注释
    #this is master branch
    在admin分支下的文件中添加注释
    #this is admin branch
    使用git commit -am 'admin branch'提交更改
    回到master分支,使用git merge admin命令合并分支

    $ git merge admin
    Auto-merging dPro/urls.py
    CONFLICT (content): Merge conflict in dPro/urls.py
    Automatic merge failed; fix conflicts and then commit the result.
    

    可以看到,git提示我们合并失败,因为在文件dPro/url.py内有冲突,他要求我们手动合并并重新提交
    dPro/url.py内显示了冲突的内容

    <<<<<<< HEAD
    #这是master分支
    =======
    #this is admin branch
    >>>>>>> admin
    

    我们对文件进行修改,将admin分支的内容合并到master分支上,修改结果如下

    #this is admin branch
    

    git提示我们合并成功

  3. 查看版本差异
    首先使用git log查看版本历史

    commit f387cc59552544a031cbd424f3d516a2781ecbab (HEAD -> master)
    Merge: 167823b 8e554e9
    Author: Qian <2358979326@qq.com>
    Date:   Sun Jun 2 12:36:38 2019 +0800
    
        mergeadmin fix conflict 
    
    commit 8e554e9a334d31b5acce076d465fb398f6d9ac6c (admin)
    Author: Qian <2358979326@qq.com>
    Date:   Sun Jun 2 12:19:52 2019 +0800
    
        admin branch
    
    commit 167823b479d9c932414534bbaa6610674807f907
    Author: Qian <2358979326@qq.com>
    Date:   Sat Jun 1 23:39:58 2019 +0800
    
        test
    
    

    我们选择两个版本比较差异,使用git diff 版本号1 版本号2,一般选择版本号前8位(git使用前7位)。

    $ git diff f387cc595 167823b479d
    diff --git a/dPro/urls.py b/dPro/urls.py
    index f12a399..7ca8aa1 100644
    --- a/dPro/urls.py
    +++ b/dPro/urls.py
    @@ -24,5 +24,4 @@ urlpatterns = [
        url(r'login/',views.login),
        url(r'index/',views.index),
    ]
    -#this is admin branch
    -
    +#这是master分支
    
  4. 封存暂存区
    我们对文件进行修改,添加#对暂存区的修改,并保存
    接着我们切换到admin分支,使用git checkout admin命令,出现以下错误

    error: Your local changes to the following files would be overwritten by checkout:
            dPro/urls.py
    Please commit your changes or stash them before you switch branches.
    Aborting
    

    git提示我们提交我们的修改,或者是在切换分支之前satsh他们。
    我们使用git stash命令暂存。
    此时我们的工作区已经变成了修改之前的状态,即之前做的修改已经撤销掉了,可以安全的切换分支了。

  5. 提取暂存区
    当我们将修改暂存并切换分支后,重新回到之前暂存内容的分支时,如何提取之前stash的内容?
    首先使用git stash list查看当前保存的内容

    $ git stash list
    stash@{0}: WIP on master: f387cc5 mergeadmin fix conflict
    stash@{1}: WIP on master: f387cc5 mergeadmin fix conflict
    

    使用命令git stash apply stash@{0},打开编辑器,可以看到之前做的修改已经提取出来了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值