Подтвердить что ты не робот

В XCode 4 как добавить удаленный репозиторий GitHub в существующий локальный проект?

Интеграция Git в XCode 4 очень приветствуется, но, похоже, она немного шелушится, когда дело касается удаленных репозиториев. Для ясности я использую OS X версии 10.6.7 и XCode 4.0.2 (4A2002a).

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

Когда я хочу подтолкнуть новый проект к GitHub, я хочу добавить удаленный репозиторий и нажать локальные изменения до GitHub. Я могу добавить репозиторий GitHub в XCode 4 как новый репозиторий в окне "Организатор", но нет способа его установки в качестве удаленного репозитория для моего существующего проекта.

Поэтому я переключаюсь на использование команд Git в терминале.

git remote add origin https://<username>@github.com/<organization>/<repository>.git

Если я вернусь к XCode 4 и попробую использовать

Файл → Управление источником → Push...

затем Выберите репозиторий, в который нужно нажать изменения. открывается диалог с исходным удаленным репозиторием. Там есть желтый индикатор, в котором говорится, что требуется аутентификация, и это нормально, поскольку я еще не смог ввести свои учетные данные для HTTPS. Однако, когда я нажимаю "Push", и он пытается нажать изменения, он говорит: "Операция не может быть выполнена, потому что запрещается доступ к репозиторию" origin ".

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

При вводе пароля XCode 4 происходит сбой со следующей ошибкой

ASSERTION FAILURE in /SourceCache/IDEKit/IDEKit-303/Framework/Classes/SourceControl/IDESourceControlOperationInfo.m:59
Details:  Message sent to invalidated object: <IDESourceControlPushOperationInfo, 0x200bd2a80>. Backtrace for invalidation:
 (null)
Object:   <IDESourceControlPushOperationInfo: 0x200bd2a80>
Method:   -invalidate
Thread:   <NSThread: 0x200020700>{name = (null), num = 1}
Hints:   None

Если я перезапущу XCode, исходный репозиторий был добавлен в браузер Хранилища в Organizer, и я могу видеть главную ветку на GitHub, поэтому я знаю, что учетные данные верны, без меня что-то меняя.

Кто-нибудь нашел надежный способ использования XCode 4 с GitHub, начиная с локального проекта?

Если я клонирую существующий репозиторий GitHub с проектом XCode в нем, откройте его с помощью XCode 4, тогда даже если первый Push, похоже, не работает, тогда работает 2-й push. Поэтому, возможно, начиная с абсолютной царапины с XCode 4, создавая репозиторий для меня, это не лучший шаблон (пока они не улучшат оснастку Git в более поздней версии XCode 4).

ИЗМЕНИТЬ ДАЛЬНЕЙШИЕ ДЕТАЛИ ОДНОГО ПОСЛЕДНЕГО ПОСЛЕДНЕГО

Этот пример действительно применим только к первому проекту, который вы добавляете в репозиторий GitHub. Как таковой, я думаю, что вам будет лучше со следующими шагами, имея в виду, что в этом решении все еще есть некоторые ошибки XCode.

  • Элемент списка
  • "Подключиться к репозиторию" из диалога "Добро пожаловать в XCode".
  • Использовать URL-адрес GHHHH SSH для местоположения
  • Дайте ему имя (RepositoryName) и Clone в каталог
  • Первая попытка оказывается неудачной, даже если содержимое загружено
  • Попробуйте снова, и он работает.
  • В окне "Организатор" появился новый репозиторий, источник которого установлен на удаленный SSH-адрес GitHub.
  • Создайте новый проект в каталоге, в который вы клонировали, но НЕ устанавливайте флажок "Создать локальный репозиторий Git для этого проекта".
  • Сделать первоначальную фиксацию в локальном репозитории Git.
  • Попробуйте Source Control → Push и XCode 4 сбой: "Операция не может быть выполнена, потому что был запрещен доступ к хранилищу RepositoryName. Проверьте имя пользователя и пароль
  • Попробуйте Source Control → Push и XCode 4 снова откроет диалоговое окно удаленного репозитория, но на этот раз обнаружил удаленный репозиторий с именем origin. Рядом с ним есть желтый шар и "Требуется аутентификация".
  • Нажатие кнопки "Push" снова заставило удаленный Push работать.

Одна вещь, которую я заметил и еще не успел выработать, - это то, что ответные сообщения от GitHub с хеш-значением checkin и любые сообщения, как представляется, сообщаются в навигаторе XCode Log в качестве сбоев Push, даже несмотря на то, что Push успешно что касается GitHub.

У кого-нибудь есть лучшее решение?

4b9b3361

Ответ 1

Я думаю, что нашел способ Xcode протолкнуть существующий проект в GitHub или любой другой удаленный репозиторий!

Предпосылки

  • Я предполагаю, что у вас есть проект, созданный Xcode 4 с локальным репозиторием git.
  • Вы создали пустой удаленный репозиторий git (я называю его RemoteRepository в следующем примере)

Нажмите на удаленный

  • Откройте Организатор в Xcode, перейдите на вкладку Хранилища

  • Сначала нажмите "Пульты", а затем "Добавить удаленный"

    Xcode Organizer

  • Введите удаленное имя и местоположение удаленного репозитория и нажмите кнопку create

    Add a remote dialog

  • Затем выберите свой проект и откройте File -> Source Control -> Push ...

    open push dialog

  • Выберите удаленный репозиторий и дождитесь его подключения! Найдите "Создать" в скобках.

    push dialog

  • Теперь ваш старый проект опубликован в GitHub

    result on GitHub

Я надеюсь, что это сработает и для вас! В моем случае он работает с каждым удаленным репозиторием git.

Пожалуйста, свяжитесь со мной по twitter, если что-то неясно или написано на плохом английском языке

Ответ 2

Я успешно это сделал, используя ssh-соединение (которое выглядит как [email protected]:<username>/<project>.git). Он аутентифицирует пользователя на основе открытого ключа SSH, который вы можете создать в командной строке - много документов об этом в github в разделе "Справка".

Ответ 3

Xcode 6.2 (и, возможно, 6.x) изменил ситуацию. В организаторе больше нет вкладки "Хранилища". Здесь, как это сделать с новыми Xcodes.

Чтобы добавить проект в локальный репозиторий git к GitHub, это то, что вы делаете:

  • Перейдите в меню "Управление источником", выберите проект и выберите "Настроить":

enter image description here

  1. Вы увидите:

enter image description here

  1. Выберите вкладку "Дистанция" и нажмите "+" в левом нижнем углу. Выберите "Добавить удаленный доступ".

enter image description here

  1. Введите имя для удаленного репозитория и введите URL-адрес для удаленного репозитория. Убедитесь, что вы создали этот удаленный репозиторий уже, и если в GitHub make, вы указываете, что это уже существующий проект, а не новый.

enter image description here

  1. Ты почти готов. Перейдите в меню "Управление источником" и выберите "Push". Затем вы увидите имя репо, которое вы использовали на последнем этапе, что-то вроде "simpleest/master"; нажмите кнопку.

Готово.