GitHub Desktop официально поддерживает Windows и macOS — значит, один учебный репозиторий можно использовать на обеих платформах. Чтобы продолжить задание, отправьте изменения с Windows в репозиторий, получите их на удалённом Mac и откройте проект в Xcode. Само приложение не переносит файлы автоматически: между компьютерами нужно выполнять операции с репозиторием. Документация GitHub о поддерживаемых платформах.
Подойдёт, если у вас есть доступ к учебному репозиторию и нужно передавать код между компьютерами, сохраняя историю изменений.
Не подойдёт, если вы рассчитываете запускать Xcode непосредственно в Windows или ожидаете, что файлы появятся на втором компьютере без отправки и получения изменений.
Эта инструкция предназначена для студентов, которые пишут код на Windows и начинают изучать SwiftUI или разработку для iOS.
Она также пригодится, если работа начинается на школьном компьютере, а продолжать её нужно на удалённом Mac.
Если курс рассчитан только на Windows и не использует Xcode, переход на Mac может не понадобиться.
00Подготовка репозитория для двух компьютеров
GitHub Desktop помогает вести историю проекта: просматривать изменённые файлы, создавать коммиты и передавать их в удалённый репозиторий. Репозиторий здесь служит журналом версий и местом обмена изменениями, а не папкой, которая непрерывно копирует каждый файл между устройствами.
Перед началом проверьте, что вы можете открыть репозиторий курса и отправлять в него изменения. Если он принадлежит преподавателю или другому участнику, владелец должен выдать подходящий доступ; правила ролей в личных репозиториях приведены в справке GitHub о разрешениях. Если отправка недоступна или операция завершается отказом в доступе, уточните права у владельца. Не создавайте копию под другим именем, пока не выясните, как именно курс принимает задания.
| Способ передачи | Что происходит | Когда использовать |
|---|---|---|
| Репозиторий и GitHub Desktop | Изменения записываются в историю, отправляются в репозиторий и затем получаются на другом компьютере | Основной способ продолжать один проект на Windows и удалённом Mac |
| Ручное копирование папки | На другое устройство переносится копия файлов, но история версий и состояние отправки могут быть неясны | Только если преподаватель прямо требует архив или репозиторий недоступен |
| Репозиторий и Xcode | Изменения проекта можно просматривать и вести средствами Xcode; фактическая передача зависит от операций с репозиторием | Если на Mac удобнее работать с исходниками через Xcode |
Для нового учебного проекта сначала следуйте инструкции курса: преподаватель может уже создать репозиторий и указать, куда сдавать работу. Если такого указания нет, согласуйте, должен ли репозиторий быть закрытым или доступным участникам курса, прежде чем добавлять туда исходники. GitHub Desktop доступен на Windows и macOS, но установка приложения на обе платформы сама по себе не предоставляет доступ к репозиторию и не отправляет код.
Что обеспечивает GitHub Desktop между Windows и удалённым Mac?
Связующим звеном служит удалённый репозиторий. На Windows вы фиксируете подготовленное изменение и отправляете его; на Mac проверяете обновления и получаете актуальную версию. Затем правки, сделанные на Mac, проходят тот же путь в обратном направлении.
Важно различать операции. Коммит сохраняет выбранные изменения в истории локальной копии проекта. Push отправляет подготовленные коммиты в удалённый репозиторий. Проверка удалённых изменений показывает, есть ли там новые коммиты, а получение переносит их в локальную копию. Эти действия не равнозначны: можно создать коммит и забыть отправить его, а можно получить обновления и ещё не открыть проект в Xcode. Порядок отправки описан в инструкции GitHub Desktop по push, а получение и отправка обновлений — в документации о синхронизации ветки.
| Действие | Где остаются изменения после действия | Что делать дальше |
|---|---|---|
| Сохранить файл | В папке проекта на текущем компьютере | Проверить список изменений в GitHub Desktop |
| Создать коммит | В истории локальной копии проекта | Отправить коммит, если его нужно получить на другом устройстве |
| Выполнить push | В удалённом репозитории, доступном участникам с нужными правами | На другом компьютере проверить и получить обновления |
| Получить изменения | В локальной копии проекта на принимающем компьютере | Открыть нужный файл или проект в Xcode |
| Изменить один участок на двух устройствах | В двух наборах локальных изменений | Сравнить версии и разрешить конфликт до следующей отправки |
Практическое правило простое: не завершайте работу на удалённом Mac, если нужные изменения ещё не отправлены. И не считайте задание переданным только потому, что коммит отображается в истории на Windows. Для продолжения на втором компьютере проверьте, что отправка завершилась успешно.
01Передача задания с Windows
На Windows можно написать и сохранить часть кода, даже если на компьютере нет Xcode. Но это не заменяет проверку приложения в macOS: Windows помогает подготовить и версионировать исходники, а проект для iOS нужно открывать и проверять в Xcode на Mac.
Сначала откройте репозиторий курса. Если локальной копии ещё нет, клонируйте репозиторий в GitHub Desktop. Если копия уже существует, выберите её и убедитесь, что работаете в нужной ветке. Ветка — отдельная линия изменений; для начального задания обычно достаточно той, которую указал преподаватель. Не переключайтесь на незнакомую ветку только потому, что её название кажется подходящим.
Если курс выдал готовую папку без репозитория, уточните у преподавателя порядок её подключения. Не создавайте новый репозиторий поверх чужой структуры наугад: в результате можно потерять связь с исходным заданием или отправить работу не туда. Полезно заранее проверить, что открыта именно папка учебного проекта, а не её родительская папка или старая копия.
После изменения файлов сохраните их в редакторе, затем просмотрите список изменений в GitHub Desktop. Откройте сравнение версий — diff — и убедитесь, что оно показывает именно нужную часть задания. Если в списке оказались случайно изменённые файлы, сначала выясните причину: это может быть другая локальная версия проекта, настройка редактора или файл, который курс просит не менять. Не отмечайте все изменения вслепую.
Затем создайте коммит с коротким понятным описанием, например «Добавлена форма профиля» или «Исправлена проверка поля». Описание должно помогать понять содержание правки и при проверке, и при возвращении к проекту через несколько дней. После коммита выполните push и дождитесь подтверждения, что удалённый репозиторий получил изменения. Если приложение сообщает об ошибке, не предполагайте, что отправка всё же прошла: проверьте состояние ветки и сообщение GitHub Desktop.
Почему коммит ещё не означает, что работа доступна на Mac?
Коммит может существовать только в локальной копии на Windows. Пока он не отправлен, удалённый репозиторий и второй компьютер не получают эту версию. Поэтому перед завершением сеанса проверьте результат push, а не только наличие записи в истории. Если курс использует отдельную ветку для сдачи, убедитесь, что изменения отправлены именно туда.
| Проверка перед передачей | Что должно быть видно | Если проверка не пройдена |
|---|---|---|
| Папка проекта | Изменённые файлы относятся к текущему заданию | Остановитесь и откройте нужный локальный репозиторий |
| Содержимое diff | Нет случайных правок и непонятных файлов | Разберите каждое изменение до коммита |
| Коммит | Описание соответствует сделанной работе | Уточните содержание изменений и создайте понятный коммит |
| Отправка | GitHub Desktop подтверждает передачу изменений | Проверьте доступ, подключение и состояние ветки |
| Репозиторий курса | Изменения попали в нужный проект и ветку | Не переходите к Mac, пока не выясните, куда ушёл push |
Так передаются исходники iOS-проекта с Windows на удалённый Mac: через репозиторий, а не через фоновое копирование папки. Такой порядок позволяет проследить, какие изменения были отправлены и в какой версии проекта они находятся. Однако он сам по себе не подтверждает, что приложение собирается: проект всё равно нужно открыть и проверить в нужной среде.
02Получение проекта и проверка в Xcode на Mac
На удалённом Mac сначала откройте GitHub Desktop и войдите в учётную запись, которой разрешён доступ к репозиторию курса. Если проекта на этом Mac ещё нет, клонируйте репозиторий. Если локальная копия уже существует, выберите её и проверьте удалённые изменения. Получите обновления до открытия проекта, чтобы Xcode увидел последнюю отправленную версию, а не прежнее состояние папки.
Далее найдите файл или структуру проекта, которую курс просит открывать в Xcode. В учебной папке может быть отдельный файл проекта или рабочая область; не выбирайте автоматически первый файл с похожим названием, если рядом есть несколько вариантов. Уточните в инструкции курса, какой файл следует открыть и какие исходники нужно проверить. Apple описывает настройку проекта для работы с системой контроля версий в документации Xcode о source control. Это помогает понять связь между проектом Xcode и репозиторием, но указания преподавателя о структуре конкретного задания остаются главными.
Откройте проект и проверьте, что доступны нужные учебные файлы: например, экран или исходник, который вы редактировали на Windows. Успешное открытие проекта и нахождение нужного файла — минимальная проверка передачи. Если задание включает сборку или запуск, выполните эти действия отдельно и запишите сообщения об ошибках. Получение исходников не гарантирует, что проект уже собирается без замечаний: например, проблема может относиться к настройкам проекта или к другому файлу, которого не было в репозитории.
Apple также описывает управление изменениями из Xcode в руководстве по source control management. На Mac можно использовать инструменты Xcode или GitHub Desktop, но важно понимать, в каком приложении вы создали коммит и какие изменения в него вошли. Если в обоих приложениях есть незавершённые правки, сначала разберитесь с их списком, а затем выполняйте отправку.
Для проверки передачи не ограничивайтесь тем, что проект виден в окне Xcode. Перейдите к файлу, который менялся на Windows, и убедитесь, что в нём содержится нужный фрагмент. Если его нет, не редактируйте проект дальше: вернитесь к GitHub Desktop, проверьте выбранный репозиторий и ветку, а затем выясните, был ли отправлен коммит с Windows. Это быстрее и безопаснее, чем пытаться восстановить пропущенную правку после нескольких новых изменений.
03Возврат изменений с удалённого Mac на Windows
После правки проекта на Mac сохраните файлы, затем проверьте изменения в GitHub Desktop или в средствах управления исходным кодом Xcode. Просмотрите список файлов и сравнение строк, чтобы в коммит попала работа над заданием, а не случайные локальные настройки. Если изменения готовы к передаче, создайте коммит с понятным описанием и отправьте его в тот же репозиторий и нужную ветку.
Вернувшись к Windows, не начинайте редактировать старую локальную копию сразу. Сначала проверьте, есть ли новые изменения в удалённой ветке, получите их и посмотрите, какие файлы обновились. После этого откройте нужный файл и убедитесь, что изменения с Mac присутствуют в Windows. Так вы избежите ситуации, когда обе копии расходятся, а следующая отправка приводит к конфликту.
Конфликт возможен, если на обоих компьютерах изменили один и тот же участок кода до обмена изменениями. Это не обязательно означает, что проект повреждён: система контроля версий просит выбрать итоговое содержание конфликтующего фрагмента. Не решайте проблему принудительной перезаписью и не удаляйте свою локальную версию ради быстрого получения обновлений. Apple объясняет объединение изменений в репозитории в документации Xcode о разрешении конфликтов.
Если GitHub Desktop сообщает о конфликте, остановитесь и сравните обе версии. Сохраните копию своей работы, выясните, какие строки пришли с другого компьютера, и только после этого выбирайте итоговый вариант. Не отправляйте результат, пока не убедились, что нужный код остался в файлах.
Чтобы реже сталкиваться с конфликтами, завершайте передачу с одного устройства до начала следующей независимой правки: отправьте изменения с текущего компьютера, получите их на втором и только затем продолжайте. Если курс требует параллельной работы или использует несколько веток, следуйте его правилам. Не объединяйте ветки и не меняйте порядок сдачи по догадке.
04Проверка файлов и безопасная сдача
Не каждый файл в папке проекта нужно публиковать в репозитории. Исходный код и необходимые проектные файлы обычно нужны для продолжения работы, а временные результаты сборки, кеши и отдельные настройки компьютера могут быть лишними. Но точный состав зависит от проекта и требований преподавателя: не исключайте файл только потому, что он не похож на Swift-код. Если сомневаетесь, уточните, какие файлы должны быть доступны для проверки.
| Тип содержимого | Обычное решение | Что перепроверить |
|---|---|---|
| Исходники Swift и необходимые ресурсы приложения | Как правило, включать в историю проекта | Нужны ли они для открытия и проверки задания |
| Файлы проекта и настройки для совместной работы | Включать, если от них зависит проект или курс | Не исключены ли они ошибочно правилом игнорирования |
| Временные файлы сборки и кеши | Обычно не добавлять | Не содержит ли конкретная папка материал, требуемый заданием |
| Локальные настройки среды | Проверить перед отправкой | Нужны ли они другим участникам или только вашему компьютеру |
| Пароли, токены и закрытые ключи | Не добавлять в репозиторий | Не попали ли они в код, настройки, коммит или историю |
Git использует правила игнорирования, чтобы не показывать выбранные файлы среди обычных изменений. Основы описаны в документации GitHub об игнорировании файлов, а в шаблоне правил для Swift-проектов можно сверить распространённые примеры. Шаблон не заменяет требования курса: если важный файл проекта случайно игнорируется, его нужно включить в репозиторий, иначе на удалённом Mac может не хватить данных для открытия проекта.
Особенно внимательно проверяйте учётные данные. Пароль, токен доступа и закрытый ключ не следует записывать в исходный код, обычный файл настроек проекта или описание коммита. Если секрет уже попал в репозиторий, простого удаления файла из текущей версии может быть недостаточно: значение может сохраниться в истории. GitHub описывает удаление чувствительных данных из репозитория; при случайной публикации следуйте этой инструкции и измените раскрытый секрет.
Контрольный список перед завершением занятия
- [ ] Открыт нужный репозиторий курса, а доступ к нему подтверждён.
- [ ] Изменения проверены в списке GitHub Desktop и в сравнении версий.
- [ ] В коммит включены нужные исходники и проектные файлы, а временные или личные данные проверены отдельно.
- [ ] Коммит создан с описанием, по которому понятно содержание работы.
- [ ] Отправка завершилась успешно, и изменения находятся в удалённом репозитории.
- [ ] На втором компьютере обновления получены до начала новой правки.
- [ ] Проект открыт в Xcode, а нужные для задания файлы найдены.
- [ ] Изменения с Mac отправлены обратно, а Windows обновлён без принудительной перезаписи.
- [ ] В проекте и истории коммитов нет паролей, токенов или закрытых ключей.
Если доступ к удалённой среде или порядок работы вызывают вопросы, можно свериться с разделом помощи по использованию сервиса. Windows удобен для написания и подготовки изменений, но не запускает Xcode и не позволяет проверить проект в macOS. GitHub также не избавляет от необходимости вручную отправлять и получать изменения, а перенос папок через внешние носители затрудняет контроль версий и может оставить неясным, какая копия актуальна.
Если курс действительно требует Xcode, а собственного Mac нет, удалённый Mac позволяет выполнять эту часть работы без покупки отдельного компьютера. Если курс не требует macOS или нужен длительный постоянно доступный компьютер, сначала сравните аренду с локальным устройством и требованиями учебной программы. Условия можно проверить на странице тарифов NUKCLOUD. Для занятия или проверки проекта аренду можно рассматривать как временную учебную среду, оставляя репозиторий курса единственным источником актуальной версии кода.