2017-04-04 97 views
0

我克隆了git的回購和它有,等等,這兩個遠程分支:我剛剛用我的git倉庫做了什麼?

  1. 產地/富吧

當我克隆它,我是主。我想切換到foo-bar分支,也就是我想從遠程origin/foo-bar分支代碼到名foo-bar的本地分支,所以我所做的:

$ git checkout foo-bar 

請注意,我不知道,如果我說是git checkout origin/foo-bar或只是git checkout foo-bar。現在

,我想知道這兩個都我最終會做?

  1. 我剛纔創建一個名爲foo=barmaster分支的所有內容的新的本地分支?或

  2. 我是否創建了一個名爲foo-bar的新分支,並自動將所有內容從遠程origin/foo-bar中抽取出來?

  3. 如果我做了錯誤的事情,即我實際上想要做#2但如果我做了其他事情,我該如何刪除名爲foo-bar的本地分支?

+0

有沒有說「像設置跟蹤遠程分支」? –

+0

運行git狀態。它應該告訴你什麼是你的遠程分支 –

+0

你可以看到發生了什麼,例如, 'git log --graph --abbrev-commit --decorate'。 –

回答

2

請注意,我不知道,如果我說git checkout origin/foo-bar或只是git checkout foo-bar

這些都是有效的,但它們意味着不同的事情。在這種情況下,你想要後者。

origin/foo-bar(其中origin在這種情況下是遠程名稱)是一個所謂的遠程跟蹤分支。遠程跟蹤分支是隻讀的,不能查出來,所以git checkout origin/foo-bar將分離HEAD並將其設置爲提交該origin/foo-bar指。

git checkout foo-bar檢查分支foo-bar是否存在,或者如下所述重新創建它。

  1. 我剛纔創建一個名爲foo-barmaster分支的所有內容的新的本地分支?

如果你的Git版本是不是古代,默認情況下git checkout foo-bar將創建分支foo-bar並設置它在你的情況origin/foo-bar跟蹤。

這種行爲在man page for git-checkout記錄。

  • 我是否創建一個新的分支名爲foo杆,並自動從遠程origin/foo-bar所有內容拉成嗎?
  • 請1.

  • 如果我做了錯誤的事情,即我其實想做#2,但如果我沒有別的東西,該怎麼辦我刪除了這個名爲foo-bar的本地分支?
  • 要刪除分支,檢查出一個不同的分支(例如git checkout master),然後執行git branch -d foo-bar

    請參閱man page for git-branch

    相關問題