我克隆了一个git repo,其中包括这两个远程分支:
当我克隆它时,我就是主人。我想切换到foo-bar
分支,即我想将远程origin/foo-bar
分支的代码转换为名称foo-bar
的本地分支,所以我做了:
$ git checkout foo-bar
请注意,我不确定是说git checkout origin/foo-bar
还是git checkout foo-bar
。
现在,我想知道我最终做了哪两个?
我是否只是创建了一个名为foo=bar
的新本地分支,其中包含master
分支的所有内容? OR
我是否创建了一个名为foo-bar
的新分支,并自动将远程origin/foo-bar
中的所有内容拉入其中?
如果我做错了,即我真的想做#2,但如果我做了其他事情,我该如何删除名为foo-bar
的本地分支?
答案 0 :(得分:2)
请注意,我不确定是说
git checkout foo-bar
还是origin/foo-bar
。
这两个都是有效的,但它们意味着不同的东西。 Tl;博士,在这种情况下你想要后者。
origin
(其中git checkout origin/foo-bar
在这种情况下是远程名称)是所谓的远程跟踪分支。远程跟踪分支是只读的,无法检出,因此HEAD
将分离origin/foo-bar
并将其设置为git checkout foo-bar
引用的提交。
foo-bar
检查分支foo-bar
是否存在,或者如下所述重新创建它。
- 我是否只是创建了一个名为
醇>master
的新本地分支,其中包含git checkout foo-bar
分支的所有内容?
如果您的Git版本不是很古老,默认情况下foo-bar
会创建分支origin/foo-bar
并将其设置为跟踪您的案例origin/foo-bar
。
此行为记录在man page for git-checkout。
中
- 我是否创建了一个名为foo-bar的新分支并自动将远程
醇>git checkout master
中的所有内容拉入其中?
见1.
- 如果我做错了,即我真的想做#2,但如果我做了其他事情,我该如何删除这个名为foo-bar的本地分支?
醇>
要删除分支,请查看其他分支(例如git branch -d foo-bar
),然后执行terraform {
required_version = ">= 0.9.1"
backend "s3" {}
}
。