Можно ли интегрировать git с Xcode?


121

Есть ли способ использовать репозиторий git со встроенными функциями SCM Xcode?



16
Xcode 4 находится в стадии бета-тестирования (открытая загрузка еще не началась) и имеет встроенную поддержку Git.
Кендалл Хопкинс,

3
@Kendall: Хотя предварительная версия для разработчиков Xcode 4 еще не является общедоступной, теперь она доступна для всех платных учетных записей разработчиков.
Мэтт Б.

2
Поскольку Xcode4 GM уже отсутствует, эта тема должна быть обновлена ​​...
nacho4d

1
Для
справки

Ответы:


74

Xcode 4 изначально поддерживает git (адрес государства в инструментах разработчика на WWDC 2010)

Подробнее здесь: Что нового в Xcode 4 документация от компании Apple является длительным, но хорошо читать.


3
Приятно слышать. Есть новости о поддержке Mercurial (hg)?
Дэйв

1
это не кажется таким ... ни слова о системе плагинов.
TodK

4
: D Это сделало мой день! Не могу дождаться.
Vortico

OMGEEZ! Я понятия не имел ... Это меня очень радует ... Есть хоть слово о дате выпуска?
tybro0103 03

Ссылка на документ не работает
anki

73

ПРИМЕЧАНИЕ: несмотря на все голоса за, этот ответ устарел по состоянию на июнь 2010 г.


Там нет поддержки мерзавца в Xcode, но это не причина , чтобы не использовать мерзавец для своих проектов Xcode. У меня были хорошие результаты в управлении проектами Xcode с использованием стандартной командной строки git или GitX. .

У Шейна Витарана есть хороший набор .gitignore настроек, которые можно использовать в качестве отправной точки.


Добавление этих двух в мой .gitignore приводит к нарушению сборки xcode для клонов.
jkyle 02

39

Хороший способ «интегрировать» git с Xcode - использовать DTerm . Вы вызываете DTerm в плавающем окне с помощью комбинации клавиш. DTerm знает полный путь к текущему документу в редакторе.

Например, чтобы запустить сравнение с файлом, который вы редактируете:

1) Нажмите Ctrl-Return, чтобы открыть окно DTerm. (Эта комбинация клавиш настраивается).

2) введите git diff cmd-shift-V. Это перезапишет последнюю команду, когда вы начнете печатать и вставите имя текущего файла в окно. Поскольку ваш рабочий каталог настроен на родительский каталог выбранного файла, команда приятная и короткая.

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

Изменить : с 27 августа 2009 года DTerm является бесплатным. Если вы купили свою копию DTerm, обновление до следующей версии будет бесплатным, независимо от того, когда вы приобрели DTerm. См. Их сообщение в блоге

Изменить 2 : DTerm теперь доступен в Mac App Store. Будет интересно посмотреть, сдержали ли они обещание, данное в своем блоге.


8
Марк, ты даже не представляешь, насколько счастлив ты меня сделал. Не могу поверить, что живу без DTerm все это время!
Марк Оффлик,

Я столкнулся с мелочью: это cmd-shift-V, а не ctrl-shift-V.
Кортни Фолкнер,

Dterm просто потрясающий !!! - когда работает. Он очень глючит с их последней версией и последней версией 10.6.6. Я бы убил, чтобы это работало правильно!
Yuji 'Tomita' Tomita

Попробуйте удалить файл настроек. У меня с этим проблем не было. Пользуюсь уже давно. Используется ли ваш логин в качестве языка и символов для ввода?
Марк

15

В дополнение к настройкам .gitignore, упомянутым в сообщении выше, я добавил сгенерированные файлы в свой файл конфигурации.

build /
* .pyc
* ~ .nib /
* .pbxuser
* .perspective
* .perspectivev3
* .xcworkspace /
xcuserdata /

Это помогает избавиться от шума в моем депо.

Если мне нужно добавить сгенерированные файлы, я добавляю папку Release и сохраняю папки * .framework и * .app в каталоге моего проекта. Я добавляю все, что выпущу для группы тестирования, в папку Release и помечаю это.


10

Нет, нет, и, честно говоря, я весьма благодарен, поскольку поддержка SVN в Xcode показалась мне действительно ненадежной. После того, как я переехал в Git для моих личных проектов, я просто терминальное окно открытым , что я могу выстрелить git addи по git commitмере необходимости.


4

Xcode не имеет общедоступного API подключаемого модуля, поэтому нет возможности напрямую добавить поддержку git в Xcode.

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


3

Я не верю, что есть способ обеспечить поддержку плагинов для Xcode. Итак, пока Apple не разовьется до git, мы будем придерживаться сторонних инструментов и командной строки. Не то чтобы это плохо ...


3

Что ж, есть такая штука под названием git-cvsserver, которая позволяет git притворяться, что это CVS. Но я не знаю, как обстоят дела с этим или о поддержке CVS в Xcode.


3

В последней бета-версии Xcode 4 есть интеграция с git, однако она не устанавливает ее по умолчанию и не использует установленный в данный момент git.

Что мне нужно было сделать, так это установить опцию «Системные инструменты» в установщике Xcode. (Что по умолчанию пропускается) после этого организатор обнаружил, что мой проект уже находится под контролем git, и плавно интегрировал.


2

С Xcode 4, если вы хотите использовать свою собственную версию Git, вы можете создать символическую ссылку из / usr / bin / git туда, где вы установили свой двоичный Git



1

Вы можете использовать Xcode с репозиториями Git. Visual Studio Team Services предлагает бесплатные, частные и неограниченные репозитории Git в облаке. Вы можете использовать не только Xcode, но и Eclipse, Visual Studio, собственный интерфейс веб-браузера Team Services или любой другой редактор / IDE, который вам нравится. Также бесплатно поделитесь кодом с первыми 5 пользователями.

Видео на YouTube: https://youtu.be/S83kn0i4WYs


0

Я все равно пользуюсь внешними редакторами. Многие из них поддерживают команды git. Таким образом, git "интегрируется" в Xcode.


1
можете ли вы привести пример внешних редакторов с интеграцией git на Mac?
zakishaheen

0

Мне интересно, можно ли создать оболочку с использованием функций сценариев Xcode? проверьте: http://www.cimgf.com/category/version-control/git/

Кстати, если Xcode не может выполнить эту работу, eclipse может выполнить эту работу, но ему может не хватать Cocoa api и т.д.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.