2011-11-15 25 views
17

Ho cercato una soluzione con Bitbucket e XCode.Bitbucket + XCode 4.2 + Git

Come tutti sanno, XCode 4.2 viene fornito con supporto git. Ho creato un account bitbucket e volevo spingere le mie modifiche al mio repository,

Ho seguito questo tutorial https://confluence.atlassian.com/display/BITBUCKET/Use+the+SSH+protocol+with+Bitbucket

Tuttavia questo è il problema che sto affrontando. Quando mi trovo nella sezione Organizer - Repositories di XCode, vado nella mia cartella Remote e creo un repository.

ssh: //[email protected]/username/myrepo.git

Tuttavia quando ho chiesto nome e la password, quelli che forniscono come username e password non riesce. Ho anche provato con git come utente ma senza fortuna.

UPDATE:

ho creato un file ~/.ssh/config in cui ho aggiunto una configurazione specifica per bitbucket.

Host bitbucket.org 
HostName bitbucket.org 
IdentityFile ~/.ssh/bitbucket 
User username 

ho provato con -T ssh [email protected] e funziona, diventa autenticato.

Tuttavia, quando eseguo il test con XCode, ho ricevuto il seguente errore. "Autenticazione non riuscita perché il nome o la password non erano corretti."

So che mi manca qualcosa qui.

UPDATE 2:

sono riuscito a risolvere il problema, ma solo da linea di comando, non dalla XCode. Vi posto la mia soluzione più tardi, ma sentitevi liberi se si dispone di un modo per farlo da XCode

Grazie

risposta

17

ha funzionato per me, utilizzando il protocollo HTTPS URI, ma avevo bisogno di togliere il mio nome utente da esso. Per esempio il cambiamento:

https://[email protected]/username/myrepo.git

a

https://bitbucket.org/username/myrepo.git

quindi fornire il nome utente e la password quando richiesto.

+0

due giorni, vi ringrazia. finalmente ho fatto :) – kemdo

+0

L'impostazione predefinita per me è stato ssh: // git @ bitbucket .... e ho dovuto cambiare a https: // bitbucket ... Grazie per il vostro aiuto –

0

È necessario aggiungere la chiave SSH generata al tuo account.

Io uso GitHub, ma BitBucket è fondamentalmente un clone di esso in modo che le stesse procedure si applicano:

cat ~/.ssh/id_rsa.pub | pbcopy 

Ora provare a ri-collegamento.

+0

Grazie Blender, ma ho già incollato le chiavi per bitbucket.However, ho notato che ho avuto più chiavi ssh, così ho aggiornato la mia domanda. – raul782

+1

solo un piccolo suggerimento, non usare il gatto qui. pbcopy <~/.ssh/id_rsa.pub – Frizi

0

Ok Sembra che non sia riuscito a passare attraverso il client XCode.

Tuttavia, la riga di comando è l'unico modo in cui sono riuscito a trasferire le mie modifiche e XCode mi ha solo aiutato a impostare il repository remoto e ad aggiungere le credenziali.

Infine quello che ho solo bisogno di fare è:

$git push myrepo master 

e ho ottenuto un messaggio di successo:

Counting objects: 7, done. 
Delta compression using up to 4 threads. 
Compressing objects: 100% (4/4), done. 
Writing objects: 100% (4/4), 360 bytes, done. 
Total 4 (delta 3), reused 0 (delta 0) 
remote: bb/acl: username is allowed. accepted payload. 
To ssh://[email protected]/username/myrepo.git 
123abcd..5a12a67 master -> master 
4

ero in grado di utilizzare l'interfaccia utente XCode utilizzando l'URL HTTPS e inserendo il mio nome utente e la password di bitbucket quando richiesto.

14

La rimozione del nome utente non ha funzionato per me. Ma sono stato in grado di risolvere il problema aggiungendo la mia password come questo per l'URL:

https://username:[email protected]/username/myrepo.git

+0

Questo ha funzionato anche per me, ma mi chiedo se è sicuro. Sospetto che Xcode memorizzi la mia password da qualche parte in testo normale ora. – icant

+2

I password protect the mac :) –

+0

Questo ha funzionato per me. Grazie per queste informazioni. – 1amtoo1337

1

si può risolvere questo problema in XCode senza andare a riga di comando. Hai avuto tutto giusto nella tua domanda ma hai impostato l'URL errato.

Dovrebbe essere: [email protected]: username/myrepo.git

Invece di quello che aveva: ssh: //[email protected]/username/myrepo.git

+0

SSH è utile se la verifica in due passaggi è abilitata. –

0

so ci sono già diverse risposte, ma non riesco a farlo funzionare fino a un'ora, quindi forse sto dando una mano a qualcuno là fuori.

La mia soluzione è stata semplicemente aggiungere il mio nome utente a https://bitbucket.org/USERNAME/PROJECT_NAME/admin/access come amministratore, quindi in questo modo potrei semplicemente digitare Xcode come URL https://[email protected]/USERNAME/PROJECT_NAME.git con il mio nome utente e password.

IMPORTANTE: USERNAME sta per l'utente ospitare il progetto, quindi se si sta lavorando sul repo del vostro collega, questo sarà il suo nome utente.

Spero che questo aiuti.

0

Sono stato in grado di ottenere XCode per accettare e utilizzare il mio tasto SSH che avevo precedentemente configurato con Bitbucket specificando git come nome utente (nell'interfaccia utente XCode) e inserendo la mia password e il mio nome utente di Bitbucket nell'URL del repository.

Aveva di pasticciare con un paio di volte prima che ha iniziato a lavorare.

2

Ecco un tentativo di una risposta completa ...

Creare una chiave bitbucket se non avete con ssh-keygen. Scegli un nome decente, qualcosa come bitbucket_rsa partendo dal presupposto che crei una chiave rsa. Mettilo nel ~/.ssh/.

Una volta che questo è stato creato, aggiungere:

Host bitbucket.org 
HostName bitbucket.org 
IdentityFile ~/.ssh/<bitbucket key filename above> 

al tuo ~/.ssh/config.

Quindi, aggiungere questo tasto per l'interfaccia web Bitbucket utilizzando lo strumento Manage Account > SSH Keys. Per ottenere la chiave pubblica sul vostro uso negli appunti:

$ pbcopy < ~/.ssh/<bitbucket key filename above>.pub 

Infine, assicurarsi che si sta utilizzando l'indirizzo fornito dal ssh Bitbucket contro il https uno.Queste assomigliano:

[email protected]:accountname/repositoryname.git 

e sono accessibili dal calo HTTPS verso il basso l'etichetta (attualmente nella barra laterale destra).

Xcode (compresi Xcode 5) dovrebbe funzionare, come si git dalla riga di comando.

3

iOS 9.2, Xcode 7.2, ARC abilitato

Sembra che ogni volta che inizio un nuovo progetto Xcode, devo strisciare di nuovo a questo post e altri simili per mettere insieme una soluzione per ottenere il mio * .git repository impostato per il nuovo progetto. Il mio obiettivo con questa risposta è aggiornare e compilare una soluzione completa. Grazie a tutti i contributori originali, in particolare "trolley".

Per una descrizione molto approfondita, si prega di fare riferimento a questo link: http://www.appcoda.com/git-source-control-in-xcode/

1. Creare il nuovo progetto Xcode come al solito, ma assicurarsi di aver abilitato il controllo di origine, vedere di seguito:

Se non avete fatto non è, quindi andate qui per vedere come fare una volta che il progetto è già stata creata: https://stackoverflow.com/a/17790306/4018041

Enable source control when creating your project.

2. Dalla barra degli strumenti in alto selezionare controllo del codice sorgente -> "branch corrente" -> Configura "il nome del progetto", vedere sotto:

Configure the source control

3. Scegliere telecomandi dalla scheda menu Configura , ha colpito il segno "+" e selezionare "Aggiungi a distanza", vedere sotto:

Add remote source

4. verrà richiesto di inserire il nome del repository e digitare l'indirizzo per il r epository, vedi sotto:

Qui si dovrebbe utilizzare le istruzioni "carrello" fornite qui: https://stackoverflow.com/a/9271409/4018041

https://bitbucket.org/username/myrepo.git 

Nell'esempio di cui sopra, "miorepo" è il nome del repository a bitbucket.org; ma localmente puoi assegnare qualsiasi nome tu voglia, il nome predefinito è "origine" come vedi nell'immagine qui sotto.

Enter a repository name and address

5. Inserire il nome utente e la password che utilizzi per accedere al tuo account bitbucket.org, vedere sotto:

Il nome utente è più probabile che la e-mail che hai utilizzato per registrarti .

Credentials for the repository

6. Dopo aver premuto OK e se sono state accettate le credenziali, allora si dovrebbe ottenere un messaggio di segno di spunta verde. È così!

Dopodiché puoi eseguire il controllo del codice sorgente-> Invia il tuo * .git locale al tuo repository bitbucket.org, che viene chiamato localmente come "origine" (predefinito).

Push local *.git repository to origin

Un testo simile con un segno di spunta verde apparirà sulla spinta di successo fino al repository bitbucket.org.

Nota: assicurarsi di confermare una modifica iniziale per il progetto in modo che il proprio * .git locale venga creato correttamente.

Spero che questo aiuti qualcuno. Saluti!

+0

È anche possibile eseguire la sincronizzazione con il protocollo SSH, fornendo un URL SSH ([email protected]: username/myrepo.git) al punto 4. Questo è utile se la verifica in due passaggi è abilitata. –

+0

[Mad Hacker] (http://stackoverflow.com/a/14146625) ha mostrato questo. –

+0

kudos @ serge-k, grazie per questo. –