zoukankan      html  css  js  c++  java
  • Git分支学习简记

    简介

    开始过了两遍Git的内容,第二天就已经忘记了分支(branch)的概念,开始还觉得不太用的到。然后又看了第二遍,才发现为什么大家说这个是Git里边极其重要的一个东西。

    所谓branch,就类似于树的枝干,有一个主干,在Git里成为master,意思也很好理解;这个是必须存在的,然后你可以分出去其他的树干(但是都不是主干)。像树的分枝都会回到主干那里一样,Git里的分支也会汇聚到master那里。

    比方我们现在有现成的代码,A想自己修改一下,但是不能直接改动,做法可以是copy过来修改一下,在Git里我们直接创建分支就可以了。再觉得完美了之后上传过去,这个时候直接合并分支就可以搞定了。

    分支常用命令和功能介绍

    通过git branch命令可以看到现在的分支情况,*代表我们目前所在的分支

    # git branch
    * master
       test

    可以看到我们有两个分支,有master还有一个test

    通过git checkout test我们可以切换到test分支

    #git checkout test
    Switched to branch 'test'
    #git branch
    master
    *test

    通过git checkout -b  xx命令我们可以创建xx分支,-b 代表创建并直接切换到xx分支

    通过git merge xx可以把xx分支合并到master分支上

    完成合并之后可以删除xx分支,使用git branch -d xx命令,需要注意的是合并的时候需要解决冲突(即内容不一致的问题)

    下面通过一个完整的例子(代码高亮不理想,凑合看吧)演示一下:

    07:02:01wang@~/Documents/git >>  git branch
      master
    * test
    07:02:11wang@~/Documents/git >>  git checkout  master
    Switched to branch 'master'
    Your branch is ahead of 'origin/master' by 1 commit.
      (use "git push" to publish your local commits)
    07:02:21wang@~/Documents/git >>  git branch
    * master
      test
    07:02:27wang@~/Documents/git >>  ls
    readme.txt  Spoon-Knife  test
    07:02:45wang@~/Documents/git >>  cat readme.txt
    master branch`
    07:02:51wang@~/Documents/git >>  git checkout -b test1
    Switched to a new branch 'test1'
    07:03:02wang@~/Documents/git >>  git branch
      master
      test
    * test1
    07:03:05wang@~/Documents/git >>  ls
    readme.txt  Spoon-Knife  test
    07:03:07wang@~/Documents/git >>  vi readme.txt
    07:03:18wang@~/Documents/git >>  git add readme.txt
    07:03:23wang@~/Documents/git >>  git commit -m "branch test1"
    [test1 3a09722] branch test1
     1 file changed, 2 insertions(+)
    07:03:38wang@~/Documents/git >>  git checkout master
    Switched to branch 'master'
    Your branch is ahead of 'origin/master' by 1 commit.
      (use "git push" to publish your local commits)
    07:03:53wang@~/Documents/git >>  git branch
    * master
      test
      test1
    07:03:56wang@~/Documents/git >>  git merge test1
    Updating c7ac8a8..3a09722
    Fast-forward
     readme.txt | 2 ++
     1 file changed, 2 insertions(+)
    07:04:02wang@~/Documents/git >>  cat readme.txt
    master branch`
    
    test1 branch
    07:04:07wang@~/Documents/git >>  git branch -d test1
    Deleted branch test1 (was 3a09722).
    07:04:18wang@~/Documents/git >>  git branch
    * master
      test
  • 相关阅读:
    Excel 2007中忘记保护工作表密码的解决
    厦门高崎机场Wifi测试
    Windows 7下无法使用NetMeeting的共享功能的解决
    使用Winacq获取磁盘镜像
    USB 3.0 Test
    Tips:Windows 7的应用程序兼容性和絮叨的应用程序兼容性助手
    The requested resource is in use的解决方法
    运行时创建HTTP请求及请求的处理
    XML操作示例
    iframe自动适应页面
  • 原文地址:https://www.cnblogs.com/wswang/p/4438165.html
Copyright © 2011-2022 走看看