2013-03-01 30 views
18

1) Creo un nuovo repository su bitbucket utilizzando l'utente principale di TEAM.Bitbucket git push come utente

2) Quindi aggiungo tutte le chiavi di sviluppo che saranno in grado di scaricare questo repository.

3) è andato a un server e ha fatto un clone di questo repo utilizzando il comando:

git clone ssh://[email protected]/user/repo.git 

4) Ho fatto alcune modifiche al codice e fatto il commit

git commit -a -m "some improves" 

Quindi, ecco la domanda:

non posso fare un bec git push non ho spinta diritto di farlo con questo utente:

# git push 
conq: repository access denied. access via a deployment key is read-only. 
fatal: The remote end hung up unexpectedly 

Quindi, come posso effettuare un push utilizzando il mio nome utente/password?

risposta

27

Si può sempre impostare un secondo telecomando sul server utilizzando https:

git remote add edit-only-origin https://bitbucket.org/user/repo.git 

Poi, si potrebbe fare piccole modifiche, commit e quindi utilizzare il comando

git push edit-only-origin 

In questo modo si sarebbe chiederà sia il tuo nome utente che la password.

+1

Questa dovrebbe essere la risposta accettata. – Tisch

+3

Possibile anche: 'git push https: // bitbucket.org/user/repo.git' –

19

Dalla mia comprensione, deployment key è per l'accesso di sola lettura. Per essere in grado di spingere, è necessario aggiungere la chiave ssh del computer.

Passare a Gestisci account e, sulla sinistra, selezionare le chiavi SSH. Aggiungi la chiave per copia e incolla la tua chiave pubblica rsa.pub.

È meglio se lo copi dal terminale per assicurarti che nessun personaggio funky entri nel mix. Per farlo in OSX, digitare pbcopy < ~/.ssh/id_rsa.pub. Per Linux, guarda il commento di Agush.

+2

pbcopy è solo per OSX, dovresti dirlo. Per Linux c'è '' 'xclip -sel c ~/.ssh/id_rsa.pub''' – Agush

+0

ahh hai ragione. Lasciami modificare il mio post. – yeesterbunny

+0

Se lo faccio, chiunque sul server può inviare modifiche al master in quanto non richiede una password. Ho bisogno di un modo per chiedere una password per il push, ma non ci sono limiti per il master. – diego2k

5

Sembra che tu abbia usato la chiave dello sviluppatore. È necessario aggiungere la chiave SSH nel profilo e rimuoverli nella sezione repository.

4

Provate ad usare HTTPS al posto di SSH -

git -c user.email='[email protected]' -c user.name='myusername' commit 
git push https://[email protected]/path-to/myrepos.git master 

SSH utilizza la chiave, che in questo caso ottiene solo di leggere l'accesso. HTTPS chiederà la tua password, dandoti accesso in scrittura a push.

Comodo per modifiche rapide su server che utilizzano chiavi di distribuzione di sola lettura.

0

Primo bitbucket supporta gli accessi ssh.

Penso che si possa aggiungere la chiave in un repository. La chiave nel repository è una chiave di distribuzione e non ha i permessi di scrittura.

Se si desidera il permesso push, è necessario aggiungere la chiave nel proprio account.

Il collegamento piace https://bitbucket.org/account/user/#{the-org-name}/ssh-keys/.