“ -b”在“ git checkout -b * insert_feature_branch_here *”中代表什么?

时间:2018-10-11 18:01:31

标签: git

我最近成为我的组织的开发人员,并一直试图回答“为什么要这么做?”在浏览我们的开发人员文档时我一直在问自己的问题。这些问题之一就是该帖子的标题。

要创建功能分支,请给出命令“ git co -b 在插入_功能_分支_此处”。由于某些原因,“ co”对我不起作用。我了解到这是“ checkout”,用于查看另一个分支,但我不知道-b是什么意思。给定上下文线索,“-b”似乎是一个标志,由“ git branch”和“ git checkout”组成。是这样吗?

有人输入过吗?我已经搜索过Git documentationGit cheat sheet,但没有发现任何内容。为了避免将来再问这些简单的问题,在了解未来某些标志的含义时,有人知道在线文档可供参考吗?

预先感谢, 亚历克斯

3 个答案:

答案 0 :(得分:2)

首先,恭喜! 我认为,要成为一名开发人员,最重要的事情之一就是不断问自己:“我为什么要这么做?”

请记住,当您编写git checkout -b <insert_feature_branch_here>时,每个单词都会被独立地解析和处理,因此从git开始,它告诉控制台从系统路径加载git程序,之后,每个单词都被输入到git程序中

通过快速git --help,我们可以查看可以输入的命令类型

git --help
usage: git [--version] [--help] [-C <path>] [-c <name>=<value>]
           [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
           [-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
           [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
           <command> [<args>]

These are common Git commands used in various situations:

start a working area (see also: git help tutorial)
   clone      Clone a repository into a new directory
   init       Create an empty Git repository or reinitialize an existing one

work on the current change (see also: git help everyday)
   add        Add file contents to the index
   mv         Move or rename a file, a directory, or a symlink
   reset      Reset current HEAD to the specified state
   rm         Remove files from the working tree and from the index

examine the history and state (see also: git help revisions)
   bisect     Use binary search to find the commit that introduced a bug
   grep       Print lines matching a pattern
   log        Show commit logs
   show       Show various types of objects
   status     Show the working tree status

grow, mark and tweak your common history
   branch     List, create, or delete branches
   checkout   Switch branches or restore working tree files
   commit     Record changes to the repository
   diff       Show changes between commits, commit and working tree, etc
   merge      Join two or more development histories together
   rebase     Reapply commits on top of another base tip
   tag        Create, list, delete or verify a tag object signed with GPG

collaborate (see also: git help workflows)
   fetch      Download objects and refs from another repository
   pull       Fetch from and integrate with another repository or a local branch
   push       Update remote refs along with associated objects

'git help -a' and 'git help -g' list available subcommands and some
concept guides. See 'git help <command>' or 'git help <concept>'
to read about a specific subcommand or concept.

现在,如果您输入以下内容,则您感兴趣的命令是checkout

git checkout --help

您将看到一个手册页,其中包含checkout可以接收的所有参数[分支名称,如何解决冲突,如果您想强制执行checkout等],这里重要的是这些参数可以会以不同的顺序输入,那么git如何知道哪个单词代表分支名称,哪个单词代表其他参数? 通过使用诸如-b之类的标志! 假设您输入:

git checkout -b mycoolbranch -f

git知道在-b之后,每个单词将成为分支名称的一部分,直到找到另一个参数(或行尾)为止。

所以基本上就是-b(或许多命令工具中的其他任何标志)的工作方式

如果遇到困难,--help始终是一个很好的起点。 编码愉快!

答案 1 :(得分:0)

这意味着它将创建分支,然后将其检出。

请参见https://git-scm.com/docs/git-checkout#git-checkout-emgitcheckoutem-b-Bltnewbranchgtltstartpointgt

答案 2 :(得分:-1)

git docs

  

指定-b会导致创建新分支,就像调用了git-branch一样,然后将其检出。

您可以将-b视为要直接在新分支中开始工作时要使用的标志。它首先创建新分支,然后自动将您签出到该分支,以便您可以在该分支中开始工作。