【发布时间】:2011-12-20 17:20:12
【问题描述】:
我使用git checkout -b 创建了一个新分支。我认为git branch 做同样的事情。
如果这两个命令完全不同,它们有何不同?
【问题讨论】:
标签: git git-branch git-checkout
我使用git checkout -b 创建了一个新分支。我认为git branch 做同样的事情。
如果这两个命令完全不同,它们有何不同?
【问题讨论】:
标签: git git-branch git-checkout
git checkout -b BRANCH_NAME 创建一个新分支并签出新分支,而git branch BRANCH_NAME 创建一个新分支但将您留在同一个分支上。
换句话说,git checkout -b BRANCH_NAME 为您执行以下操作。
git branch BRANCH_NAME # create a new branch
git switch BRANCH_NAME # then switch to the new branch
【讨论】:
git branch 创建分支,但您仍保留在已签出的当前分支中。
git checkout -b 创建一个分支并检查它。
它可以被认为是以下形式的缩写:
git branch name
git checkout name
【讨论】:
git branch: 显示你所有的分支git branch newbranch: 创建一个新分支git checkout -b newbranch: 创建一个新分支并立即切换到该分支。这与git branch newbranch 后跟git checkout newbranch 相同。【讨论】:
完整语法:
git checkout -b [NEW_BRANCH] [FROM_BRANCH]
[FROM_BRANCH] 是可选的。如果没有 FROM_BRANCH,git 将使用当前分支。
【讨论】:
还有一个flag要提,是相对于这些的..
git checkout -B BRANCH_NAME
这是我最近一直在使用的一个非常有用的命令。此命令检出您指定的分支,并重置基于源分支的分支。
【讨论】:
If -B is given, <new_branch> is created if it doesn't exist; otherwise, it is reset. This is the transactional equivalent of $ git branch -f <branch> [<start point>] $ git checkout <branch>
checkout -B 是否危险?我最近使用了它,它似乎自动将我另一个分支中的更改合并到我切换到的分支中。
checkout -B 不会just 切换,它还会将目标分支重置为前一个分支的提交(或指定的提交)。这也可能很危险,因为在较新的分支上重新运行 checkout -B 可能会将分支提交重置回前一个分支,如果前一个分支落后,这将删除最近的提交。
这两个命令的形式是相似的(查看 git-scm docs Version 2.11.1):
git branch <branchname> <start-point>
和
git checkout -b <new_branch> <start_point>
latter先执行分支命令,然后添加结帐。以这种形式明确引用 git-branch 的文档:
指定 -b 会导致创建一个新分支,就像 git-branch[2] 被调用然后签出
【讨论】:
基本上:
A-git 分支可以让你创建一个简单明了的分支。
B -git checkout -b 允许你创建一个分支并同时切换到它。
你什么时候用 which ? 1- git 分支,当您想创建一个分支但留在当前分支上时。 2- git checkout -b 当你想创建和切换时。 如果你看一下,创建一个分支并切换到它是很直观的。所以选择是你的:)
【讨论】: