zoukankan      html  css  js  c++  java
  • Git分支管理的基本操作

    首先从远端版本库clone下来一个全新的库:

    git clone username@xxx:/xxx/xxx.git

    此时clone下来的,只是master分支,没有其他分支。

    查看分支:

    git branch  #查看本地分支
    git branch -r  #查看远端分支
    git branch -a  #查看所有分支,包括本地和远程的

    分支名前面有 * 的,就是当前所在分支。分支名型如remote/origin/xxx的,就是远端分支。

    创建本地分支:

    git branch <user_branch_name>  #在本地创建一个新分支
    git checkout -b <user_branch_name>  #在本地创建一个新分支,并且立即切换到这个分支(第一种方式只是创建了一个分支,并没有切换)

    下面是使用 git checkout -b dev 创建的 dev 分支,会提示说已切换至新的分支 dev:

    再次使用 git branch 查看分支,会发现本地有两个分支。其中dev分支前有个 *,说明当前分支是dev:

    切换本地分支:

    一个版本库可能有多个分支,例如现在有主分支master,有开发分支dev,那么从dev分支切换至master分支如下:

    git checkout master  #从dev分支,切换到master分支

    如上提示,已经切换至master分了。

    此时再使用git branch查看分支情况,可以看到master前面有个 * ,说明已经切换到master了:

    其实命令行提示尾部括号中的名字,就是当前所在分支:

    可以看到,最后面的括号中的master,表明了当前所在分支。

    合并本地分支:

    合并分支命令:git merge 的工作流程是:将指定分支,合并至当前分支。

    例如需要将 dev 开发分支,合并到 master 主分支上,需要如下两步操作:

    1.切换到主分支

    2.将dev合并至master

    git checkout master  #切换到master分支
    git merge dev  #将dev分支合并至master分支

    例如目前有两个分支,一个master分支,一个是dev分支。

    这时新建了一个文件a.txt,在dev分支上完成git add 、 git commit两步操作,这表明,a.txt是属于dev分支的,切换到master分支时是看不到a.txt的。

    这时切换到master分支,将dev分支合并至master,就会把dev的代码加入到master中。master也就可以看到a.txt了。

    删除本地分支:

    一个分支使用完了,可以删除掉。例如这个分支就是为了修复某一个bug的,bug修好了,新代码合并至master之后,这个分支就可以删除了。

    git branch -d <branch_name>  #删除本地branch_name分支

    另外:删除当前所在分支是不行的,会提示删除失败。

    推送本地分支到远端:

    #下面local_branch_name用来指明要推送本地哪个分支,remote_branch_name用来指明远端接收这个分支后叫什么。
    git push origin [local_branch_name]:<remote_branch_name> 
    
    
    #如果希望推送当前分支,那么local_branch_name:可以省略
    git push origin remote_branch_name
    #另外本地分支名与远端分支名最好保持一致

    其实只有master一个分支时做推送操作的命令中 git push origin master,最后这个master其实就是远端的master分支名,master其实也是一个分支,git要求版本库中必须至少要有一个分支,默认叫master。

    删除远端分支:

    删除远端分支有两种方式:

    1.直接branch命令删除远端:

    git branch -r -d <remote_branch_name>  #-r表示操作的是远端  -d表示执行删除操作

    2.通过推送一个空的分支到远端,用空分支覆盖掉远端分支,从而删除这个远端分支:

    git push origin :<remote_branch_name>  #注意,origin后面有一个 空格,以及一个冒号,这是必不可少的

    3.删除已被删除的远程分支所对应的本地分支:

    一个远程分支被删除了,可是本地还存在其对应的分支引用,可以这样删除:

    git fetch -p

     拉取远程分支:

    1.直接拉取某一分支:

    git checkout -t <remote_branch_name> #-t 意为 track,即跟踪一个远程分支

    2.在初次clone时直接clone某一分支(默认是clone下来主分支master):

    git clone <repository> -b <branch_name>
  • 相关阅读:
    @RequestParam注解使用:Name for argument type [java.lang.String] not available, and parameter name information not found in class file either.
    cglib动态代理导致注解丢失问题及如何修改注解允许被继承
    springboot Autowired BeanNotOfRequiredTypeException
    git根据用户过滤提交记录
    不同包下,相同数据结构的两个类进行转换
    How to use Jackson to deserialise an array of objects
    jooq实践
    java如何寻找main函数对应的类
    Python--matplotlib
    Python 和 Scikit-Learn
  • 原文地址:https://www.cnblogs.com/lipijin/p/4287683.html
Copyright © 2011-2022 走看看