2014-09-03 72 views
21

我正在使用VS.NET 2013和集成的Git工具,並試圖將我的master分支發佈到我在GitHub上設置的現有存儲庫。我在IDE中專門使用了VS.NET工具,並希望任何響應請遵循使用這些工具如果可能而不是命令行。將主分支從VS.NET發佈到GitHub時出錯

我的所有更改都在本地提交,我只需要將分支發佈到GitHub。然而,當我嘗試發佈我的本地master分支我收到以下錯誤:

You cannot publish local branch master to the remote repository origin because a branch with the same name already exists there. You might want to rename your local branch and try again.

我知道有一個長篇文章這一here,但我試圖從VS.NET解決這個問題或在線如果可能,直接使用GutHub。充其量我想更好地理解這個問題。

我幾乎肯定這個問題是由我在GitHub上選擇選項Initialize this repository with a README選擇而不是創建一個空白repositoy,我的本地更改可以推送到。我認爲GutHub已經使用了相同的分支名稱,並導致衝突。

我想我可以刪除GitHub上的存儲庫,並從頭開始,但希望從VS.NET或GitHub中得到這個解決方案。有誰知道我可以做到這一點,所以我的master分支可以成功發佈?

回答

34

由於我剛剛創建了存儲庫,並且沒有用戶,所以解決方案是從Github(位於'設置'菜單下)刪除存儲庫並再次創建它(一旦刪除,我可以使用相同的名稱)。訣竅是而不是從GitHub初始化存儲庫 - 允許VS.NET在第一次同步時執行此操作。現在它可以在VS.NET中很好地工作。

如果我已刪除儲存庫,我將不得不使用一些外部工具或者重命名本地資源庫,或者使用同步從另一個工具(如TortoiseGit),允許強制覆蓋上同步分支。它沒有出現任何VS.NET原生的東西可以讓它發生。

+5

我遇到了同樣的問題。這很荒謬。我原來只是使用GitHub for Windows,所以我的本地主人已經綁定到我的GitHub repo的主人。 VS沒有很好的理由不簡單地兌現這一設置。 – 2014-09-26 20:37:40

+0

謝謝!現在掙扎一下吧! – pceccon 2015-06-10 21:19:36

16

有這個修復:

轉到命令提示符並切換到您的解決方案目錄。從那裏你應該可以運行git命令。如果您還沒有安裝git,則可能需要安裝git 運行'git pull origin master'。這應該將您的GitHub回購與您當地的回購合併。 這就是我們在命令提示符下所要做的。現在回到Visual Studio

您可能會遇到一些衝突,如果您確實需要解決這些衝突並再次本地提交。 Visual Studio會告訴你是否有任何衝突。 解決任何衝突後,單擊窗格頂部附近的「主」鏈接。它應該給你一個名爲'管理分支'的項目的下拉菜單。點擊它。 你應該在標題'Unpublished Branches'下面看到一個名爲'master'的分支 右鍵點擊master並點擊'Publish Branch' 現在你可以再次點擊'unsynced changes'鏈接,你會看到'Sync '按鈕不會變灰 點擊同步,你就完成了!

來源&信用:http://zanemayo.com/using_git_and_github_with_visual_studio.html

+0

只是爲了回顧一下我的OP的評論:「我知道這裏有一篇很長的文章,但我試圖從VS.NET補救這個**,或者如果可能,直接在GutHub上在線**」使用命令行當時我不想做這件事,但我意識到可以使用它來解決問題。 – atconway 2015-01-19 16:40:49

3

VS 2013將初始化Git倉庫,當你第一次提交與同步。因此,簡單的解決方案是刪除GIT存儲庫並重新創建它,而不用初始化選項。

enter image description here

+0

不錯!像魅力一樣工作!+1 – jharris8567 2016-09-24 05:34:24

1

我經歷了在Visual Studio 2015年這個問題,這是我得到了它修好。

  1. 連接到本地的Git倉庫
  2. 開分公司
  3. 右鍵單擊主分支
  4. 選擇打開命令提示符
  5. 運行git pull origin master(此命令將其拉離原點遠程變化,主分支並將它們合併到本地簽出分支。)
  6. 發佈您的存儲庫。
+0

關於此事的一個注意事項 - OP標籤用於「Visual Studio 2013」​​,與2015年相比,上述解決方案可能具有不同和過時的Git工具。 – atconway 2016-09-07 04:33:27

+0

哎呀,無論如何,這是真的。 – 2016-09-07 07:32:27

1

我這知道一個古老的線程,但我下面的工作: 合併遠程追蹤分支'參/遙控器/產地/碩士

在VS,轉到團隊資源管理器>分支機構;然後告訴VS將遠程分支合併到主設備上。

這似乎爲我工作。無需刪除任何東西,不需要使用控制檯...我們是VS開發人員,我們不喜歡控制檯...並且不需要第三方下載(即使其中一些人擁有並且易於使用在源目錄

打開混帳擊:使用)

0

對我來說,解決方案是非常簡單的。

執行:

git push origin -f 

這解決了這個問題。

出於某種原因,當您選擇創建存儲庫複選框時,我的VS2013實際上並未創建git存儲庫,因此我必須手動創建存儲庫。

這將暫時惱人的問題是由

git init 
git remote add origin https://(bitbucket username)@bitbucket.org/(bitbucket project name)/(bitbucket repository name).git 
git add . 
git push origin -f 

我知道這是違背希望只使用Visual Studio界面的基本方法,但與VS2013的問題解決了,這是解決方法我。