2013-03-01 2 views
33

Я в команде из трех человек; два работают локально, и я работаю на сервере.Используйте собственное имя пользователя/пароль с git и bitbucket

Моя коллега установила учетную запись, но предоставила мне полные привилегии в хранилище.

Я поставил свое имя пользователя и адрес электронной почты в мерзавце:

git config --global user.name "bozdoz" 
git config --global user.email [email protected] 

и они идентичны свое имя и электронную почту на bitbucket.org.

Но когда я тянуть или толкать в хранилище, что указывает на их имя пользователя в строке:

Password for 'https://[email protected]': 

Я был в состоянии получить приглашение для моего пароля при попытке вытащить, указав URL с моим именем:

git pull https://[email protected]/path/repo.git 

и он сказал, что обновлен; и затем, когда я толкнул, он сказал, что нет-вперед-вперед.

Я читал, что мне нужно указать ветку, но я не знаю, как сделать это в пуш заявлении в то время как я также с указанием URL: репо

git push https://[email protected]/path/repo.git 

Я могу тянуть и нажмите, если мой коллега вокруг и может ввести свой пароль. Но это также указывает его как автора толчка, а не меня.

Как я могу тянуть и нажимать на ветку репо, как свое собственное имя пользователя?

ответ

57

Run

git remote -v 

и проверить, имеет ли URL вашего Origin в имя ваш сотрудника, жёстко там. Если да, то заменить его своим:

git remote set-url origin <url-with-your-username> 
+1

Это потрясающе. Спасибо. Работала отлично. Новое в StackOverflow? Я хотел бы дать вам некоторую репутацию, если вы хотите, чтобы у них были некоторые. Я могу наградить щедростью за 2 дня. – bozdoz

+0

JFYI: a) '' не существует - репо должно быть разветвлено до b) нажатие на fork не меняет (очевидно) начало –

+0

@LazyBadger Не уверен, что вы имеете в виду. Его ответ сработал ...? – bozdoz

2

Вы уверены, что не используете SSH? Возможно, проверьте электронную почту, связанную с вашим SSH-ключом в битбакете, если у вас ее есть.

+0

@bozdoz - стоп! ssh: // http: //? –

+0

@LazyBadger Я понятия не имею, о чем вы говорите. – bozdoz

3

Ну, это часть Bitbucket философии и документооборота:

  • Repository может иметь только один пользователь: владелец
  • Для обычных счетов (конечного пользователя) сотрудничество ожидание «fork-pull request» рабочий процесс

т. е. вы не можете (в обычном случае) совершать в зарубежное репо под собственными полномочиями.

У вас есть два возможных решения:

  1. «Классический» BB-путь: вилы Репо (получить принадлежит вы хранилище), внести изменения, отправьте запрос тянуть к происхождения репо
  2. Create "Team", добавить пользовательские учетные записи в качестве членов команды делают владельца команды репозитория - в этом случае для этого «общего центрального» репозитория каждый член команды может подталкивать свои собственные учетные данные - обследовать thg репозиторий и TortoiseHg Team, владелец этого хранилища, в качестве образцов
+0

Как мы укажем, какой пользователь нажимает на команду? Нужно ли устанавливать user.name каждый раз? – bozdoz

+0

@bozdoz - не смешивать идентификатор (используется для локального коммита и передается как есть BB) с авторизацией, которую вы должны выполнить при нажатии. Вы должны ввести и сохранить свои учетные данные (BB-имя пользователя и пароль, а не параметры пользователя Git. *). –

+0

Как вводить и хранить учетные данные за пределами git config? @lazybadger – bozdoz

10

Подсказка:

Password for 'https://[email protected]': 

предполагает, что вы используете HTTPS не SSH. SSH URLs начать с мерзавца @, например:

[email protected]:beginninggit/alias.git 

Даже если вы работаете в одиночку, с одним репо, что вы владеете, операция:

git push 

вызовет:

Password for 'https://[email protected]': 

, если удаленное начало начинается с https.

Проверьте пульт с:

git remote -v 

Дистанционное зависит от git clone. Если вы хотите использовать SSH клонировать репозиторий с помощью своего SSH URL, например:

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

Я предлагаю вам начать с git push и git pull для частных репо.

Если это работает, вы два joices предложили Ленивый Барсук:

  • Прицепные просит
  • работы команды
+0

. Я думаю, что я использую HTTPS, а не SSH, согласно вашему ответу. Спасибо за помощь. @ Предложение Эрика об изменении файла конфигурации в конечном итоге решило проблему. Для будущих репозиториев наша команда собирается использовать метод команды битбакет. – bozdoz

43

Я полагал, что я должен поделиться своим решением, так как я не был в состоянии найти его где угодно, и только разобрался в пробке и ошибке.

Я действительно смог передать право собственности на репозиторий на a team on BitBucket.

Не добавить удаленный URL, который предполагает BitBuckets:

git remote add origin https://[email protected]/teamName/repo.git 

Вместо, добавьте удаленный URL без Вашего имени пользователя:

git remote add origin https://bitbucket.org/teamName/repo.git 

Таким образом, когда вы идете потянуть или нажать на репо, , он предлагает вам ваше имя пользователя, а затем для вашего пароля: у каждого в команде есть доступ к нему под свои собственные учетные данные. Этот подход работает только с командами на BitBucket, хотя вы можете управлять разрешениями пользователей на репозитории с одним владельцем.

+0

Я пытаюсь использовать это решение, но используя 'git remote set-url origin' вместо' git remote add origin'. Вместо того, чтобы получать приглашение для имени пользователя, я получаю 'Запрошенный URL-адрес возвращенной ошибки: 401 Несанкционированный доступ при доступе' – Anthony

+0

вы используете https? @Anthony – bozdoz

+0

Да, я использую https. 'git remote set-url origin https://bitbucket.org/XXX/YYY.git', за которым следует 'git pull', тогда возникает ошибка: запрошенный URL-адрес возвратил ошибку: 401 Несанкционирован при доступе к https: // bitbucket.org/XXX/YYY.git/info/refs'. Возвращение в имя пользователя снова возвращает все в норму. – Anthony

Смежные вопросы