git-branch,git-checkout和repo-start三条命令的差异比较

compare Difference among git-branch, git-checkout and repo-start

1. $ repo start

used to begin a new topic branch, starting from the revision specified in the manifest.xml file. All new branches are parallel and the original branch is the same base of all new branches. Just because the revision specified in the manifest.xml file the branch out point by default, it need not to be care about which is the current branch for the $repo start command. This command can be executed in any branch,but starting point of a new branch is alwasys the revision specified in the manifest.xml file.
                
a.$repo start new-branch-1 .
b.$repo start new-branch-2 .
c.$repo start new-branch-3 .

                      O new-branch-1
                    /
                 /    
  **-branch O ---O new-branch-2 
                \
                    \
                     O new-branch-3

1)$repo start <topic-branch-name> <project1-name> [<project2-name>...]  #executed where the workspace is
   begin a new branch in the specified projects. Multiple projects are separated by spaces. ProjectX-name can be refered to the manifest file in .repo folder.
2)$repo start <topic-branch-name> --all #executed where the workspace is
    begin branch in all projects.
3)$repo start <topic-branch-name> .   #executed where the project is.
   It can also use a single period "." as a shortcut to denote the current project.

 

2. $git branch

used to list, create or delete branches. It must be executed under the folder where a project is.

1)$git branch, with no arguments, to list the existing local [topic] branches and the current branch will be highlighted with a prefix asterish(*).
2)$git branch -r |--remote, causes the remote-tracking branches to be listed.
3)$git branch -a |--all, list both remote-tracking branches and local branches.
4)$git branch <topic branch name> [<start-point>], create a new topic branch. If <start-point> is not given, then the new branch points to the HEAD of the current branch.
This command does not switch the working tree to the new branch, and the working tree still stay at the current branch.
At this time, it can use $git checkout <topic branch name> to switch the working tree to the new branch. That is,
            $git branch <topic branch name> [<start-point>]
            $git checkout <topic branch name>
The above two steps are equal to the below one step.
            $git checkout -b <topic branch name> [<start-point>]
5)$git branch -D <topic-branch-name-1> [<topic-branch-name-2> <....>], delete existing topic branches

 

3. $git checkout

checkout a branch or paths to the working tree.
1)$git checkout <branch-name> ,

   to switch among the local branches, among the remote branches, and among the local branches and remote branches. It sets the given <branch-name> branch as the current branch. This command will switch the working tree to the new created branch.

2)$git checkout -b <topic branch name> [<start-point>], to create a new local topic branch named <topic-branch-name>.
If <start-point> is not given, then the new branch points to the HEAD of the current branch, the current branch is as base of the new branch, that is, the new branch must contain the changes of the current branch.

 

Example 1: As far as the new-branch-2 branch is concerned, new-branch-2 is a new branch, and new-branch-1 is the current branch.
  a.$git checkout -b new-branch-1 . or $git checkout new-branch-1   #specify the branch out point for next new branch
  b.$git checkout -b new-branch-2 .

                                           O------------------O
                             new-branch-1        new-branch-2
                                                               

Example 2: new-branch-1 and new-branch-2 are new branches, and new-branch-1 is the current branch. new-branch-1 and new-branch-2 branches are parallel and the original branch is the same base of all new branches.
   a.$git branch -r
   b.$git checkout origin/**-branch    #specify the branch out point for next new branch
   c.git checkout -b new-branch-1
   d.$git checkout origin/**-branch   #specify the branch out point for next new branch
   c.git checkout -b new-branch-2
                                                       O new-branch-1
                                                     /
                                                   /
                                 **-branch O
                                                   \
                                                    \
                                                      O new-branch-3
                                                                     
    $git merge <topic branch name>, used to merge changes from the specified name topic branch into the current branch.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值