我使用 git checkout -b
创建了一个新分支。我认为 git branch
做同样的事情。如果这两个命令完全不同,它们有何不同?
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
不会只是 切换,它还会将目标分支重置为前一个分支的提交(或指定的提交)。这也可能很危险,因为在较新的分支上重新运行 checkout -B 可能会将分支提交重置回前一个分支,如果前一个分支落后,这将删除最近的提交。
这两个命令的形式相似(查看 git-scm docs 版本 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 允许您创建一个分支并同时切换到它。
你什么时候用哪个? 1- git 分支,当您想创建一个分支但留在当前分支上时。 2- git checkout -b 当你想创建和切换时。如果你看一下,创建一个分支并切换到它是很直观的。所以选择是你的:)
不定期副业成功案例分享
git switch -c BRANCH_NAME
也与git checkout -b BRANCH_NAME
一样工作