美文网首页
Git(三)——Branch分支

Git(三)——Branch分支

作者: _羊羽_ | 来源:发表于2018-08-18 02:47 被阅读813次

    创建分支

    git branch 分支名
    

    查看分支

    git branch -a
    

    切换分支

    git checkout 分支名
    

    创建并切换分支

    git checkout -b 分支名
    

    删除本地(合并)分支:

    git branch -d 分支名
    

    删除本地(未合并)分支:

    git branch -D branchName
    

    删除远程分支

    git push origin :br01
    或者git push origin --delete br01
    

    分支重命名

     git branch (-m | -M) <oldbranch> <newbranch>:
    

    如果你需要重命名远程分支,推荐的做法是:1删除远程待修改分支,2push本地新分支名到远程.
    如果远程已经删除的分支,在本地执行 git branch -a 显示还存在,执行以下命令可以清除

    git remote prune origin
    

    合并分支

    git merge br01 # 合并分支br01到当前分支
    

    提交分支数据到远程服务器(远程分支不存在)

    git push origin <本地分支名称>:<远程分支名称>
    

    提交分支数据到远程服务器(远程分支存在)

    git push origin <分支名称>
    

    查看所有远程分支:

    git branch -r
    

    拉取远程分支到本地

    git checkout -b 本地分支名 origin/远程分支名
    git fetch origin 远程分支名x:本地分支名x
    使用该方式会在本地新建分支x,但是不会自动切换到该本地分支x,需要手动checkout。
    

    设置分支对应

     git push --set-upstream origin dev
    

    查看本地和远程分支对应关系

    git branch -vv
    

    本地分支重命名

    Git branch -m oldbranchname newbranchname
    

    使用git pull或者git pull 拉取或提交数据时会报错,必须使用命令:git pull origin dev(指定远程分支);如果想直接使用git pull或git push拉去提交数据就必须创建本地分支与远程分支的关联

    There is no tracking information for the current branch.
    Please specify which branch you want to merge with.
    See git-pull(1) for details.
    
    git pull <remote> <branch>
    
    If you wish to set tracking information for this branch you can do so with:
    
    git branch --set-upstream-to=origin/<branch> release
    

    本地分支与远程分支关联

    git branch –set-upstream 本地新建分支名 origin/远程分支名
    

    直接拉取远程分支的代码到本地

    git clone -b 分支名仓库地址
    

    cherry-pick合并分支某次commit

    例如要将A分支的一个commit合并到B分支,就需要使用到cherry-pick
    首先切换到A分支

    $git checkout A
    $git log
    commit ecd4f07cd150fab7d55cabd00993d60a6720bd44
    Author: baxiang <baxiang@roobo.com>
    Date:   Thu Dec 20 17:30:07 2018 +0800
    
        去掉空格判断
    

    然后切换到B分支上

    $git checkout B
    $git cherry-pick  ecd4f07cd150fab7d55cabd00993d60a6720bd44
    

    然后就将A分支的某个commit合并到了B分支了

    分离头指针

    git checkout b5b7d12749
    注意:正在检出 'b5b7d12749'。
    
    您正处于分离头指针状态。您可以查看、做试验性的修改及提交,并且您可以通过另外
    的检出分支操作丢弃在这个状态下所做的任何提交。
    
    如果您想要通过创建分支来保留在此状态下所做的提交,您可以通过在检出命令添加
    参数 -b 来实现(现在或稍后)。例如:
    
      git checkout -b <新分支名>
    
    HEAD 目前位于 b5b7d12 update index
    

    查看当前分支状态

    $ git branch
      dev
      master
    * (头指针分离于 b5b7d12)
    

    修改 README.md

     git status
    头指针分离于 b5b7d12
    尚未暂存以备提交的变更:
      (使用 "git add <文件>..." 更新要提交的内容)
      (使用 "git checkout -- <文件>..." 丢弃工作区的改动)
    
        修改:     README.md
    
    修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
    

    相关文章

      网友评论

          本文标题:Git(三)——Branch分支

          本文链接:https://www.haomeiwen.com/subject/ptuzbftx.html