git checkout <分支名称>和git checkout -b <分支名称>有什么区别

用户11449055

我是git的新手,所以我要进行拳头提交,因此为此我通过输入创建了一个分支git checkout my_branch但是我在文档中看到它被使用后git checkout -b my_branch

两者之间有什么区别吗?

星期二

是:

$ git checkout asdfadsf
error: pathspec 'asdfasdf' did not match any file(s) known to git

失败因为我没有分支asdfasdfGit试图将其asdfasdf视为文件名,但我也没有一个文件asdfasdf

$ git checkout -b asdfasdf
Switched to a new branch 'asdfasdf'

这样成功并创建了一个新分支。

另一方面,我没有名为的分支maint,但是:

$ git checkout maint
Branch 'maint' set up to track remote branch 'maint' from 'origin'.
Switched to a new branch 'maint'

这也创建了一个分支maint但是请注意它看起来有什么不同。它仍然说Switched to a new branch,但首先它说Branch 'maint' set up to track remote branch 'maint' from 'origin'.

这背后的原因有些复杂,但可以归结为:

  • 没有 -b,如果您要的是您没有的分支,Git将尝试一些替代方法。其中一些可能有效!当它按maint此处的方式工作时,新分支已经有一个上游集。
  • 使用 -b,Git将只创建分支,而不会询问任何问题(前提是可以创建一个新分支)。新分支将不会设置上游。如果您已经拥有分支,则会出现错误。

如果您想要一个带有上游集的分支(例如,如果有一个分支,origin/feature/x123并且您希望自己feature/x123创建的分支与之匹配),那么您就不需要-b选项,因为这样不会搜索上游origin/feature/x123如果您希望上游设置,需要该-b选项。

(是否以及何时需要您的上游集是一个单独的问题。在StackOverflow中搜索现有答案。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

git checkout --track原点/分支和git checkout -b分支原点/分支之间的区别

“ git branch”和“ git checkout -b”有什么区别?

git branch -f <分支名称> <哈希>与git checkout <分支名称>之间的区别;git reset --hard <hash>`在干净的工作树下?

Git checkout -b,分支已经存在

来自其他分支的不同名称的 git checkout 文件

git checkout -b <name> 和 git branch <name> 有什么区别

git force checkout重复分支?

“ git reset”和“ git checkout”有什么区别?

git checkout一个远程分支说是致命的:不是有效的对象名称:'origin / user / branch'

“ git fetch && git checkout”和“ git checkout”之间有什么区别?

git clone和checkout有什么区别?

git checkout remotes / origin / branch和git checkout branch之间有什么区别?

git checkout最新分支并返回最新提交

git子模块中的Checkout分支

Git checkout 分支但文件已更改

Git Checkout [Tab]显示了很多分支

git checkout分支,不检查文件

Git Checkout分支不会更改工作目录

Git Checkout分支有许多未跟踪的文件

有没有一种方法可以执行“ git checkout”并强制将参数解释为分支名称?

git checkout -b newbranch上游/ newbranch和git checkout newbranch之间的区别

无效的git分支名称

git分支的大写名称

“ git checkout <提交ID>”将分支更改为“无分支”

“ git reset --hard”和“ git checkout”之间有什么区别?

git-stash和git-checkout有什么区别?

git restore --staged some-file 和 git checkout -- some-file 有什么区别?

如何使用分支格式的字符串格式为git checkout -b别名

git checkout标签,git pull在分支中失败