Comment transférer un dépôt local vers Bitbucket à l'aide de SourceTree sans créer d'abord un dépôt sur bitbucket?

116

Existe-t-il un moyen d'importer mes dépôts git locaux vers SourceTree et de les pousser vers mon compte Bitbucket, en créant de nouveaux dépôts identiques à mes dépôts locaux sur mon compte? Ou est-ce que je dois d'abord faire un repo en ligne et y pousser? Github a un moyen de publier vos dépôts locaux directement à partir de son client, et il les crée automatiquement lorsque vous publiez, mais il a des dépôts privés limités. Je fais juste mes devoirs, donc il n'y a aucune raison pour que ce soit public, d'où la raison pour laquelle j'essaie d'utiliser bitbucket.

cma0014
la source

Réponses:

152

(mis à jour le 29/03/2019 pour utiliser https au lieu de ssh, vous n'avez donc pas besoin d'utiliser les clés ssh)

Il semble que pour BitBucket, vous devez d'abord créer un dépôt en ligne. En utilisant les instructions d' Atlassian , créez simplement un nouveau référentiel BitBucket, copiez l'URL du référentiel dans le presse-papiers, puis ajoutez ce référentiel en tant que nouveau distant à votre référentiel local (étapes complètes ci-dessous):

Obtenir l'URL du repo

  1. dans votre dépôt BitBucket, choisissez "Cloner" en haut à droite
  2. choisissez "HTTPS" au lieu de "SSH" en haut à droite de la boîte de dialogue
  3. il devrait afficher l'URL de votre dépôt sous la forme git clone <repository url>

Ajouter une télécommande à l'aide de la CLI

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

Ajouter une télécommande à l'aide de SourceTree

  1. Référentiel> Ajouter à distance ...
  2. Collez l'URL du référentiel BitBucket ( https://bitbucket.org/<username>/<reponame>.git)

Ancienne méthode: création et enregistrement de clés SSH

(cette méthode est si vous utilisez l'url ssh au lieu de l'url https, qui ressemble à ssh://[email protected]/<username>/<reponame>.git. Je recommande d'utiliser simplement https)

BitBucket est idéal pour les dépôts privés, mais vous devrez configurer une clé ssh pour autoriser votre ordinateur à fonctionner avec votre compte BitBucket. Heureusement, Sourcetree le rend relativement simple:

Création d'une clé dans SourceTree:

  1. Dans Tools> Options, assurez-vous que SSH Client:est défini sur PuTTY/Plinksous l' Generalonglet
  2. Sélectionnez Tools>Create or Import SSH Keys
  3. Dans la fenêtre contextuelle, cliquez Generateet déplacez votre souris pour donner un caractère aléatoire au générateur de clé
  4. Vous devriez obtenir quelque chose comme ce qui est montré dans la capture d'écran ci-dessous. Copiez la clé publique (surlignée en bleu) dans votre presse-papiers

    mastic

  5. Cliquez sur Save private Keyet Save public keypour enregistrer vos clés à l'endroit de votre choix (par exemple vers <Home Dir>/putty/ssk-key.ppket <Home Dir>/putty/ssh-key.pubrespectivement) avant de passer à la section suivante

Enregistrement de la clé dans BitBucket

  1. Connectez-vous à votre compte BitBucket , et en haut à droite, cliquez sur votre photo de profil et cliquez surSettings
  2. Accédez à l' SSH Keysonglet sur la barre latérale gauche
  3. Cliquez sur Add SSH Key, donnez-lui un nom et collez la clé publique que vous avez copiée à l'étape 4 de la section précédente

C'est tout! Vous devriez maintenant pouvoir pousser / tirer vers vos dépôts privés BitBucket. Vos clés ne sont pas uniquement destinées à Git, de nombreux services utilisent des clés ssh pour identifier les utilisateurs, et la meilleure partie est que vous n'en avez besoin que d'une seule. Si jamais vous perdez vos clés (par exemple lors d'un changement d'ordinateur), suivez simplement les étapes pour en créer et en enregistrer une nouvelle.

Note de bas de page: création de clés SSH à l'aide de la CLI

Suivez simplement ce tutoriel

woojoo666
la source
utiliser Paste the BitBucket repository url ([email protected]/<username>/<reponame>.git)vous forcera à ajouter une clé ssh. Dans le cas où vous n'en avez pas déjà un, ce sera une douleur.
Alex Kyriakidis
1
oui BitBucket est principalement destiné aux dépôts privés, vous aurez donc besoin d'une clé ssh pour commencer. Ne vous inquiétez pas, ce n'est pas aussi grave qu'il en a l'air! J'ai ajouté un tutoriel rapide à ma réponse
woojoo666
3
Pourquoi avez-vous des difficultés avec SSH et les clés publiques / privées alors qu'il est beaucoup plus facile d'utiliser HTTPS? Dans la Cloneboîte de dialogue, basculez le menu déroulant en haut à droite de SSH à HTTPS et obtenez l'URL:https://bitbucket.org/<reponame>.git
Dan Dar3
1
@ DanDar3 Oui, merci, cela m'a évité beaucoup de tracas.
Excrubulent
1
@ DanDar3 wow c'est beaucoup plus facile, j'ai mis à jour la réponse, merci!
woojoo666
24

En fait, il existe une solution plus simple (uniquement sur la version Mac). Juste quatre étapes:

  1. Faites un clic droit sur le référentiel et sélectionnez "Publier sur un site distant ..."

Publier SourceTree sur Screeshot distant

  1. La fenêtre suivante vous demandera de publier (github, bitbucket, etc.), puis vous avez terminé.
  2. Lier le référentiel distant
  3. Pousser
David
la source
Cela doit être nouveau. Je n'ai pas utilisé de référentiels depuis un moment, alors je vais lui donner un tourbillon.
cma0014
3
En fait, j'ai vérifié que ce n'est que sur la version Mac de SourceTree, pas sur Windows. :(
David
1
Oui, j'ai vérifié qu'il crée le repo sur la télécommande, mais ne le lie pas aux télécommandes du référentiel local. Ce serait une belle mise à jour pour les prochaines versions
David
1
@bauerMusic cela m'est arrivé aussi avec la fenêtre "en cours". Mais pas récemment. Bien que comme vous l'avez dit ... quelque chose échoue avec cette fonctionnalité. Il n'est pas lié au nouveau repo distant comme nous nous y attendions tous. Malgré tout, SourceTree est le meilleur gestionnaire GIT pour Mac que j'ai trouvé.
David
1
Cela fonctionne vraiment parfaitement pour moi, cela crée le repo et le relie au local et à distance, peut-être que depuis 2016, ils l'améliorent
Kross
10

Comme l' illustre cette vidéo , créer d'abord un repo en ligne est la méthode habituelle.

Les notes de publication de SourceTree mentionnent pour SourceTree 1.5+:

Prise en charge de la création de nouveaux référentiels sous les comptes d'équipe / organisation dans Bitbucket.

Ainsi, même s'il n'y a pas de fonctionnalité de «publication», vous pouvez créer votre dépôt en ligne à partir de SourceTree.

Le billet de blog « SourceTree pour Windows 1.2 est ici » (septembre 2013) mentionne également:

Vous pouvez maintenant configurer vos comptes Bitbucket, Stash et GitHub dans SourceTree et voir instantanément tous vos référentiels sur ces services. Clonez-les facilement, ouvrez le projet sur le Web et créez même de nouveaux référentiels sur le service distant sans jamais quitter SourceTree .
Vous le trouverez dans le menu sous Affichage> Afficher les référentiels hébergés, ou en utilisant le nouveau bouton en bas à droite du panneau des signets.

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

VonC
la source
J'essaierai ça quand je rentrerai à la maison, merci!
cma0014
Oui, mais faire du dossier de développement local le dépôt s'avère difficile.
Ben Racicot
3

Je l'ai utilisé et cela a bien fonctionné pour moi. Si votre répertoire est

"repo" et votre projet est "bonjour" copiez le projet ici

cd /path/to/my/repo

Initialisez votre répertoire

git init

Mettre en scène le projet

git add hello

engager le projet

git commit

Ajoutez des configurations à l'aide de l'adresse e-mail et du nom d'utilisateur que vous utilisez dans Bitbucket

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

Ajouter un commentaire au projet

git commit -m 'comment'

pousser le projet maintenant

git push origin master

Départ du maître

git checkout master
Bademba
la source
3

Bitbucket prend en charge une API REST que vous pouvez utiliser pour créer par programme des référentiels Bitbucket.

Documentation et exemple cURL disponibles ici: 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" }'

Sous Windows, curl est disponible depuis le shell Git Bash.

En utilisant cette méthode, vous pouvez facilement créer un script pour importer de nombreux dépôts d'un serveur git local vers Bitbucket.

Joe Savage
la source
1

Configurer le référentiel Bitbucket (ligne de commande avec Mac)

Créez une nouvelle APPLICATION en commençant par le repos local:

  1. Terminal -> cd ~ / Documents (Collez le chemin du répertoire de base de votre APPLICATION)
  2. Terminal -> mkdir (créer un répertoire avec)
  3. Terminal -> cd (changer de répertoire avec répertoire)
  4. BitBucket A / C -> créer un référentiel sur un compte bitBucket
  5. Xcode -> créer un nouveau projet xcode avec le même nom
  6. Terminal -> git init (initialiser le dépôt vide)
  7. Terminal -> git remote add origin (Ex. Https: //[email protected]/app/app.git )
  8. Terminal -> git add.
  9. Terminal -> état de git
    1. Terminal -> git commit -m "IntialCommet"
    2. Terminal -> maître d'origine git push

Créez un référentiel de clonage APPLICATION:

  1. Terminal -> mkdir (créer un répertoire avec)
  2. Terminal -> cd (changer de répertoire avec répertoire)
  3. Terminal -> git clone (Ex. Https: //[email protected]/app/app.git )
  4. Terminal -> cd
  5. Terminal -> état git (Afficher l'état du fichier modifié / mis à jour)
  6. Terminal -> git pull origin master
  7. Terminal -> git add.
  8. Terminal -> maître d'origine git push
Shrikant Tanwade
la source
1

Une autre solution pour les utilisateurs de Windows:

Cela utilise Github comme pont pour accéder à Bitbucket, en raison du manque de publication directement à partir de l'application Windows Sourcetree.

  1. Chargez votre dépôt local dans l'application de bureau Github.
  2. Publiez le dépôt en tant que dépôt privé (pour la confidentialité - si vous le souhaitez) à partir de l'application de bureau Github dans votre compte Github.
  3. Ouvrez votre compte personnel / d'équipe sur le site Web de Bitbucket
  4. Créez un nouveau dépôt Bitbucket en important depuis Github.
  5. Supprimez le dépôt dans Github.

Une fois que cela est fait, tout sera chargé dans Bitbucket. Vos télécommandes locales devront probablement être configurées pour pointer vers Bitbucket maintenant.

David Ruiz
la source
0

GIT sert bien son objectif pour le contrôle de version et les projets d'équipe si les commits et les branches sont correctement maintenus.
Étape 1: Clonez votre dépôt local à l'aide de cli comme mentionné dans les réponses ci-dessus

$ cd [path_to_repo]
$ git remote add origin ssh: //[email protected]//.git
$ git push -u origin --all

Étape 2: Vous pouvez suivre l'une des étapes ci-dessus pour pousser / tirer vos œuvres. Un moyen simple est d'utiliser git gui. Il fournit une interface graphique afin qu'il soit facile de mettre en scène (ajouter) / désinstaller, valider / désengager et pousser / tirer. Les débutants peuvent facilement comprendre le processus git.

$ git gui

(OU)
Étape 2: Comme mentionné ci-dessus. Les codes Cli feront le travail.

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

Raj sree
la source
0

Pour mettre à jour la réponse de Joe , dans la mesure où vous pouvez créer un script pour la création du référentiel à l'aide de l'API, seul l'appel d'API dont j'avais besoin était différent. Cela peut être dû au fait que nous utilisons le serveur bitbucket et non le cloud bitbucket.

Pour créer un nouveau référentiel au sein d'un projet sur notre serveur, j'ai utilisé:

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"}'

USER, PASSWORD, SERVER, PROJECTNAMEet REPONAMEétaient bien sûr les valeurs souhaitées / nécessaires.

L'appel est documenté dans la référence API .

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

Créez un nouveau référentiel. Nécessite un projet existant dans lequel ce référentiel sera créé. Les seuls paramètres qui seront utilisés sont name et scmId.

L'utilisateur authentifié doit disposer de l'autorisation PROJECT_ADMIN pour que le projet de contexte puisse appeler cette ressource.

Baldrickk
la source
0

(Linux / WSL au moins) Depuis le navigateur de bitbucket.org, créez un repo vide avec le même nom que votre repo local, suivez les instructions proposées par bitbucket pour importer un repo local (deux commandes à taper).

Adhémar Patamob
la source