我刚用git存储库做了什么?

时间:2017-04-04 13:10:25

标签: git

我克隆了一个git repo,其中包括这两个远程分支:

  1. 起源/富杆
  2. 当我克隆它时,我就是主人。我想切换到foo-bar分支,即我想将远程origin/foo-bar分支的代码转换为名称foo-bar的本地分支,所以我做了:

    $ git checkout foo-bar
    

    请注意,我不确定是说git checkout origin/foo-bar还是git checkout foo-bar

    现在,我想知道我最终做了哪两个?

    1. 我是否只是创建了一个名为foo=bar的新本地分支,其中包含master分支的所有内容? OR

    2. 我是否创建了一个名为foo-bar的新分支,并自动将远程origin/foo-bar中的所有内容拉入其中?

    3. 如果我做错了,即我真的想做#2,但如果我做了其他事情,我该如何删除名为foo-bar的本地分支?

1 个答案:

答案 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是否存在,或者如下所述重新创建它。

  
      
  1. 我是否只是创建了一个名为master的新本地分支,其中包含git checkout foo-bar分支的所有内容?
  2.   

如果您的Git版本不是很古老,默认情况下foo-bar会创建分支origin/foo-bar并将其设置为跟踪您的案例origin/foo-bar

此行为记录在man page for git-checkout

  
      
  1. 我是否创建了一个名为foo-bar的新分支并自动将远程git checkout master中的所有内容拉入其中?
  2.   

见1.

  
      
  1. 如果我做错了,即我真的想做#2,但如果我做了其他事情,我该如何删除这个名为foo-bar的本地分支?
  2.   

要删除分支,请查看其他分支(例如git branch -d foo-bar),然后执行terraform { required_version = ">= 0.9.1" backend "s3" {} }

请参阅man page for git-branch