`
fanrey
  • 浏览: 252075 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

git branch(zz)

    博客分类:
  • git
 
阅读更多
git中branch有三种类型:

1.local branch
   本地分支,就是我们平常操作的分支,git中默认是master分支
  可以通过 git branch  b1 来建立本地分支,通过 git checkout b1 来切换分支

2.tracking branch  

引用
A 'tracking branch' in Git is a local branch that is connected to a remote branch. When you pull on that branch, it automatically pulls to the remote branch that it is connected with.
   跟踪分支是一种和远程分支有直接联系的本地分支(远程分支的本地书签、别名),跟踪分支是一种本地分支!
   
  当我们在跟踪分支上使用git pull命令,会自动从相应的remote branch上fetch,然后在merge到该分支上
  如果我们想在跟踪分支上直接使用git push命令,让它自动push到对应的remote branch上
  还需要设置push的默认行为:
  
git config push.default tracking
  当我们使用git clone命令后,会自动在本地建立一个master的分支来跟踪origin/master
   我们也可以使用
  
git checkout -b b1 origin/master

   或者
git checkout --track -b develop   origin/develop
   命令来手工新建一个跟踪分支develop,并切换到该分支上(该本地develop 对应origin/develop)
  如果我们想把已经存在的一个分支b2转换成一个tracking branch,需要
  
   git config branch.b2.remote origin
   git config branch.b2.merge refs/heads/master
 

   或者,我们手工修改~/.git/config文件
  下面是一个tracking branch的配置信息
  
   [branch "master"]
        remote = origin
        merge = refs/heads/master


3.remote branch
   它实际上是指向远端服务器的某个分支,用来跟踪远程分支的变化,  也即以前提到过的origin/master分支



1,branch的建立及使用
git clone user@192.168.0.136:/media/projiect/omap4/nexttab/kernel kernel/android3.0/  //下载内核源码
git checkout -b  xx       //建立分支并切换到分支xx
git branch                   //查看当前分支的状态
git status                    //查看分支及当前修改过的文件
git add .                    //增加所有文件(如果添加某个文件,用git add file)   (
git commit -a -m "branch xx test "   //上传到本地git仓库,注释信息为branch xx test
                                       
git push user@192.168.0.136:/media/projiect/omap4/nexttab/kernel xx //推送xxx分支到服务器上
git clone user@192.168.0.136:/media/projiect/omap4/nexttab/kernel -b xx kernel/android3.0//下载xx分支

2,branch的管理
git branch                //查看当前分支的状态

git checkout master  //切换到主分支
git merge xx             //合并分支xx到主分支

git branch -d xx        //删除分支,如果还未合并到master,则会出现不能删除提示,用-D可以强制删除

git branch -v            //查看分支的最后修改
分支前带*的为还为合并分支到master分支的,无*的为已经合并到master中,可以将无*的分支删除掉。


git branch

列出所有的分支, -r参数表示列出所有远程的分支

git branch

建立一个名为的分支,使用当前版本作为这个新分支的版本

git branch

建立一个名为的分支, 使用指定的 作为新分支的版本,这个start-point可以是其他的分支名称或者tag名称。

git branch -d

删除分支 ; 如果你要删除的分支并没有被merge到当前分支的话,将产生一个错误提示。

git branch -D

同-d,但是不管要删除的分支是否已经merge到当前分支,都会删除

git checkout

切换当前分支到 , 更新 working directory 到 所对应的版本

git checkout -b

按照的版本建立一个新的分支,然后再checkout到这个分支上。

一个特殊符号 “HEAD” 总是指向当前分支. 实际上git使用一个在.git目录中叫 “HEAD”的文件来记录当前分支:

$ cat .git/HEAD ref: refs/heads/master
示例:“master”分支是当初你执行git-clone时候,clone的一个远程repository的HEAD版本的一个copy.

$ git branch -r origin/HEAD origin/html origin/maint origin/man origin/master origin/next origin/pu origin/todo
列出所有远程版本,origin是用来表示你当初执行git-clone时候的repository,你不可以直接checkout远程repository,但是你可以根据远程repository生成一个本地repository:

$ git checkout -b my-todo-copy origin/todo http://www.haijd.net/article/index.php?action=read&id=842
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics