Добавление репозитория с локального компьютера в GitHub Desktop
Вы можете добавить любой репозиторий Git в GitHub Desktop, даже если это не репозиторий GitHub.
Platform navigation
Совет. Вы можете добавить репозиторий Git с локального компьютера в GitHub Desktop, перетащив папку в окно GitHub Desktop. Если перетащить в GitHub Desktop несколько папок Git одновременно, каждая из них будет добавлена в виде отдельного репозитория Git.
- В строке меню выберите «Файл«, а затем нажмите кнопку «Добавить локальный репозиторий«.
В окне «Добавить локальный репозиторий» нажмите кнопку » Выбрать. «, а затем используйте окно Finder для перехода к локальному репозиторию, который требуется добавить.
- В строке меню выберите «Файл«, а затем нажмите кнопку «Добавить локальный репозиторий«.
В окне «Добавить локальный репозиторий» нажмите кнопку «Выбрать. «, а затем используйте Windows Обозреватель для перехода к локальному репозиторию, который требуется добавить.
Использование локального репозитория
По этому сценарию вы отправляете изменения из своего локального репозитория в Plesk, а затем Plesk развертывает эти изменения на вашем сайте.
Создать репозиторий Git
Чтобы создать новый репозиторий Git для своего домена, перейдите на страницу Сайты и домены и нажмите Git. Если вы уже создали репозитории Git для своего домена через Plesk, нажмите Добавить репозиторий. Вы увидите страницу создания нового репозитория:
Прежде всего, нужно выбрать, где будет храниться ваш код. В этом сценарии выберите Локальный репозиторий на вашей рабочей станции.
Репозиторий Git в Plesk. Укажите имя репозитория. По умолчанию используется имя домена с суффиксом .git.
В разделе Ваш сайт укажите следующее:
-
Режим развертывания. По умолчанию используется Автоматическое развертывание. Это означает, что все изменения, переданные в репозиторий Git, будут автоматически развернуты на рабочем сайте. Если вы хотите изменить режим развертывания, нажмите ссылку автоматически развернуты и выберите другую опцию в открывшемся окне Режим развертывания. Если выбрано Развертывание вручную, вам придется вручную развертывать файлы из репозитория Git на вашем хостинге. Если выбрано Без развертывания, файлы не будут развернуты на рабочем сайте (это можно использовать, например, для хранения и обмена кодом).
Нажмите OK. Новый репозиторий будет создан и появится на странице Git.
Показываемый URL-адрес репозитория зависит от используемого вами протокола передачи данных. Вы можете выбрать один из следующих протоколов:
- SSH (только для Linux) ― этот протокол используется по умолчанию, если на домене включен SSH-доступ для веб-хостинга. Чтобы настроить доступ по SSH для домена, перейдите на страницу Сайты и домены >Доступ к веб-хостингу и в меню Доступ к серверу по SSH выберите /bin/bash или /bin/sh. В этом случае URL репозитория похож на user1@example.net:~/repos/example.git.
- HTTPS ― этот протокол используется по умолчанию, если запрещен доступ по SSH, и для домена настроен SSL/TLS (Настройки хостинга > Поддержка SSL/TLS). В этом случае URL-адрес похож на https://user1@example.net/plesk-git/example.git.
- HTTP ― этот протокол используется по умолчанию, если запрещен доступ по SSH, и для домена не настроен SSL/TLS. В этом случае URL-адрес репозитория похож на http://user1@example.com/plesk-git/example.git.
Следуйте инструкции, которую можно найти по ссылке Справка, чтобы инициализировать локальный репозиторий.
Когда репозиторий инициализирован, можно просматривать информацию о записях изменений и имя активной ветки на странице Сайты и домены > Git. По умолчанию для работы Plesk с используется основная ветка. Вы можете потом добавить другие ветки (смотрите раздел Изменить ветку или путь ).
Теперь вы можете записать изменения файлов вашего сайта в локальный репозиторий и передать их в репозиторий сервера.
Передать и развернуть файлы
Когда вы записываете изменения файлов вашего сайта из локального репозитория и передаете их в репозиторий сервера, вы можете увидеть информацию о записи изменений на странице Сайты и домены > Git.
По умолчанию в Plesk используется режим Автоматического развертывания. Это означает, что как только файл передается в репозиторий, он немедленно развертывается в целевой папке (при необходимости можно отключить этот режим, смотрите далее раздел Выбрать режим развертывания ).
Например, если вы записали изменения и передали файл index.html с текстом “Привет! Добро пожаловать на мой сайт!” в репозиторий Git, вы можете тут же открыть адрес сайта и увидеть изменения.
Изменение ветки или пути
Развертывание из новой ветки
Обычно работают с несколькими ветками в одном репозитории. В каждый момент активной может быть только одна ветка. По умолчанию для развертывания используется основная ветка.
Чтобы добавить еще одну ветку, ее нужно создать в вашем локальном репозитории. Например, ветку dev можно добавить с помощью команд:
git checkout dev
Затем записать изменения файлов в эту ветку и передать в серверный репозиторий с помощью команд:
git commit -m «изменения в ветку»
git push -u origin dev
Теперь вы можете выбрать одну из двух активных веток. Перейдите на страницу Сайты и домены > Git, нажмите ссылку Изменить ветку и путь и выберите ветку в открывшемся окне в меню Ветка.
Когда вы выберете новую ветку и нажмете ОК, Plesk покажет новую активную ветку.
Изменение пути для развертывания
По умолчанию, для публикации файлов Git на вашем сайте используется папка /httpdocs . Если вы хотите изменить путь для развертывания, нажмите ссылку Изменить ветку и путь и выберите новую папку в открывшемся окне. Вы также можете создать новую папку, нажав кнопку Создать новую папку.
Выбор режима развертывания
Чтобы выбрать режим развертывания для репозитория, нажмите Настройки репозитория и выберите одну из опций в меню Выбрать режим развертывания:
- Автоматическое развертывание. Plesk будет разворачивать все изменения на рабочем сайте, как только они будут переданы в репозиторий Plesk.
- Развертывание вручную. Вам нужно будет вручную развернуть файлы, нажав кнопку Равернуть из репозитория на странице Сайты и домены > Git. Также можно вручную развернуть файлы, нажав кнопку Развернуть возле названия репозитория на странице Сайты и домены.
- Без развертывания (хостинг репозитория). Файлы не будут развернуты на рабочем сайте. Эту опцию можно использовать, например, когда вы хотите использовать репозиторий Git только для хранения кода.
Включение дополнительных действий развертывания
В большинстве случаев публикации сайта недостаточно для его полного развертывания. Например, при использовании таких платформ, как Ruby on Rails, вам может потребоваться выполнить задачу по переносу данных после развертывания с помощью подобной команды: bin/rails db:migrate .
Plesk предоставляет возможность настроить ряд дополнительных действий, которые будут выполняться каждый раз при развертывании фалов на сайте.
Перейдите на страницу Сайты и домены > Git, нажмите Настройки репозитория, выберите Включить дополнительные действия развертывания и укажите shell-команды, которые должны выполняться каждый раз при развертывании из этого репозитория. Каждую команду нужно начинать с новой строки.
Примечание: Если пользователю запрещен доступ по SSH в Linux, все указанные команды будут выполняться в chrooted-окружении. Домашняя папка системного пользователя подписки является корневой папкой файловой системы для этой подписки, и могут быть запущены только исполняемые файлы из ограниченной среды chroot. Например, если путь к вашему сайту /var/www/vhosts/example.com/httpdocs , то в chrooted-окружении этот путь будет ./httpdocs , таким образом, вы не сможете выполнять команды за пределами одного уровня выше папки /httpdocs .
Просмотр журналов записи изменений в репозиторий
Для просмотра всей истории записи изменений в репозиторий для текущей ветки, перейдите на страницу Сайты и домены > Git и нажмите ссылку Журналы записи изменений в репозиторий. Для каждой записи изменений показывается следующая информация: время, уникальный идентификатор, имя пользователя и сообщение о записи изменений. Нажмите Обновить, чтобы обновить журнал записи изменений.
Вы можете использовать фильтры по любому из параметров для поиска в журнале записи изменений. Например, вы можете найти все записи изменений, сделанные определенным пользователем начиная с определенной даты. Нажмите кнопку , введите параметры поиска и нажмите Поиск.
Переименование или удаление репозитория
Вы в любое время можете переименовать репозиторий. Например, завершив развертывание, вы можете захотеть переименовать репозиторий из website-dev в website, чтобы не запутаться. Перейдите на страницу Сайты и домены > Git, нажмите Настройки репозитория, и укажите новое имя в поле Имя репозитория.
Обратите внимание на то, что после переименования репозитория вам нужно в настройках своего локального репозитория указать новый URL-адрес переименованного репозитория с помощью команды:
git remote set-url origin [новый URL]
Например, при переименовании репозитория из example в example1, выполните команду:
git remote set-url origin user1@example.com:~/repos/example1.git
Чтобы удалить репозиторий, нажмите ссылку Удалить репозиторий на странице Сайты и домены > Git. В этом случае Plesk удалит только репозиторий, целевая папка с опубликованными данными останется.
Настройка репозитория
Этот обучающий материал включает в себя обзор настройки репозитория в системе контроля версий Git. На этой странице вы узнаете, как инициализировать репозиторий Git для нового или существующего проекта. Ниже представлены примеры жизненного цикла для репозиториев, созданных локально и клонированных из удаленных репозиториев. Для работы с этим руководством требуются начальные знания о работе с интерфейсом командной строки.
В данном руководстве обсуждаются следующие основные вопросы:
- Инициализация нового репозитория Git
- Клонирование существующего репозитория Git
- Коммит измененной версии файла в репозиторий
- Конфигурирование репозитория Git для удаленной совместной работы
- Распространенные команды для управления версиями Git
По окончании данного модуля вы должны уметь создавать репозиторий Git, использовать основные команды Git, выполнять коммит измененного файла, просматривать историю проекта и настраивать соединение с сервисом хостинга Git (Bitbucket).
Что такое репозиторий Git?
Репозиторий Git — это виртуальное хранилище проекта. В нем можно хранить версии кода для доступа по мере необходимости.
Инициализация нового репозитория: git init
Для создания нового репозитория используется команда git init . Команду git init выполняют только один раз для первоначальной настройки нового репозитория. Выполнение команды приведет к созданию нового подкаталога .git в вашем рабочем каталоге. Кроме того, будет создана новая главная ветка.
Создание версии существующего проекта с использованием нового репозитория Git
В этом примере предполагается, что у вас уже есть папка проекта, в которой вы и хотите создать репозиторий. Выполните команду cd для перехода к папке проекта, а затем выполните команду git init .
Связанные материалы
git branch
СМ. РЕШЕНИЕ
Изучите Git с помощью Bitbucket Cloud
cd /path/to/your/existing/code
git init
Указание в команде git init существующего каталога проекта приведет к исполнению описанной выше инициализации, но только на уровне этого каталога проекта.
git init
Перейдите на страницу git init, чтобы получить подробные сведения о команде git init .
Клонирование существующего репозитория: git clone
Если проект уже настроен в центральном репозитории, наиболее распространенным способом создать его локальный клон является команда clone. Клонирование, как и команда git init , обычно выполняется один раз. Получив рабочую копию, разработчик в дальнейшем выполняет все операции контроля версий из своего локального репозитория.
git clone
Команду git clone выполняют для создания копии (клонирования) удаленного репозитория. В качестве параметра в команду git clone передается URL-адрес репозитория. Git поддерживает несколько различных сетевых протоколов и соответствующих форматов URL-адресов. В этом примере используется SSH-протокол Git. URL-адреса SSH в Git имеют следующий шаблон: git@HOSTNAME:USERNAME/REPONAME.git
Пример URL-адреса SSH в Git имеет вид: git@bitbucket.org:rhyolight/javascript-data-store.git , а ниже приведены значения шаблонных параметров:
- HOSTNAME: bitbucket.org
- USERNAME: rhyolight
- REPONAME: javascript-data-store
После исполнения команды последние версии файлов из главной ветки удаленного репозитория будут загружены и помещены в новый каталог. Имя нового каталога будет соответствовать параметру REPONAME. В данном случае это javascript-data-store . В каталоге будет вся история удаленного репозитория и только что созданная главная ветка.
Дополнительную информацию об использовании команды git clone и поддерживаемых форматах URL-адресов в Git см. на странице git clone.
Сохранение изменений в репозитории: git add и git commit
У вас появился репозиторий, созданный путем клонирования или инициализации. Теперь вы можете выполнять коммиты изменений в версиях файлов. В следующем примере предполагается, что вы настроили проект в каталоге /path/to/project . В этом примере предлагаются следующие шаги.
- Измените каталоги на /path/to/project
- Создайте новый файл CommitTest.txt с текстом ~«тест для обучения работе с Git»~
- С помощью команды git add добавьте файл CommitTest.txt в репозиторий проиндексированных файлов
- Создайте новый коммит с комментарием, описывающим, что именно было изменено в коммите
cd /path/to/project
echo "test content for git tutorial" >> CommitTest.txt
git add CommitTest.txt
git commit -m "added CommitTest.txt to the repo"
По завершении этого примера файл CommitTest.txt добавится к истории репозитория, и репозиторий будет отслеживать последующие изменения в файле.
В этом примере представлены две новые команды в Git: add и commit . Этот очень упрощенный пример. Подробнее обе команды объяснены на страницах git add и git commit. Команду git add часто используют с флагом —all . Команда git add —all добавляет все измененные и неотслеживаемые файлы в репозиторий и обновляет дерево изменений репозитория.
Совместная работа в разных репозиториях: git push
Важно понимать, что рабочая копия в Git существенно отличается от рабочей копии, получаемой при загрузке исходного кода из репозитория SVN. В отличие от SVN, в Git нет разницы между рабочими копиями и центральным репозиторием — все они являются полноценными репозиториями Git.
Поэтому совместная работа в Git принципиально отличается от совместной работы в SVN. В SVN работа строится на отношении между центральным репозиторием и рабочей копией, а модель совместной работы в Git основана на взаимодействии между репозиториями. Вместо загрузки рабочей копии в центральный репозиторий SVN в Git вы отправляете коммиты из одного репозитория в другой или копируете их в обратном направлении.
Вы легко можете задавать особую роль определенным репозиториям Git. Например, обозначив один из репозиториев Git как «центральный», вы можете воспроизвести централизованный процесс с использованием Git. Такой подход требует общих договоренностей, он не встроен в саму систему контроля версий.
Сравнение чистых и клонированных репозиториев
Если в предыдущем разделе («Инициализация нового репозитория») для настройки локального репозитория вы использовали команду git clone , ваш репозиторий уже готов к удаленной совместной работе. Команда git clone автоматически настроит репозиторий, в котором значение remote будет соответствовать URL-адресу Git, из которого был клонирован репозиторий. Это означает, что после изменений файла и выполнения коммита вы можете сразу выполнить команду git push , чтобы отправить эти изменения в удаленный репозиторий.
Если вы использовали команду git init для создания репозитория с нуля, у вас не будет удаленного репозитория, в который можно помещать изменения. Зачастую для инициализации нового репозитория пользователь переходит на сервис Git-хостинга (например, Bitbucket) и создает репозиторий там. Данный сервис предоставит URL-адрес Git, который затем можно добавить в локальный репозиторий Git. После этого можно выполнять команду git push в репозиторий на хостинге. После создания удаленного репозитория на выбранном хостинге вам понадобится обновить локальный репозиторий, выполнив привязку. Этот процесс описывается далее в руководстве по установке и настройке.
Если вы предпочитаете поддерживать собственный удаленный репозиторий, вам нужно создать «чистый репозиторий». Для этого команды git init и git clone принимают аргумент —bare . Наиболее популярная причина использования чистого репозитория — создание удаленного центрального репозитория Git
Конфигурирование и настройка: git config
После настройки удаленного репозитория его URL-адрес нужно добавить в локальный файл git config , а также создать вышестоящую ветку для локальных веток. Такую возможность предоставляет команда git remote .
git remote add
Эта команда привяжет удаленный репозиторий по адресу <remote_repo_url> к ссылке в вашем локальном репозитории <remote_name> . После привязки удаленного репозитория в него можно будет отправлять локальные ветки с помощью команды push.
git push -u
Эта команда поместит ветку локального репозитория с именем в удаленный репозиторий .
Дополнительную информацию о команде git remote см. на странице удаленной работы в Git .
Помимо конфигурирования URL-адреса удаленного репозитория, вам может потребоваться установить глобальные параметры Git, например имя пользователя или электронный адрес. Команда git config позволяет настроить инсталляцию Git (или отдельный репозиторий) из командной строки. С помощью этой команды можно установить любые настройки: от информации о пользователе до его предпочтений и характеристик репозитория. Ниже перечислены распространенные варианты конфигурации.
Git хранит варианты конфигурации в трех различных файлах, позволяющих ограничивать область видимости на уровне отдельных репозиториев (локальный), пользователя (глобальный) или всей системы (системный):
- Локальный: /.git/config — настройки на уровне репозитория.
- Глобальный: /.gitconfig — настройки на уровне пользователя. Здесь хранятся настройки с флагом —global.
- Системный: $(prefix)/etc/gitconfig — настройки на уровне всей системы.
Укажите имя автора, которое будет использоваться для всех коммитов в текущем репозитории. Обычно для настройки параметров конфигурации для текущего пользователя используется флаг —global .
git config --global user.name
Эта команда задает имя автора, которое будет использоваться для всех коммитов, выполненных текущим пользователем.
Добавление аргумента —local или выполнение команды без параметра уровня конфигурации приведет к установке значения user.name для текущего локального репозитория.
git config --local user.email
Эта команда задает адрес электронной почты автора, который будет использоваться для всех коммитов, выполненных текущим пользователем.
git config —global alias.
Создайте быстрые клавиши для команды Git. Это мощная возможность для создания собственных комбинаций клавиш для часто используемых команд Git. Ниже показан упрощенный пример:
git config --global alias.ci commit
Так создается команда ci , которую можно использовать как сокращение команды git commit . Подробнее об алиасах в Git см. на странице git config.
it config --system core.editor
Выберите текстовый редактор, используемый для таких команд, как git commit , для всех пользователей текущего компьютера. Аргумент должен представлять собой команду, запускающую нужный редактор (например, vi). В этом примере представлен аргумент —system . Аргумент —system устанавливает настройку на уровне всей системы, включая всех пользователей и все репозитории на компьютере. Дополнительную информацию об уровнях конфигурации см. на странице удаленной работы с git.
git config --global --edit
В текстовом редакторе откройте файл глобальной конфигурации для редактирования вручную. Подробное руководство по настройке текстового редактора для Git см. на странице Git config.
Пояснения
Все варианты конфигурации сохраняются в обычных текстовых файлах, так что команда git config — это всего лишь удобный интерфейс командной строки. Как правило, установку Git следует настраивать только при начале работы на новом компьютере. В подавляющем большинстве случаев понадобится только флаг —global . Одно из важных исключений — необходимость переписать электронный адрес автора. Вы можете поставить личный электронный адрес для личных репозиториев и репозиториев с открытым исходным кодом, а рабочий электронный адрес — для рабочих репозиториев.
Git хранит варианты конфигурации в трех различных файлах, что позволяет ограничивать область видимости на уровне отдельных репозиториев, пользователей или всей системы.
- /.git/config — настройки на уровне репозитория.
- ~/.gitconfig — личные настройки пользователя. Здесь хранятся настройки с флагом —global.
- $(prefix)/etc/gitconfig — настройки на уровне всей системы.
Если параметры, указанные в этих файлах, конфликтуют, локальные настройки переопределяют пользовательские настройки, которые в свою очередь переопределяют системные настройки. Если вы откроете один из этих файлов, вы увидите нечто подобное:
[user] name = John Smith email = john@example.com [alias] st = status co = checkout br = branch up = rebase ci = commit [core] editor = vim
Вы можете изменить эти значения вручную, эффект будет аналогичен использованию команды git config .
Пример
В первую очередь после установки Git требуется указать свое имя и адрес электронной почты, а также настроить некоторые параметры по умолчанию. Пример типичной начальной конфигурации показан далее.
Представьтесь репозиторию Git с помощью команды git config
git --global user.name "John Smith" git config --global user.email john@example.com
Выберите любимый текстовый редактор
git config --global core.editor vim
Добавьте алиасы по типу SVN
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.up rebase
git config --global alias.ci commit
Создастся файл ~ /.gitconfig , описанный в предыдущем разделе. Подробную информацию о команде git config см. на странице Git config.
Резюме
Мы показали, как создать репозиторий Git двумя способами: git init и git clone. Этим руководством можно пользоваться при необходимости управления исходным кодом ПО или другим контентом, при хранении которого требуется поддерживать версионность. Кроме того, были представлены команды git add, git commit, git push и git remote и показаны простые примеры их использования.
Мастер, удалённый, локальный репозитории, репозиторий и форк, в чём отличия?
Термины (T) и то как я их понимаю (Me): (T) Репозиторий Git — каталог файловой системы, в котором находятся: файлы конфигурации, файлы журналов операций, выполняемых над репозиторием, индекс расположения файлов и хранилище, содержащее сами контролируемые файлы. (Me) Репозиторий — папка, в которой находятся файлы проекта, index.html и т.д., но в отличие от просто папки на пк, эта папка находится на удалённом сервере (Гитхаб) и только поэтому мы не можем назвать ее просто папкой, а придумали для этого новое слово, которого конечно очень не хватало нашей памяти 🙂 (T) Локальный репозиторий — репозиторий, расположенный на локальном компьютере разработчика в каталоге. Именно в нём происходит разработка и фиксация изменений, которые отправляются в удалённый репозиторий. (Me) локальный репозиторий — репозиторий на пк, где происходит разработка и фиксируются изменения, которые отправляются на удалённый репозиторий, то есть по сути это и есть та же самая папка с файлами проекта на нашем пк, которую никаким репозиторием и называть то не надо было, но мы назвали, ок. (T) Мастер (Master) — главная или основная ветка репозитория. мастер-репозиторий, главный репозиторий, от него начинаются форки. (Me) Мастер-репозиторий — папка с файлами проекта находящаяся на удалённом сервере (Гитхаб) к которой есть доступ у лица обладающего правами администратора на эту папку, и через которое (лицо), идёт всё взаимодействите с файлами данной папки (пулреквесты, и т.д.), называющаяся словом «мастер» только потому что с файлами из нее нельзя взаимодействовать напрямую, (с целью сохранения достигнутого в проекте прогресса) но можно по согласованию с лицом, которое имеет над этой папкой — власть. (но если открыт публичный доступ то можно сделать форк). (T) Форк-репозиторий — копия мастер-репозитория находящаяся на сервере Гитхаб. (Me) Форк-репозиторий — скопированная в свой профиль на гитхабе версия мастер-репозитория, с которой можно спокойно работать, не боясь нанести ущерба тому, что уже сделано. (T) Удалённый репозиторий — репозиторий, находящийся на удалённом сервере. Это общий репозиторий, в который приходят все изменения и из которого забираются все обновления. (Me) удалённый репозиторий — подождите, и как описанный выше термин отличить от мастер-репозитория? или как «удалённый репозиторий» отличить от простого термина «репозиторий» (ведь мы придумали новое слово «репозиторий» как раз потому, чтобы подчеркнуть удалённость нашей папки и нахождение её на удаленном сервере, а не нахождение её на пк). получается если расшифровать «удалённый репозиторий» получится «удалённая, удалённая от пк папка»? То есть какая-то супер удалённая папка? Помогите разобраться.
Отслеживать
задан 25 июл 2022 в 12:56
61 2 2 бронзовых знака
1) git-репозиторий может находиться где угодно не привязан ни к каким серверам — именно это отличает децентрализованный git от централизованных аналогов вроде svn; 2) Не любая папка с файлами может считаться git-репозиторием; 3) Слово «мастер» это всего лишь соглашение между людьми и оно не имеет никакого технического смысла (и кстати от этого слова в последнее время массово отказываются)
25 июл 2022 в 13:11
4) Слово «форк» это тоже всего лишь соглашение, которое в общем случае тоже не имеет никакого отношения к гитхабу, а с точки зрения гитхаба он не любую копию считает форком; 5) В принципе никто не запрещает разместить «удалённый» репозиторий на том же самом компьютере, просто в другой папке (и делать pull/push в эту папку), так что я не вижу смысла рассуждать о масштабах «удалённости»