2011-11-15 2 views
17

Я искал решение с Bitbucket и XCode.Bitbucket + XCode 4.2 + Git

Как известно, XCode 4.2 поставляется с поддержкой git. Я создал учетную запись Bitbucket, и я хотел, чтобы подтолкнуть мои изменения в моем хранилище,

Я следовал этот учебник https://confluence.atlassian.com/display/BITBUCKET/Use+the+SSH+protocol+with+Bitbucket

Однако это проблема я столкнулся. Когда я нахожусь в разделе «Организатор - Хранилища» на XCode, я перехожу в папку «remotes» и создаю репозиторий.

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

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

UPDATE:

Я создал ~/.ssh/конфигурационный файл, в котором я добавил определенную конфигурацию BitBucket.

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

Я проверил это с SSH -T [email protected] и он работает, он получает аутентификацию.

Однако, когда я тестирую это с помощью XCode, я получил следующую ошибку. «Ошибка аутентификации, поскольку имя или пароль были неверными».

Я знаю, что мне что-то не хватает.

UPDATE 2:

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

Благодарности

ответ

17

Он работал для меня с использованием HTTPS URI, но мне нужно было удалить свое имя пользователя из него. Например, изменения:

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

к

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

затем ввести свой логин и пароль.

+0

2 дня, спасибо. наконец, я это сделал :) – kemdo

+0

По умолчанию для меня был ssh: // git @ bitbucket .... и мне пришлось изменить его на https: // bitbucket ... Спасибо за вашу помощь –

0

Вы должны добавить сгенерированный ключ SSH к вашей учетной записи.

Я использую GitHub, но BitBucket в основном клон него так же процедуры применяются:

cat ~/.ssh/id_rsa.pub | pbcopy 

Теперь попробуйте повторного соединения.

+0

Спасибо Блендер, но я уже вставил ключи в битбакет. Однако я заметил, что у меня было несколько ключей ssh, поэтому я обновил свой вопрос. – raul782

+1

просто небольшое предложение, не используйте кошку здесь. pbcopy <~/.ssh/id_rsa.pub – Frizi

0

ОК Похоже, я не смог пройти через клиент XCode.

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

Наконец, что я только что нужно сделать, это:

$git push myrepo master 

И я получил сообщение об успехе:

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

Я был в состоянии использовать XCode UI с помощью HTTPS URL и введя мое имя пользователя и пароль в битбакет при появлении запроса.

14

Удаление имени пользователя не помогло мне. Но я был в состоянии решить эту проблему, добавив свой пароль, как это к URL:

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

+0

Это сработало и для меня, но мне интересно, безопасно ли это. Я подозреваю, что Xcode сохраняет мой пароль где-то в обычном тексте. – icant

+2

Я защищаю пароль от mac :) –

+0

Это сработало для меня. Спасибо за эту информацию. – 1amtoo1337

1

Вы можете решить эту проблему в XCode, не вдаваясь в командную строку. У вас все было в вашем вопросе, но вы неправильно настроили URL.

Это должно быть: [email protected]: имя пользователя/myrepo.git

Вместо того, что вы имели: SSH: //[email protected]/username/myrepo.git

+0

SSH полезен, если включена двухэтапная аутентификация. –

0

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

Мое решение было просто добавить свое имя пользователя в https://bitbucket.org/USERNAME/PROJECT_NAME/admin/access в качестве администратора так, то я мог бы просто нормально ввести в Xcode, как URL https://[email protected]/USERNAME/PROJECT_NAME.git с моим именем и паролем.

ВАЖНО: USERNAME означает пользователя HOSTING проекта, поэтому, если вы работаете над репо своего коллеги, это будет его имя пользователя.

Надеюсь, что это поможет.

0

Я получил XCode, чтобы принять и использовать мой SSH-ключ, который я ранее настроил с помощью Bitbucket, указав git как имя пользователя (в пользовательском интерфейсе XCode) и поместив мой пароль, а мое имя пользователя Bitbucket отправляется по URL-адресу репо.

Пришлось побеседовать с ним несколько раз, прежде чем он начал работать.

2

Вот попытка полного ответа ...

Создать ключ Bitbucket, если вы не используете ssh-keygen. Выберите достойное имя, что-то вроде bitbucket_rsa, предполагая, что вы создаете ключ rsa. Поместите его в ~/.ssh/.

После этого создается, добавьте:

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

в ваш ~/.ssh/конфигурации.

Затем добавьте этот ключ в веб-интерфейс Bitbucket с помощью инструмента Manage Account > SSH Keys. Чтобы получить ключ общественности на вашем использование буфера обмена:

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

Наконец, убедитесь, что вы используете адрес SSH предоставленного Bitbucket против по протоколу HTTPS один.Они похожи:

[email protected]:accountname/repositoryname.git 

и могут быть доступны с помощью выпадающего меченого HTTPS (в настоящее время в правой боковой панели).

Теперь Xcode (включая Xcode 5) должен работать, как и git из командной строки.

3

IOS 9.2, Xcode 7.2, ARC включен

Кажется, что каждый раз, когда я начинаю новый проект Xcode, я должен ползти назад на этот пост и другие подобные ему сколотить решение, чтобы получить мой * .git, созданный для нового проекта. Моя цель с этим ответом - обновить и скомпилировать полное решение. Спасибо всем оригинальным вкладчикам, особенно «тележке».

Для очень тщательного описания, пожалуйста, обратитесь к этой ссылке: http://www.appcoda.com/git-source-control-in-xcode/

1. Создать свой новый проект Xcode, как обычно, но убедитесь, что вы включили систему управления версиями, смотрите ниже:

Если вы не сделали этого, то иди сюда, чтобы увидеть, как это сделать, когда проект уже создан: https://stackoverflow.com/a/17790306/4018041

Enable source control when creating your project.

2. В верхней панели инструментов выберите Control Source -> "текущая ветвь" -> Настройки "ваш проект", см ниже:

Configure the source control

3. Выберите ПУлЬТы из вкладки меню Настройки , нажмите знак «+» и выберите «Добавить Remote», смотрите ниже:

Add remote source

4. Вам будет предложено ввести имя хранилища и введите адрес для г epository, смотрите ниже:

Здесь вы должны использовать инструкции «тележки», представленная здесь: https://stackoverflow.com/a/9271409/4018041

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

В приведенном выше примере, «myrepo» это имя хранилища в bitbucket.org; но локально вы можете назначить любое имя, которое вы хотите, по умолчанию это имя «origin», как вы видите на рисунке ниже.

Enter a repository name and address

5. Введите имя пользователя и пароль, которые вы используете для доступа к учетной записи bitbucket.org, смотрите ниже:

Ваше имя пользователя, скорее всего, адрес электронной почты, который вы использовали для регистрации ,

Credentials for the repository

6. После нажатия кнопки OK, и если были приняты учетные данные, то вы должны получить зеленый сообщение галочки. Вот и все!

После этого вы можете использовать Source Control-> Нажать свой локальный * .git в репозиторий bitbucket.org, который называется локально как «источник» (по умолчанию).

Push local *.git repository to origin

Аналогичный текст с зеленым флажком появится после успешного толчка вверх в хранилище bitbucket.org.

Примечание. Убедитесь, что вы совершили первоначальное изменение для проекта, чтобы локальный * .git был правильно создан.

Надеюсь, это поможет кому-то. Ура!

+0

Вы можете даже синхронизировать протокол SSH, указав URL-адрес SSH ([email protected]: имя пользователя/myrepo.git) на шаге 4. Это полезно, если включена двухэтапная аутентификация. –

+0

[Mad Hacker] (http://stackoverflow.com/a/14146625) показал это. –

+0

kudos @ serge-k, спасибо за это. –