Как инициализировать репозиторий в существующей папке
Если вы хотите начать работать с Git, прочитав всего одну главу, то эта глава — то, что вам нужно. Здесь рассмотрены все базовые команды, необходимые вам для решения подавляющего большинства задач, возникающих при работе с Git. После прочтения этой главы вы научитесь настраивать и инициализировать репозиторий, начинать и прекращать контроль версий файлов, а также подготавливать и фиксировать изменения. Мы также продемонстрируем вам, как настроить в Git игнорирование отдельных файлов или их групп, как быстро и просто отменить ошибочные изменения, как просмотреть историю вашего проекта и изменения между отдельными коммитами (commit), а также как отправлять (push) и получать (pull) изменения в/из удалённого (remote) репозитория.
Создание Git-репозитория
Обычно вы получаете репозиторий Git одним из двух способов:
Вы можете взять локальный каталог, который в настоящее время не находится под версионным контролем, и превратить его в репозиторий Git, либо
Вы можете клонировать существующий репозиторий Git из любого места.
В обоих случаях вы получите готовый к работе Git репозиторий на вашем компьютере.
Создание репозитория в существующем каталоге
Если у вас уже есть проект в каталоге, который не находится под версионным контролем Git, то для начала нужно перейти в него. Если вы не делали этого раньше, то для разных операционных систем это выглядит по-разному:
а затем выполните команду:
Если вы хотите добавить под версионный контроль существующие файлы (в отличие от пустого каталога), вам стоит добавить их в индекс и осуществить первый коммит изменений. Добиться этого вы сможете запустив команду git add несколько раз, указав индексируемые файлы, а затем выполнив git commit :
Мы разберем, что делают эти команды чуть позже. Теперь у вас есть Git-репозиторий с отслеживаемыми файлами и начальным коммитом.
Клонирование существующего репозитория
git init
Команда git init создает новый репозиторий Git. С ее помощью можно преобразовать существующий проект без управления версиями в репозиторий Git или инициализировать новый пустой репозиторий. Большинство остальных команд Git невозможно использовать без инициализации репозитория, поэтому данная команда обычно выполняется первой в рамках нового проекта.
Использование
Сравнение git init и git clone
Шаблоны git init
Доступные по умолчанию шаблоны — это удобный справочный ресурс, в котором можно найти примеры использования возможностей шаблонов. В таких шаблонах в том числе показана настройка полезной функции Git hook. При создании шаблона можно задать нужные элементы Git hook. Это позволит инициализировать новые репозитории Git с готовыми к работе элементами hook. Дополнительные сведения о Git hook см. на странице о Git hook.
Настройка
Вывод только критических сообщений, сообщений об ошибках и предупреждений. Вывод других сообщений блокируется.
Создание чистого репозитория (см. раздел «Чистые репозитории» выше).
Указание каталога с шаблонами для использования (см. раздел «Шаблоны git init» выше).
Назначение прав доступа для нового репозитория. Данный параметр позволяет с помощью указания прав Unix задать пользователей и группы, которым разрешено осуществлять операции push и pull в репозитории.
Начало работы с Git
Git — система контроля версий. GitHub — сайт, предоставляющий Git-хостинг. Он служит заменой Git-сервера, если не хочется разворачивать сервер самостоятельно. Это место, где можно создать удаленный репозиторий и хранить там проект.
Необязательно использовать именно GitHub, помимо него существуют и другие Git-хостинги (например Assembla, Beanstalk). Но нельзя обойтись без системы Git на своем локальном компьютере. Поэтому рассмотрим, как ее установить.
Установка Git на компьютер
Скачать установочный файл последней версии можно здесь, Git можно установить на разные операционные системы, мы будем ставить на Windows.
Установка Git
По умолчанию устанавливается две программы: Git Bash — командная строка и Git GUI — графическая оболочка. Большинство пользуется командной строкой Git Bash. Мы тоже будем работать с Git Bash.
Если Git уже установлен с другим редактором, то сменить редактор по умолчанию можно так:
После установки Git вы сможете его запустить в нужной папке, щелкнув ее правой кнопкой мыши и выбрав пункт «Git Bash Here» — очень удобная опция, так как не придется переходить в репозиторий из командной строки. То есть щелкать правой кнопкой мыши надо будет папку-репозиторий.
Запуск Git на папке репозитория (только щелкайте Bash)
Итак, установили систему Git. Теперь надо создать аккаунт на GitHub и отправить туда свой проект.
Создание аккаунта на GitHub
Тут ничего сложного — понадобится имя пользователя, электронная почта и пароль.
После этого надо создать репозиторий на GitHub (create project). Он будет доступен по адресу:
То есть если мы зарегистрируемся с логином javakitt и создадим репозиторий example, то он будет доступен по адресу:
Теперь есть два варианта:
Оба эти варианты расписаны на сайте — сразу после создания репозитория GitHub выдает страницу с командами, годными для каждого случая.
Мы рассмотрим второй вариант (вдруг у вас уже есть файлы).
Инициализация репозитория в локальной папке
Итак, предположим, что вы уже начали работать над проектом, то есть рабочая папка на локальном компьютере у вас есть.
Чтобы инициализировать репозиторий в рабочей папке, надо открыть в ней Git Bash (правая кнопка мыши, у нас это папка hello) и выполнить команду:
В рабочей папке появится папка .git, что означает, что репозиторий инициализирован. Теперь hello не просто папка проекта, но и git-репозиторий.
Добавление и фиксация изменений
После инициализации репозитория файлы из папки сами не попадут в репозиторий. Пока что статус их — неотслеживаемые, то есть никакого отношения к репозиторию они не имеют, хоть и лежат в папке. Сначала их надо добавить:
Эта команда добавит все файлы (точка означает все файлы, но можно отдельную папку или файл добавить). Теперь добавленные файлы находятся в состоянии подготовленные. Но это еще не все. Их надо зафиксировать:
Эта команда делает снимок репозитория, то есть состояние репозитория, которое хранится в истории и к которому можно впоследствии вернуться. Здесь не указываются конкретные файлы. Просто все подготовленные ранее файлы будут зафиксированы.
Если сразу не указать комментарий в кавычках вслед за параметром —m, то откроется текстовый редактор (тот самый, который мы задали при установке), и в нем надо будет написать комментарий и сохранить.
Вот теперь все, можно отправлять снимок репозитория (мы его только что сделали) в удаленный репозиторий. То есть можно поделиться снимком с другими (или отправить снимок на сервер для себя, чтобы потом можно было его скачать на другой компьютер).
Отправка в удаленный репозиторий
Вернемся теперь к аккаунту на GitHub. Мы создали репозиторий example, и если зайти по адресу https://github.com/javakitt/example и нажать зеленую кнопку Clone, мы увидим, что GitHub предлагает два разных протокола для обмена: https и ssh.
Протоколы HTTPS и SSH
Это не обязательно для начала работы, но чтобы использовать протокол ssh (а не https), в настройках аккаунта надо вставить ssl-ключ. Закрытый ключ хранится у вас на компьютере, а открытый — в аккаунте, логин и пароль при обмене вводить не придется.
Но мы будем сейчас использовать протокол htpps. Тут придется при обмене с сервером вводить имя и пароль, но можно это сделать единожды, а потом брать из хранилища.
Обратите внимание, что при переключении между https и ssh (см. переключатель у кнопки Clone) меняются адреса репозиториев. Наш будет https://github.com/javakitt/example.git. Эти адреса годятся, разумеется, не только для клонирования репозитория, но и для отправки туда изменений.
Также учтите, что можно обмениваться с одним и тем же репозиторием как по протоколу https, так и по ssh. Например, на одном компьютере использовать ssl-ключ, а на другом ввести и запомнить логин-пароль для обмена. Просто псевдонимы будут назначены разным адресам.
Создадим псевдоним
Обычно создают псевдоним origin репозитория:
Мы создали псевдоним origin.
Отправим изменения
Теперь можно отправить изменения, пользуясь псевдонимом:
Здесь origin — псевдоним репозитория, а master — имя ветки. Так называется по умолчанию основная ветка в Git-репозитории. Как уже говорилось, при записи в репозиторий потребуются учетные данные — откроется окно браузера, в которое нужно ввести имя и пароль учетной записи GitHub. Впоследствии их можно запомнить, чтоб каждый раз не вводить. Запоминаются они так:
Эту команду надо ввести перед push, и тогда логин-пароль будет запрошен единожды.
Все, теперь можно убедиться, что по адресу https://github.com/javakitt/example лежат отправленные файлы.
Теперь любой человек может клонировать репозиторий по кнопке Clone, вносить изменения и отправлять их на GitHub (если мы ему дадим права).
Настройка репозитория
Этот обучающий материал включает в себя обзор настройки репозитория в системе контроля версий Git. На этой странице вы узнаете, как инициализировать репозиторий Git для нового или существующего проекта. Ниже представлены примеры жизненного цикла для репозиториев, созданных локально и клонированных из удаленных репозиториев. Для работы с этим руководством требуются начальные знания о работе с интерфейсом командной строки.
В данном руководстве обсуждаются следующие основные вопросы:
По окончании данного модуля вы должны уметь создавать репозиторий Git, использовать основные команды Git, выполнять коммит измененного файла, просматривать историю проекта и настраивать соединение с сервисом хостинга Git (Bitbucket).
Что такое репозиторий Git?
Репозиторий Git — это виртуальное хранилище проекта. В нем можно хранить версии кода для доступа по мере необходимости.
Инициализация нового репозитория: git init
Создание версии существующего проекта с использованием нового репозитория Git
Указание в команде git init существующего каталога проекта приведет к исполнению описанной выше инициализации, но только на уровне этого каталога проекта.
Клонирование существующего репозитория: git clone
Команду git clone выполняют для создания копии (клонирования) удаленного репозитория. В качестве параметра в команду git clone передается URL-адрес репозитория. Git поддерживает несколько различных сетевых протоколов и соответствующих форматов URL-адресов. В этом примере используется SSH-протокол Git. URL-адреса SSH в Git имеют следующий шаблон: git@HOSTNAME:USERNAME/REPONAME.git
Дополнительную информацию об использовании команды git clone и поддерживаемых форматах URL-адресов в Git см. на странице git clone.
Сохранение изменений в репозитории: git add и git commit
«тест для обучения работе с Git»
По завершении этого примера файл CommitTest.txt добавится к истории репозитория, и репозиторий будет отслеживать последующие изменения в файле.
Совместная работа в разных репозиториях: git push
Важно понимать, что рабочая копия в Git существенно отличается от рабочей копии, получаемой при загрузке исходного кода из репозитория SVN. В отличие от SVN, в Git нет разницы между рабочими копиями и центральным репозиторием — все они являются полноценными репозиториями Git.
Поэтому совместная работа в Git принципиально отличается от совместной работы в SVN. В SVN работа строится на отношении между центральным репозиторием и рабочей копией, а модель совместной работы в Git основана на взаимодействии между репозиториями. Вместо загрузки рабочей копии в центральный репозиторий SVN в Git вы отправляете коммиты из одного репозитория в другой или копируете их в обратном направлении.
Вы легко можете задавать особую роль определенным репозиториям Git. Например, обозначив один из репозиториев Git как «центральный», вы можете воспроизвести централизованный процесс с использованием Git. Такой подход требует общих договоренностей, он не встроен в саму систему контроля версий.
Сравнение чистых и клонированных репозиториев
Если вы использовали команду git init для создания репозитория с нуля, у вас не будет удаленного репозитория, в который можно помещать изменения. Зачастую для инициализации нового репозитория пользователь переходит на сервис Git-хостинга (например, Bitbucket) и создает репозиторий там. Данный сервис предоставит URL-адрес Git, который затем можно добавить в локальный репозиторий Git. После этого можно выполнять команду git push в репозиторий на хостинге. После создания удаленного репозитория на выбранном хостинге вам понадобится обновить локальный репозиторий, выполнив привязку. Этот процесс описывается далее в руководстве по установке и настройке.
Конфигурирование и настройка: git config
Помимо конфигурирования URL-адреса удаленного репозитория, вам может потребоваться установить глобальные параметры Git, например имя пользователя или электронный адрес. Команда git config позволяет настроить инсталляцию Git (или отдельный репозиторий) из командной строки. С помощью этой команды можно установить любые настройки: от информации о пользователе до его предпочтений и характеристик репозитория. Ниже перечислены распространенные варианты конфигурации.
Git хранит варианты конфигурации в трех различных файлах, позволяющих ограничивать область видимости на уровне отдельных репозиториев (локальный), пользователя (глобальный) или всей системы (системный):
Эта команда задает имя автора, которое будет использоваться для всех коммитов, выполненных текущим пользователем.
Эта команда задает адрес электронной почты автора, который будет использоваться для всех коммитов, выполненных текущим пользователем.
Создайте быстрые клавиши для команды Git. Это мощная возможность для создания собственных комбинаций клавиш для часто используемых команд Git. Ниже показан упрощенный пример:
В текстовом редакторе откройте файл глобальной конфигурации для редактирования вручную. Подробное руководство по настройке текстового редактора для Git см. на странице Git config.
Пояснения
Git хранит варианты конфигурации в трех различных файлах, что позволяет ограничивать область видимости на уровне отдельных репозиториев, пользователей или всей системы.
Если параметры, указанные в этих файлах, конфликтуют, локальные настройки переопределяют пользовательские настройки, которые в свою очередь переопределяют системные настройки. Если вы откроете один из этих файлов, вы увидите нечто подобное:
Пример
В первую очередь после установки Git требуется указать свое имя и адрес электронной почты, а также настроить некоторые параметры по умолчанию. Пример типичной начальной конфигурации показан далее.
Представьтесь репозиторию Git с помощью команды git config
Выберите любимый текстовый редактор
Добавьте алиасы по типу SVN
Резюме
Мы показали, как создать репозиторий Git двумя способами: git init и git clone. Этим руководством можно пользоваться при необходимости управления исходным кодом ПО или другим контентом, при хранении которого требуется поддерживать версионность. Кроме того, были представлены команды git add, git commit, git push и git remote и показаны простые примеры их использования.
Готовы изучить Git?
Ознакомьтесь с этим интерактивным обучающим руководством.
Git для новичков (часть 1)
Что такое Git и зачем он нужен?
С помощью Git-a вы можете откатить свой проект до более старой версии, сравнивать, анализировать или сливать свои изменения в репозиторий.
Репозиторием называют хранилище вашего кода и историю его изменений. Git работает локально и все ваши репозитории хранятся в определенных папках на жестком диске.
Так же ваши репозитории можно хранить и в интернете. Обычно для этого используют три сервиса:
Как работает
В итоге получается очень простой граф, состоящий из одной ветки ( main ) и четырех commit. Все это может превратиться в более сложный граф, состоящий из нескольких веток, которые сливаются в одну.
Об этом мы поговорим в следующих статьях. Для начала разберем работу с одной веткой.
Установка
Основой интерфейс для работы с Git-ом является консоль/терминал. Это не совсем удобно, тем более для новичков, поэтому предлагаю поставить дополнительную программу с графическим интерфейсом (кнопками, графиками и т.д.). О них я расскажу чуть позже.
Но для начала, все же установим сам Git.
Windows. Проходим по этой ссылке, выбираем под вашу ОС (32 или 64 битную), скачиваем и устанавливаем.
Для Mac OS. Открываем терминал и пишем:
Linux. Открываем терминал и вводим следующую команду.
Настройка
Вы установили себе Git и можете им пользоваться. Давайте теперь его настроим, чтобы когда вы создавали commit, указывался автор, кто его создал.
Открываем терминал (Linux и MacOS) или консоль (Windows) и вводим следующие команды.
Создание репозитория
Теперь вы готовы к работе с Git локально на компьютере.
Создадим наш первый репозиторий. Для этого пройдите в папку вашего проекта.
Теперь Git отслеживает изменения файлов вашего проекта. Но, так как вы только создали репозиторий в нем нет вашего кода. Для этого необходимо создать commit.
Отлично. Вы создали свой первый репозиторий и заполнили его первым commit.
Процесс работы с Git
Не стоит после каждого изменения файла делать commit. Чаще всего их создают, когда:
Создан новый функционал
Добавлен новый блок на верстке
Исправлены ошибки по коду
Вы завершили рабочий день и хотите сохранить код
Это поможет держать вашу ветки в чистоте и порядке. Тем самым, вы будете видеть историю изменений по каждому нововведению в вашем проекте, а не по каждому файлу.
Визуальный интерфейс
Как я и говорил ранее, существуют дополнительные программы для облегчения использования Git. Некоторые текстовые редакторы или полноценные среды разработки уже включают в себя вспомогательный интерфейс для работы с ним.
Но существуют и отдельные программы по работе с Git. Могу посоветовать эти:
Я не буду рассказывать как они работают. Предлагаю разобраться с этим самостоятельно.
Создаем свой первый проект и выкладываем на GitHub
Давайте разберемся как это сделать, с помощью среды разработки Visual Studio Code (VS Code).
Перед началом предлагаю зарегистрироваться на GitHub.
Создайте папку, где будет храниться ваш проект. Если такая папка уже есть, то создавать новую не надо.
Установите себе дополнительно анализаторы кода для JavaScript и PHP
Откройте вашу папку, которую создали ранее
После этого у вас появится вот такой интерфейс
Здесь будут располагаться все файлы вашего проекта
Здесь можно работать с Git-ом
Кнопка для создания нового файла
Кнопка для создания новой папки
Давайте теперь перейдем во вкладу для работы с Git-ом.
Откроется вот такое окно:
Кнопка для публикации нашего проекта на GitHub
Вы создали и опубликовали репозиторий на GitHub.
Теперь сделаем изменения в коде и попробуем их снова опубликовать. Перейдите во вкладку с файлами, отредактируйте какой-нибудь файл, не забудьте нажать crtl+s (Windows) или cmd+s (MacOS), чтобы сохранить файл. Вернитесь обратно во вкладу управления Git.
Если посмотреть на значок вкладки Git, то можно увидеть цифру 1 в синем кружке. Она означает, сколько файлов у нас изменено и незакоммичено. Давайте его закоммитим и опубликуем:
Кнопка для просмотра изменений в файле. Необязательно нажимать, указал для справки
Добавляем наш файл для будущего commit
Отправляем наш commit в GitHub
Поздравляю, вы научились создавать commit и отправлять его в GitHub!
Это первая вводная статья по утилите Git. Здесь мы рассмотрели:
Как его устанавливать
Как его настраивать
Как инициализировать репозиторий и создать commit через консоль
Как на примере VS Code, опубликовать свой код на GitHub
Забегая вперед, советую вам погуглить, как работают следующие команды:
P.S. Для облегчения обучения, оставлю вам ссылку на бесплатный тренажер по Git.