Для того чтобы в 1C:EDT совместно работать над каким-нибудь проектом, вам необходимо уметь работать с удаленными репозиториями.
Удаленные репозитории представляют собой версии вашего проекта, сохраненные в интернете или еще где-то в сети. У вас может быть несколько удаленных репозиториев, каждый из которых может быть доступен для чтения или для чтения-записи.
Взаимодействие с другими разработчиками предполагает управление удаленными репозиториями, а также отправку и получение данных из них. Управление репозиториями включает в себя как умение добавлять новые, так и умение удалять устаревшие репозитории, а также умение управлять различными удаленными ветками, объявлять их отслеживаемыми или нет и так далее. В данном разделе вы рассмотрите некоторые из этих навыков.
Для того чтобы просмотреть список настроенных удаленных репозиториев, перейдите в перспективу Git и в панели Репозитории Git раскройте структуру своего репозитория и ветку Удаленные репозитории.
Если вы клонировали репозиторий, то увидите как минимум origin — стандартное имя для исходного репозитория.
Если вы раскроете эту ветку дальше, вы увидите настройки для чтения из этого репозитория и для записи в него. В каждой из них будет указан адрес (URI) репозитория.
В данном случае это репозиторий на сайте GitHub, подключенный по протоколу HTTPS.
В одном из предыдущих разделов вы уже видели пример работы с удаленным репозиторием — клонирование репозитория. Тогда вы, имея удаленный репозиторий, связывали его с локальным репозиторием и получали из удаленного репозитория разрабатываемый проект.
Сейчас вы познакомитесь с противоположным сценарием. У вас есть локальный репозиторий, в котором находится проект. Нужно связать этот репозиторий с удаленным репозиторием и поместить проект в него, чтобы другие разработчики смогли разрабатывать проект вместе с вами.
Для примера в качестве удаленного репозитория можно использовать бесплатный репозиторий на сайте GitHub.
Проще всего сразу отправить текущую ветку в удаленный репозиторий. В процессе отправки 1C:EDT настроит связь с этим репозиторием.
Для получения данных из удаленных репозиториев следует выполнить команду Получить. Таких команд в интерфейсе 1C:EDT несколько.
Когда вы клонируете репозиторий, команда (Клонировать репозиторий Git) автоматически добавляет удаленный репозиторий под именем origin, и настраивает ваш локальный репозиторий на отслеживание этого удаленного репозитория.
Для работы с таким репозиторием в панели Навигатор есть удобная команда в контекстном меню проекта. Она извлекает все наработки, отправленные другими на этот удаленный сервер после того, как вы склонировали его, или после того, как в предыдущий раз получили изменения с помощью команды Получить из origin.
Кроме этого есть «универсальная» команда,
, которая позволяет связаться с произвольным репозиторием и получить ссылки на все его ветки. Затем эти ветки в любой момент могут быть просмотрены или слиты.Важно отметить, что команда Получить из origin (или Получить из...) забирает данные в ваш локальный репозиторий, но не сливает их с какими-либо вашими наработками и не модифицирует то, над чем вы работаете в данный момент. Вам необходимо вручную слить эти данные с вашими, когда вы будете готовы, с помощью команды .
Если у вас есть локальная ветка, связанная с веткой удаленного отслеживания (обратитесь к разделу Ветвление в Git за более подробной информацией), то вы можете использовать команду , чтобы автоматически получить изменения из удаленной ветви и влить их в свою текущую ветвь.
Этот способ может для вас оказаться более простым и более удобным. Это особенно удобно потому, что по умолчанию при клонировании репозитория, Git автоматически настраивает вашу локальную ветку master на отслеживание удаленной ветки master на сервере, с которого вы клонировали (подразумевается, что на удаленном сервере есть ветка master). Для других веток это справедливо тоже.
В результате команда Получить и слить получает (Получить из origin) данные с сервера, с которого вы изначально склонировали, и автоматически пытается слить (Слить...) их с кодом, над которым вы в данный момент работаете.
Когда вы хотите поделиться своими наработками, вам необходимо отправить их в удаленный репозиторий — Навигатор. Эта команда срабатывает только в случае, если вы клонировали репозиторий с сервера, на котором у вас есть права на запись, и если никто другой с тех пор не выполнял команду Push to origin.
в контекстном меню проекта в панелиНапример, вы и другой разработчик одновременно клонировали удаленный репозиторий, а затем этот другой разработчик выполнил команду Push to origin. Если после этого команду Push to origin выполняете вы, то ваш Push to origin точно будет отклонен. Вам придется сначала получить изменения другого разработчика и объединить их с вашими — Получить и слить. Только после этого вам будет позволено выполнить Push to origin. См. раздел Ветвление в Git для более подробного описания, как отправлять данные в удаленный репозиторий.
Чаще всего необходимость отправить изменения в удаленный репозиторий возникает сразу после их фиксации, поэтому в панели Индексирование Git предусмотрена кнопка Фиксировать и отправить.
Эта команда фиксирует изменения в вашем локальном репозитории и сразу отправляет их в удаленный репозиторий. Для информации она показывает список коммитов, отправленных на сервер.
Если по какой-то причине удаленный репозиторий вам больше не нужен (например, вы сменили сервер, или больше не используете определенное зеркало, или, возможно, контрибьютор перестал быть активным), вы можете выполнить контекстную команду Удалить удаленный репозиторий, чтобы репозиторий не присутствовал в панели Репозитории Git.
По материалам книги Pro Git (авторы Scott Chacon и Ben Straub, издательство Apress). Книга распространяется по лицензии Creative Commons Attribution Non Commercial Share Alike 3.0 license.