2014-09-03 13 views
21

Ich verwende VS.NET 2013 mit den integrierten Git-Werkzeugen und versuche, meine master Verzweigung zu einem vorhandenen Repository, das ich auf GitHub eingerichtet habe, zu veröffentlichen. Ich verwende ausschließlich die VS.NET-Tools in der IDE und möchte bitte alle Antworten mit diesen Tools wenn möglich im Gegensatz zu einer Befehlszeile folgen.Fehler beim Veröffentlichen der Hauptverzweigung zu GitHub von VS.NET

Alle meine Änderungen wurden lokal festgelegt und ich muss nur die Verzweigung zu GitHub veröffentlichen. Allerdings, wenn ich meine lokale master Niederlassung versuchen und veröffentlichen erhalte ich folgende Fehlermeldung:

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.

Ich weiß, dass es zu diesen here ein längeren Artikel, aber ich versuche, dies von VS.NET zu beheben oder im Internet unter GutHub direkt wenn möglich. Im besten Fall möchte ich das Problem besser verstehen.

Ich bin fast sicher, dass dieses Problem durch die Auswahl der Option Initialize this repository with a README Auswahl auf GitHub verursacht wurde, anstatt eine leere Repositoy zu erstellen, dass meine lokalen Änderungen verschoben werden könnten. Ich denke, GutHub hat den gleichen Namen bereits benutzt und verursacht einen Konflikt.

Ich nehme an, ich könnte das Repository auf GitHub löschen und von vorne anfangen, aber ich hoffte, dies entweder von VS.NET oder GitHub gebügelt zu bekommen. Weiß jemand, wie ich es machen kann, damit meine master Branche erfolgreich veröffentlicht werden kann?

Antwort

34

Da ich gerade das Repository erstellt hatte und keine Benutzer vorhanden waren, bestand die Lösung darin, das Repository von Github zu löschen (im Menü 'Einstellungen') und neu zu erstellen (sobald gelöscht, konnte ich denselben Namen verwenden). Der Trick besteht darin, nicht das Repository von GitHub initialisieren - ermöglichen VS.NET, dies bei der 1. Synchronisierung zu tun. Jetzt funktioniert es wunderbar von VS.NET.

Wenn ich würde nicht das Repository gelöscht haben, würde ich einige externe Tools nutzen, mussten entweder das lokale Repository umbenennen, oder verwenden Sie Synchronisierung von einem anderen Werkzeug (wie TortoiseGit), der den Zweig auf sync zu überschreiben ermöglicht zwingen . Es schien nicht, dass es in VS.NET etwas natives gab, das dies ermöglichen würde.

+5

Ich renne in das gleiche Problem. Es ist lächerlich. Ich habe ursprünglich nur GitHub für Windows verwendet, daher ist mein lokaler Master bereits an den Master meines GitHub Repos gebunden. Es gibt keinen guten Grund für VS, dieses Setup nicht einfach zu respektieren. –

+0

Vielen Dank! Ich kämpfe jetzt schon ein bisschen damit! – pceccon

16

Es gibt eine Lösung für dieses:

Gehen Sie zu Ihrer Eingabeaufforderung und Änderung Ihrer Lösung Verzeichnis. Von dort sollten Sie in der Lage sein, Git-Befehle auszuführen. Sie müssen möglicherweise Git installieren, wenn Sie nicht bereits Run 'git pull Herkunft Master'. Dies sollte Ihren GitHub Repo mit Ihrem lokalen Repo zusammenführen. Das ist alles, was wir von der Eingabeaufforderung aus tun müssen. Gehen Sie jetzt zurück zu Visual Studio

Sie können einige Konflikte bekommen, wenn Sie tun, müssen Sie diese auflösen und erneut lokal committen. Visual Studio teilt Ihnen mit, wenn Konflikte auftreten. Sobald alle Konflikte gelöst sind, klicken Sie auf den "Master" -Link am oberen Rand des Fensters. Es sollte Ihnen ein Drop-down mit einem Eintrag namens "Zweige verwalten" geben. Klick es. Sie sollten einen Zweig namens 'Master' unter der Überschrift 'Unpublished Branches' sehen. Rechtsklick auf Master und klicken Sie auf 'Zweig veröffentlichen' Jetzt können Sie erneut auf den 'unsynced changes' Link klicken und Sie sehen, dass die 'Sync 'Button ist nicht mehr ausgegraut Klicken Sie auf Sync und fertig!

Quelle & Kredit: http://zanemayo.com/using_git_and_github_with_visual_studio.html

+0

Nur um einen Kommentar von meinem OP zu wiederholen: "Ich weiß, dass es hier einen langen Artikel gibt, aber ich versuche, dies zu beheben ** von VS.NET oder online bei GutHub direkt, wenn möglich **" Über die Befehlszeile Ich wollte das damals nicht machen, aber mir ist klar, dass es möglich war, es zu reparieren. – atconway

3

VS 2013 wird die GIT-Repository initialisieren, wenn Ihr erstes mit Sync begehen. Eine einfache Lösung besteht also darin, das GIT-Repository zu löschen und es ohne Initialisierungsoption neu zu erstellen.

enter image description here

+0

schön! Lief wie am Schnürchen!+1 – jharris8567

1

ich dieses Problem in Visual Studio 2015 erfahren und das ist, wie ich es behebt.

  1. Verbindung zu Ihrem lokalen Git Repository
  2. öffnen Niederlassung
  3. Rechtsklick auf den Master-Zweig
  4. auswählen Öffnen Sie die Eingabeaufforderung
  5. Run git pull origin master (Dieser Befehl Änderungen vom Ursprung entfernten ziehen wird, Master verzweigen und sie mit dem lokalen ausgecheckten Zweig zusammenführen.)
  6. Veröffentlichen Sie Ihr Repository.
+0

Ein Hinweis auf diese - der OP-Tag war für 'Visual Studio 2013', die unterschiedlichen und veraltete Git Werkzeuge im Vergleich oben für die Lösung bis 2015 haben. – atconway

+0

oops das ist wahr, trotzdem danke. –

1

Ich weiß, das einen alten Thread, aber die für mich folgende gearbeitet: Merge Fernverfolgung Zweig 'refs/remotes/origin/master'

In VS, gehen Sie zu Team Explorer> Branchen; Sagen Sie VS dann, dass Sie Ihre Remote-Zweigstelle mit dem Master verbinden sollen.

Dies scheint für mich gearbeitet zu haben. Keine Notwendigkeit, etwas zu löschen, keine Notwendigkeit, eine Konsole zu verwenden ... wir sind VS-Devs, wir mögen keine Konsolen ... und keine Notwendigkeit für Downloads von Drittanbietern (auch wenn einige von ihnen sind schön zu haben und einfach zu verwenden)

0

die Lösung für mich ziemlich einfach war.

öffnen Git Bash im Quellverzeichnis.

ausführen:

git push origin -f 

Dies löste das Problem.

Aus irgendeinem Grund erstellt mein VS2013 nicht wirklich ein Git-Repository, wenn Sie das Kontrollkästchen Repository erstellen auswählen, also muss ich das Repository manuell erstellen.

Dieses vorübergehend lästige Problem wird durch

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

Ich weiß, dass dies auf die grundlegende Methodik das Visual Studio-Schnittstelle nur zu wollen, verwenden Gegenteil, aber es gibt ein Problem mit VS2013 und das ist die Abhilfe für mich.

Verwandte Themen