Wie kann ich mit SourceTree ein lokales Repo an Bitbucket senden, ohne zuerst ein Repo für Bitbucket zu erstellen?


116

Gibt es eine Möglichkeit, meine lokalen Git-Repos in SourceTree zu importieren und in mein Bitbucket-Konto zu übertragen, wobei neue Repos, die mit meinen lokalen Repos identisch sind, in meinem Konto erstellt werden? Oder muss ich zuerst ein Repo online machen und darauf drängen? Github hat eine Möglichkeit, Ihre lokalen Repos direkt von seinem Client aus zu veröffentlichen, und erstellt sie automatisch, wenn Sie sie veröffentlichen. Es gibt jedoch nur begrenzte private Repos. Ich mache nur Hausaufgaben, also gibt es keinen Grund dafür, öffentlich zu sein, deshalb versuche ich, Bitbucket zu verwenden.

Antworten:


152

(aktualisiert am 29.03.2019, um https anstelle von ssh zu verwenden, sodass Sie keine ssh-Schlüssel verwenden müssen)

Es scheint, als müssten Sie für BitBucket zuerst online ein Repo erstellen. Erstellen Sie mithilfe der Anweisungen von Atlassian einfach ein neues BitBucket-Repository, kopieren Sie die Repository-URL in die Zwischenablage und fügen Sie dieses Repository dann als neue Fernbedienung zu Ihrem lokalen Repository hinzu (vollständige Schritte unten):

Repo-URL abrufen

  1. Wählen Sie in Ihrem BitBucket-Repo oben rechts "Klonen"
  2. Wählen Sie oben rechts im Dialogfeld "HTTPS" anstelle von "SSH"
  3. Es sollte Ihre Repo-URL im Formular anzeigen git clone <repository url>

Remote mithilfe der CLI hinzufügen

  1. cd /path/to/my/repo
  2. git remote add origin https://bitbucket.org/<username>/<reponame>.git
  3. git push -u origin --all

Fügen Sie Remote mithilfe von SourceTree hinzu

  1. Repository> Remote hinzufügen ...
  2. Fügen Sie die BitBucket-Repository-URL ein ( https://bitbucket.org/<username>/<reponame>.git)

Alte Methode: Erstellen und Registrieren von SSH-Schlüsseln

(Diese Methode ist, wenn Sie die ssh-URL anstelle der https-URL verwenden, wie es aussieht ssh://git@bitbucket.org/<username>/<reponame>.git. Ich empfehle, nur https zu verwenden.)

BitBucket eignet sich hervorragend für private Repos. Sie müssen jedoch einen SSH-Schlüssel einrichten, um Ihren Computer für die Arbeit mit Ihrem BitBucket-Konto zu autorisieren. Zum Glück macht Sourcetree es relativ einfach:

Erstellen eines Schlüssels in SourceTree:

  1. ToolsStellen Sie in > Optionssicher SSH Client:, dass PuTTY/Plinkunter der GeneralRegisterkarte auf eingestellt ist
  2. Wählen Sie Tools>Create or Import SSH Keys
  3. Klicken Generateund bewegen Sie im Popup-Fenster die Maus, um dem Schlüsselgenerator Zufälligkeit zu verleihen
  4. Sie sollten so etwas wie das bekommen, was im Screenshot unten gezeigt wird. Kopieren Sie den öffentlichen Schlüssel (blau hervorgehoben) in Ihre Zwischenablage

    Kitt

  5. Klicken Sie Save private Keyund Save public keyIhre Schlüssel zu sparen, wo immer Sie sich entscheiden (zB zu <Home Dir>/putty/ssk-key.ppkund <Home Dir>/putty/ssh-key.pubjeweils) , bevor beim Bewegen zum nächsten Abschnitt

Registrieren des Schlüssels in BitBucket

  1. Melden Sie sich bei Ihrem BitBucket- Konto an und klicken Sie oben rechts auf Ihr Profilbild und dann aufSettings
  2. Gehen Sie zur SSH KeysRegisterkarte in der linken Seitenleiste
  3. Klicken Sie auf Add SSH Key, geben Sie ihm einen Namen und fügen Sie den öffentlichen Schlüssel ein, den Sie in Schritt 4 des vorherigen Abschnitts kopiert haben

Das ist es! Sie sollten nun in der Lage sein, auf Ihre privaten BitBucket-Repos zu drücken / ziehen. Ihre Schlüssel sind nicht nur für Git gedacht, viele Dienste verwenden SSH-Schlüssel, um Benutzer zu identifizieren, und das Beste daran ist, dass Sie nur einen benötigen. Wenn Sie jemals Ihre Schlüssel verlieren (z. B. beim Wechseln des Computers), befolgen Sie einfach die Schritte, um einen neuen zu erstellen und zu registrieren.

Nebenbemerkung: Erstellen von SSH-Schlüsseln mithilfe der CLI

Folgen Sie einfach diesem Tutorial


Mit Paste the BitBucket repository url (git@bitbucket.org/<username>/<reponame>.git)wird Sie gezwungen, einen SSH-Schlüssel hinzuzufügen. Falls Sie noch keine haben, wird dies ein Schmerz sein.
Alex Kyriakidis

1
Ja, BitBucket ist hauptsächlich für private Repos gedacht, daher benötigen Sie einen SSH-Schlüssel, um loszulegen. Keine Sorge, es ist nicht so schlimm wie es aussieht! Ich habe meiner Antwort ein kurzes Tutorial hinzugefügt
woojoo666

3
Warum kämpft ihr mit SSH und öffentlichen / privaten Schlüsseln, wenn es viel einfacher ist, HTTPS zu verwenden? Clonehttps://bitbucket.org/<reponame>.git
Wechseln Sie

1
@ DanDar3 Ja, danke, das hat mir viel Ärger erspart.
Excrubulent

1
@ DanDar3 wow das ist viel einfacher, ich habe die Antwort aktualisiert, danke!
woojoo666

24

Eigentlich gibt es eine einfachere Lösung (nur auf der Mac-Version). Nur vier Schritte:

  1. Klicken Sie mit der rechten Maustaste auf das Repository und wählen Sie "Auf Remote veröffentlichen ...".

SourceTree In Remote Screeshot veröffentlichen

  1. Im nächsten Fenster werden Sie gefragt, ob Sie veröffentlichen möchten (Github, Bitbucket usw.), und dann sind Sie fertig.
  2. Verknüpfen Sie das Remote-Repository
  3. drücken

Das muss neu sein. Ich habe seit einiger Zeit keine Repositories mehr verwendet, also werde ich es versuchen.
cma0014

3
Eigentlich habe ich überprüft, dass dies nur auf der Mac-Version von SourceTree ist, nicht auf Windows. :(
David

1
Ja, ich habe überprüft, ob das Repo auf der Fernbedienung erstellt wird, aber dann nicht auf den Fernbedienungen des lokalen Repositorys festgelegt. Es wäre ein schönes Upgrade für die nächsten Versionen
David

1
@bauerMusic das ist mir auch mit dem "in progress" -Fenster passiert. Aber nicht in letzter Zeit. Obwohl, wie du gesagt hast ... etwas mit dieser Funktion fehlschlägt. Es ist nicht wie erwartet mit dem neuen Remote-Repo verbunden. Trotz allem ist SourceTree der beste GIT-Manager für Mac, den ich gefunden habe.
David

1
Es funktioniert tatsächlich perfekt für mich, es erstellt das Repo und verbindet es mit dem lokalen und entfernten, vielleicht seit 2016 verbessern sie es
Kross

10

Wie dieses Video zeigt , ist es üblich, zuerst ein Repo online zu erstellen.

Das SourceTree-Versionshinweisen für SourceTree 1.5+ wird Folgendes erwähnt:

Unterstützung beim Erstellen neuer Repositorys unter Team- / Organisationskonten in Bitbucket.

Obwohl es keine "Veröffentlichungs" -Funktion gibt, können Sie Ihr Online-Repo aus SourceTree erstellen.

Der Blog-Beitrag " SourceTree für Windows 1.2 ist da " (September 2013) erwähnt auch:

Jetzt können Sie Ihre Bitbucket-, Stash- und GitHub-Konten in SourceTree konfigurieren und sofort alle Ihre Repositorys auf diesen Diensten anzeigen. Klonen Sie sie einfach, öffnen Sie das Projekt im Web und erstellen Sie sogar neue Repositorys auf dem Remote-Service, ohne SourceTree jemals zu verlassen .
Sie finden es im Menü unter Ansicht> Gehostete Repositorys anzeigen oder über die neue Schaltfläche unten rechts im Lesezeichenbereich.

http://blog.sourcetreeapp.com/files/2013/09/hostedrepowindow.png


Ich werde es versuchen, wenn ich nach Hause komme. Danke!
cma0014

Ja, aber es macht sich als schwierig heraus, den lokalen Entwicklerordner zum Repo zu machen.
Ben Racicot

3

Ich habe das benutzt und es hat gut für mich geklappt. Wenn Ihr Verzeichnis ist

"repo" und Ihr Projekt ist "hallo" kopieren Sie das Projekt dort

cd /path/to/my/repo

Initialisieren Sie Ihr Verzeichnis

git init

Projekt inszenieren

git add hello

das Projekt festschreiben

git commit

Fügen Sie Konfigurationen mit der E-Mail-Adresse und dem Benutzernamen hinzu, die Sie in Bitbucket verwenden

git config --global user.email
git config --global user.name

Kommentar zum Projekt hinzufügen

git commit -m 'comment'

Schieben Sie das Projekt jetzt

git push origin master

Aus dem Master auschecken

git checkout master

3

Bitbucket unterstützt eine REST-API, mit der Sie Bitbucket-Repositorys programmgesteuert erstellen können.

Dokumentation und cURL-Beispiel finden Sie hier: https://confluence.atlassian.com/bitbucket/repository-resource-423626331.html#repositoryResource-POSTanewrepository

$ curl -X POST -v -u username:password -H "Content-Type: application/json" \
   https://api.bitbucket.org/2.0/repositories/teamsinspace/new-repository4 \
   -d '{"scm": "git", "is_private": "true", "fork_policy": "no_public_forks" }'

Unter Windows ist Curl in der Git Bash-Shell verfügbar.

Mit dieser Methode können Sie leicht ein Skript erstellen, um viele Repos von einem lokalen Git-Server in Bitbucket zu importieren.


1

Bitbucket Repository einrichten (Befehlszeile mit Mac)

Erstellen Sie eine neue ANWENDUNG, indem Sie mit der lokalen Reposity beginnen:

  1. Terminal -> cd ~ / Documents (Fügen Sie Ihren APPLICATION-Basisverzeichnispfad ein)
  2. Terminal -> mkdir (Verzeichnis erstellen mit)
  3. Terminal -> CD (Verzeichnis mit Verzeichnis wechseln)
  4. BitBucket A / C -> Repository auf BitBucket-Konto erstellen
  5. Xcode -> Neues Xcode-Projekt mit demselben Namen erstellen
  6. Terminal -> git init (leeres Repo initiieren)
  7. Terminal -> git remote add origin (Bsp. Https: //app@bitbucket.org/app/app.git )
  8. Terminal -> Git hinzufügen.
  9. Terminal -> Git-Status
    1. Terminal -> git commit -m "IntialCommet"
    2. Terminal -> Git Push Origin Master

Erstellen Sie das APPLICATION-Klon-Repository:

  1. Terminal -> mkdir (Verzeichnis erstellen mit)
  2. Terminal -> CD (Verzeichnis mit Verzeichnis wechseln)
  3. Terminal -> Git-Klon (Bsp. Https: //app@bitbucket.org/app/app.git )
  4. Terminal -> CD
  5. Terminal -> Git-Status (Status der bearbeiteten / aktualisierten Datei anzeigen)
  6. Terminal -> Git Pull Origin Master
  7. Terminal -> Git hinzufügen.
  8. Terminal -> Git Push Origin Master

1

Eine weitere Lösung für Windows-Benutzer:

Dies verwendet Github als Brücke, um zu Bitbucket zu gelangen, was darauf zurückzuführen ist, dass keine Veröffentlichung direkt über die Windows Sourcetree-App erfolgt.

  1. Laden Sie Ihr lokales Repo in die Github-Desktop-App.
  2. Veröffentlichen Sie das Repo als privates Repo (aus Datenschutzgründen - falls gewünscht) von der Github-Desktop-App in Ihrem Github-Konto.
  3. Eröffnen Sie Ihr persönliches / Team-Konto auf der Website von Bitbucket
  4. Erstellen Sie ein neues Bitbucket-Repo, indem Sie es aus Github importieren.
  5. Löschen Sie das Repo in Github.

Sobald dies erledigt ist, wird alles in Bitbucket geladen. Ihre lokalen Fernbedienungen müssen wahrscheinlich so konfiguriert werden, dass sie jetzt auf Bitbucket verweisen.


0

GIT erfüllt seinen Zweck gut für Versionskontroll- und Teamprojekte, wenn Commits und Zweige ordnungsgemäß verwaltet werden.
Schritt 1: Klonen Sie Ihr lokales Repo mit cli, wie in den obigen Antworten angegeben

$ cd [path_to_repo]
$ git remote add origin ssh: //git@bitbucket.org//.git
$ git push -u origin --all

Schritt 2: Sie können einen der oben genannten Schritte ausführen, um Ihre Werke zu schieben / ziehen. Einfacher Weg ist Git Gui zu verwenden. Es bietet eine grafische Oberfläche, so dass es einfach ist, zu inszenieren (hinzuzufügen) / zu entfernen, festzuschreiben / nicht festzuschreiben und zu drücken / zu ziehen. Anfänger können den Git-Prozess leicht verstehen.

$ git gui

(ODER)
Schritt 2: Wie oben erwähnt. Cli-Codes erledigen die Arbeit.

$ git status
$ git add [Dateiname]
$ git commit _m "[Comit message"] "
$ git push origin master / branch_name


0

Als Update zu Joes Antwort , in der Sie die Erstellung des Repositorys mithilfe der API per Skript ausführen können, war nur der von mir benötigte API-Aufruf anders. Dies kann daran liegen, dass wir einen Bitbucket-Server und keine Bitbucket-Cloud verwenden.

Um ein neues Repo innerhalb eines Projekts auf unserem Server zu erstellen, habe ich Folgendes verwendet:

curl -X POST -v -u USER:PASSWORD -H "Content-Type: application/json" \
http://SERVER/rest/api/1.0/projects/PROJECTNAME/repos/ \
-d '{"scmid":"git", "name":"REPONAME"}'

wo USER, PASSWORD, SERVER, PROJECTNAMEundREPONAME sind selbstverständlich die gewünschten / erforderlichen Werte.

Der Aufruf ist in der API-Referenz dokumentiert .

/rest/api/1.0/projects/{projectKey}/repos

Erstellen Sie ein neues Repository. Erfordert ein vorhandenes Projekt, in dem dieses Repository erstellt wird. Die einzigen Parameter, die verwendet werden, sind name und scmId.

Der authentifizierte Benutzer muss über die Berechtigung PROJECT_ADMIN verfügen, damit das Kontextprojekt diese Ressource aufrufen kann.


0

(Mindestens Linux / WSL) Erstellen Sie im Browser von bitbucket.org ein leeres Repo mit demselben Namen wie Ihr lokales Repo. Befolgen Sie die Anweisungen von bitbucket zum Importieren eines lokalen Repos (zwei Befehle zum Eingeben).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.