2013-03-01 11 views
18

1) Tworzę nowe repo na bitbucket używając głównego użytkownika TEAM.BitTruit git push as user

2) Następnie dodaję wszystkie klucze programistyczne, które będą mogły pobrać to repozytorium.

3) zmienił się z serwerem i wykonany klon tego repo za pomocą polecenia:

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

4) Zrobiłem kilka zmian w kodzie i sprawił, że zobowiązują

git commit -a -m "some improves" 

Więc oto Pytanie:

nie mogę zrobić BEC git wypychania nie mam Push prawo zrobić z tym użytkownikiem:

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

Jak zatem wykonać naciśnięcie, używając mojej nazwy użytkownika/hasła?

Odpowiedz

27

zawsze można skonfigurować drugiego pilota na serwerze za pomocą protokołu HTTPS:

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

Następnie można dokonać drobnych zmian, popełnić, a następnie użyć polecenia

git push edit-only-origin 

To poprosi o zarówno twoja nazwa użytkownika i hasło.

+1

To powinna być zaakceptowana odpowiedź. – Tisch

+3

Możliwe również: 'git push https: // bitbucket.org/user/repo.git' –

19

Z mojego zrozumienia, deployment key jest przeznaczony do odczytu. Aby móc naciskać, musisz dodać klucz komputera ssh.

Przejdź do Zarządzaj kontem, a po lewej wybierz klucze SSH. Dodaj klucz, kopiując i wklejając klucz publiczny rsa.pub.

Lepiej jest, jeśli skopiujesz go z terminala, aby upewnić się, że żadne funky nie występują w miksie. Aby to zrobić w systemie OSX, wpisz pbcopy < ~/.ssh/id_rsa.pub. W przypadku Linuksa spójrz na komentarz Agusha.

+2

pbcopy jest tylko dla OSX, powinieneś o tym wspomnieć. Dla Linuksa istnieje '' 'xclip -sel c ~/.ssh/id_rsa.pub'''' – Agush

+0

ahh masz rację. Pozwól mi edytować mój post. – yeesterbunny

+0

Jeśli to zrobię, każdy na serwerze może przesłać zmiany do wzorca, ponieważ nie będzie żądał podania hasła. Potrzebuję sposobu, aby poprosić o hasło do push, ale nie ma ograniczeń, aby wyciągnąć z master. – diego2k

5

Wygląda na to, że użyłeś klucza programisty. Konieczność dodania klucza SSH do profilu i usunięcia ich w sekcji repozytorium.

4

Spróbuj użyć protokołu HTTPS zamiast SSH -

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

SSH używa klucza, który w tym przypadku tylko dostaje dostęp do odczytu. HTTPS poprosi o podanie hasła, dając ci prawo do zapisu.

Poręczny w przypadku szybkich zmian na serwerach, które używają kluczy instalacyjnych tylko do odczytu.

0

Pierwszy bitbucket obsługuje dostęp do ssh.

Myślę, że możesz dodać swój klucz w ramach repozytorium. Klucz w repozytorium jest kluczem wdrażania i nie ma uprawnień do zapisu.

Jeśli chcesz uzyskać uprawnienia do wypychania, dodaj klucz pod swoim kontem.

Link lubi https://bitbucket.org/account/user/#{the-org-name}/ssh-keys/.