Come faccio a eseguire il push di un repository locale su Bitbucket utilizzando SourceTree senza creare prima un repository su bitbucket?


116

C'è un modo per importare i miei repository git locali su SourceTree e inviarli al mio account Bitbucket, creando nuovi repository identici ai miei repository locali sul mio account? O devo prima creare un repo online e spingerlo a farlo? Github ha un modo per pubblicare i tuoi repository locali direttamente dal suo client e lo crea automaticamente quando pubblichi, ma ha repository privati ​​limitati. Sto solo facendo i compiti, quindi non c'è motivo per renderli pubblici, ecco perché sto cercando di usare bitbucket.

Risposte:


152

(aggiornato il 29/03/2019 per utilizzare https al posto di ssh, quindi non è necessario utilizzare le chiavi ssh)

Sembra che per BitBucket, devi prima creare un repository online. Usando le istruzioni di Atlassian , crea semplicemente un nuovo repository BitBucket, copia l'URL del repository negli appunti e quindi aggiungi quel repository come nuovo telecomando al tuo repository locale (passaggi completi di seguito):

Ottieni l'URL del repository

  1. nel repository di BitBucket, scegli "Clone" in alto a destra
  2. scegli "HTTPS" invece di "SSH" in alto a destra nella finestra di dialogo
  3. dovrebbe mostrare l'URL del tuo repository nel modulo git clone <repository url>

Aggiungi remoto tramite CLI

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

Aggiungi telecomando usando SourceTree

  1. Repository> Aggiungi remoto ...
  2. Incolla l'URL del repository BitBucket ( https://bitbucket.org/<username>/<reponame>.git)

Vecchio metodo: creazione e registrazione di chiavi SSH

(questo metodo è se usi l'URL ssh invece dell'URL https, che sembra ssh://git@bitbucket.org/<username>/<reponame>.git. Ti consiglio di usare solo https)

BitBucket è ottimo per i repository privati, ma dovrai impostare una chiave ssh per autorizzare il tuo computer a lavorare con il tuo account BitBucket. Fortunatamente Sourcetree lo rende relativamente semplice:

Creazione di una chiave in SourceTree:

  1. In Tools> Options, assicurati che SSH Client:sia impostato su PuTTY/Plinksotto la Generalscheda
  2. Seleziona Tools>Create or Import SSH Keys
  3. Nella finestra popup, fai clic Generatee sposta il mouse per dare casualità al generatore di chiavi
  4. Dovresti ottenere qualcosa di simile a ciò che è mostrato nello screenshot qui sotto. Copia la chiave pubblica (evidenziata in blu) negli appunti

    mastice

  5. Fare clic su Save private Keye Save public keyper salvare le chiavi ovunque si desideri (ad esempio, su <Home Dir>/putty/ssk-key.ppke <Home Dir>/putty/ssh-key.pubrispettivamente) prima di passare alla sezione successiva

Registrazione della chiave in BitBucket

  1. Accedi al tuo account BitBucket e, in alto a destra, fai clic sulla tua immagine del profilo e fai clic suSettings
  2. Vai alla SSH Keysscheda nella barra laterale sinistra
  3. Fai clic su Add SSH Key, dagli un nome e incolla la chiave pubblica che hai copiato nel passaggio 4 della sezione precedente

Questo è tutto! Ora dovresti essere in grado di eseguire il push / pull nei tuoi repository privati ​​di BitBucket. Le tue chiavi non sono solo per Git, molti servizi usano le chiavi ssh per identificare gli utenti e la parte migliore è che te ne serve solo una. Se dovessi perdere le tue chiavi (ad esempio quando cambi computer), segui i passaggi per crearne e registrarne una nuova.

Nota a margine: creazione di chiavi SSH utilizzando la CLI

Segui questo tutorial


usando Paste the BitBucket repository url (git@bitbucket.org/<username>/<reponame>.git)ti costringerà ad aggiungere una chiave ssh. Nel caso in cui non ne hai già uno esistente, sarà un dolore.
Alex Kyriakidis

1
sì, BitBucket è principalmente per repository privati, quindi avrai bisogno di una chiave ssh per iniziare. Non preoccuparti, non è così male come sembra! Ho aggiunto un breve tutorial alla mia risposta
woojoo666

3
Perché state lottando con SSH e chiavi pubbliche / private quando è molto più facile usare HTTPS? Nella Clonefinestra di dialogo, cambia il https://bitbucket.org/<reponame>.git
menu a

1
@ DanDar3 Sì, grazie, questo mi ha risparmiato un sacco di problemi.
Excrubulent

1
@ DanDar3 wow è molto più facile, ho aggiornato la risposta, grazie!
woojoo666

24

In realtà esiste una soluzione più semplice (solo su versione Mac). Solo quattro passaggi:

  1. Fai clic con il pulsante destro del mouse sul repository e seleziona "Pubblica su remoto ..."

SourceTree Pubblica su Screeshot remoto

  1. La finestra successiva ti chiederà se devi pubblicare (github, bitbucket, ecc.), E poi hai finito.
  2. Collega il repository remoto
  3. spingere

Questo deve essere nuovo. In realtà non ho usato i repository per un po ', quindi lo farò un giro.
cma0014

3
In realtà ho verificato che è solo sulla versione Mac di SourceTree, non su Windows. :(
David

1
Sì, ho verificato che crea il repository sul telecomando, ma poi non lo collega ai telecomandi del repository locale. Sarebbe un bel aggiornamento per le prossime versioni
David

1
@bauerMusic questo è successo anche a me con la finestra "in progress". Ma non ultimamente. Anche se, come hai detto, qualcosa non funziona con questa funzione. Non si collega al nuovo repository remoto come tutti ci aspetteremmo. Nonostante tutto, SourceTree è il miglior gestore GIT per Mac che ho trovato.
David

1
In realtà funziona perfettamente per me, crea il repo e lo collega con il locale e il remoto, forse dal 2016 lo migliorano
Kross

10

Come mostra questo video , creare prima un repository online è la solita strada da percorrere.

Le note di rilascio di SourceTree menzionano per SourceTree 1.5+:

Supporta la creazione di nuovi repository con account team / organizzazione in Bitbucket.

Quindi, anche se non esiste una funzione di "pubblicazione", puoi creare il tuo repository online da SourceTree.

Il post sul blog " SourceTree per Windows 1.2 è qui " (settembre 2013) menziona anche:

Ora puoi configurare i tuoi account Bitbucket, Stash e GitHub in SourceTree e vedere immediatamente tutti i tuoi repository su quei servizi. Clonali facilmente, apri il progetto sul web e crea anche nuovi repository sul servizio remoto senza mai lasciare SourceTree .
Lo troverai nel menu in Visualizza> Mostra archivi ospitati o utilizzando il nuovo pulsante in basso a destra nel pannello dei segnalibri.

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


Lo proverò quando torno a casa, grazie!
cma0014

Sì, ma rendere la cartella dev locale il repo si sta rivelando difficile.
Ben Racicot

3

Ho usato questo e ha funzionato bene per me. Se la tua directory è

"repo" e il tuo progetto è "ciao" copia il progetto lì

cd /path/to/my/repo

Inizializza la tua directory

git init

Metti in scena il progetto

git add hello

impegnare il progetto

git commit

Aggiungi le configurazioni utilizzando l'email e il nome utente che stai utilizzando in Bitbucket

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

Aggiungi un commento al progetto

git commit -m 'comment'

spingere il progetto ora

git push origin master

Controlla il master

git checkout master

3

Bitbucket supporta un'API REST che puoi utilizzare per creare a livello di codice repository Bitbucket.

Documentazione ed esempio cURL disponibili qui: 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" }'

In Windows, curl è disponibile dalla shell Git Bash.

Utilizzando questo metodo è possibile creare facilmente uno script per importare molti repository da un server git locale a Bitbucket.


1

Configura repository Bitbucket (riga di comando con Mac)

Crea una nuova APPLICAZIONE partendo dal repository locale:

  1. Terminale -> cd ~ / Documents (incolla il percorso della directory di base dell'APPLICAZIONE)
  2. Terminale -> mkdir (crea directory con)
  3. Terminal -> cd (cambia directory con directory)
  4. BitBucket A / C -> crea repository sull'account bitBucket
  5. Xcode -> crea un nuovo progetto xcode con lo stesso nome
  6. Terminale -> git init (inizializza repository vuoto)
  7. Terminale -> git remote add origin (Es. Https: //app@bitbucket.org/app/app.git )
  8. Terminale -> git add.
  9. Terminale -> git status
    1. Terminale -> git commit -m "IntialCommet"
    2. Terminale -> git push origin master

Crea repository clone APPLICAZIONE:

  1. Terminale -> mkdir (crea directory con)
  2. Terminal -> cd (cambia directory con directory)
  3. Terminale -> git clone (Es. Https: //app@bitbucket.org/app/app.git )
  4. Terminale -> cd
  5. Terminal -> git status (Mostra lo stato del file modificato / aggiornato)
  6. Terminal -> git pull origin master
  7. Terminale -> git add.
  8. Terminale -> git push origin master

1

Un'altra soluzione per gli utenti Windows:

Questo utilizza Github come bridge per arrivare a Bitbucket, a causa della mancanza di pubblicazione direttamente dall'app Sourcetree di Windows.

  1. Carica il tuo repository locale nell'app desktop Github.
  2. Pubblica il repository come repository privato (per la privacy, se lo desideri) dall'app desktop Github nel tuo account Github.
  3. Apri il tuo account personale / di squadra nel sito Web di Bitbucket
  4. Crea un nuovo repository Bitbucket importando da Github.
  5. Elimina il repository in Github.

Fatto ciò, tutto verrà caricato in Bitbucket. I tuoi telecomandi locali dovranno probabilmente essere configurati per puntare a Bitbucket ora.


0

GIT serve bene al suo scopo per il controllo della versione e per i progetti di team se i commit e i branch vengono mantenuti correttamente.
Passaggio 1: clona il tuo repository locale utilizzando cli come indicato nelle risposte precedenti

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

Passaggio 2: puoi seguire uno dei passaggi precedenti per spingere / tirare le tue opere. Un modo semplice è usare git gui. Fornisce un'interfaccia grafica in modo che sia facile mettere in scena (aggiungere) / rimuovere dallo stage, eseguire il commit / decomprimere e push / pull. I principianti possono facilmente comprendere il processo git.

$ git gui

(OPPURE)
Passaggio 2: come menzionato sopra. I codici Cli faranno il lavoro.

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


0

Come aggiornamento alla risposta di Joe , in quanto è possibile creare script per la creazione del repository utilizzando l'API, solo la chiamata API di cui avevo bisogno era diversa. Ciò può essere dovuto al fatto che stiamo utilizzando bitbucket server e non bitbucket cloud.

Per creare un nuovo repository all'interno di un progetto sul nostro server, ho utilizzato:

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

dove USER, PASSWORD, SERVER, PROJECTNAMEe REPONAMEsono naturalmente i valori richiesti / desiderati.

La chiamata è documentata nel riferimento API .

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

Crea un nuovo repository. Richiede un progetto esistente in cui verrà creato questo repository. Gli unici parametri che verranno utilizzati sono name e scmId.

L'utente autenticato deve disporre dell'autorizzazione PROJECT_ADMIN affinché il progetto di contesto possa chiamare questa risorsa.


0

(Linux / WSL almeno) Dal browser su bitbucket.org, crea un repository vuoto con lo stesso nome del tuo repository locale, segui le istruzioni proposte da bitbucket per importare un repository locale (due comandi da digitare).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.