post.jpg

Git-репозитории. Основные команды. Взаимодействие с сервером.

Git - это популярная система контроля версий и совместной разработки проектов с открытым исходным кодом. С помощью Git можно отслеживать изменения в исходном коде проектов, возвращать предыдущие версии в случае критических ошибок, а также делиться своим кодом со всеми желающими и принимать от них исправления.

Это мощная система, которая позволяет оптимизировать работу над вашими проектами. Здесь нет каких-либо требований к языку или структуре файлов, поэтому у разработчиков полная свобода действий.

Установка.

GIT для Windows можно установить, скачав и запустив установщик с сайта  Git для Windows .   Для пользователей Linux (Debian/Ubuntu):


sudo apt-get update
sudo apt-get install git

В этой статье будем рассматривать управление репозиториями только с командной строки, поэтому пользователям  Windows из установленного пакета GIT потребуется лишь окно эмуляции BASH . Его можно запустить как из проводника Windows, щелкнув правой кнопкой мыши в корневой папке проекта, для которого предполагается отслеживать изменения и выбрав пункт 'Git Bash Here',

так и просто запуском файла git-bash.exe , а для перехода в нужную директорию использовать соманду CD:

Проверить правильность устновки можно командой git --version .

Некоторые глобальные настройки, которые необходимо выполнить для связи с вашим GIT-аккаунтом:

git config --global user.name "John Smith"
git config --global user.email "example@email.com"
Создание Git-репозитория.

Для создания Git-репозитория существуют два основных подхода. Первый – импорт в Git уже существующего проекта или каталога. Второй – клонирование уже существующего репозитория с сервера.

Для превращения любого каталога в репозиторий нужно перейти в него и выполнить команду

git init

Эта команда создает в текущем каталоге новый подкаталог с именем .git , содержащий все необходимые файлы репозитория – основу Git-репозитория.

Если же вы желаете получить копию существующего репозитория Git, в котором хотите поучавствовать, то нужна команда git clone [url] . 

Например, если вы хотите клонировать библиотеку RubyGit, известную как Grit, то это можно сделать так:

git clone git://github.com/schacon/grit.git 

Эта команда создаёт каталог с именем grit, инициализирует в нём каталог .git, скачивает все данные для этого репозитория и создаёт (checks out) рабочую копию последней версии.

Определение состояния файлов.

После внесения любых изменений в проект можно посмотреть статус файлов с помощью команды git status. Если вы выполните эту команду сразу после клонирования, вы увидите что-то вроде этого: 

Это означает, что у вас чистый рабочий каталог, другими словами — в нём нет отслеживаемых изменённых файлов. Git также не обнаружил неотслеживаемых файлов, в противном случае они бы были перечислены здесь.

Предположим, вы добавили в свой проект новый файл, простой файл LICENSE.txt. Если этого файла раньше не было, и вы выполните git status, вы увидите свой неотслеживаемый файл вот так:

Понять, что новый файл LICENSE.txt неотслеживаемый можно по тому, что он находится в секции "Untracked files" в выводе команды status. Статус "неотслеживаемый файл", по сути, означает, что Git видит файл, отсутствующий в предыдущем снимке состояния (коммите); Git не станет добавлять его в ваши коммиты, пока вы его явно об этом не попросите. Это предохранит вас от случайного добавления в репозиторий сгенерированных бинарных файлов или каких-либо других, которые вы и не думали добавлять.

Отслеживание новых файлов.

Для того, чтобы начать отслеживать новый файл (добавить файл под версионный контроль), используется команда git add . Чтобы начать отслеживание файла LICENSE.txt, нужно выполнить команду

$ git add LICENSE.txt

По тому, что файл находится в секции "Changes to be commited", можно судить о том, что он проиндексирован и, если в этот момент выполнить коммит, то текущая версия этого файла будет добавлена в историю снимков состояния.

Если файлов для добавления в снимок много, то можно воспользоваться командой git add . , которая добавляет отслеживание для всех новых файлов текущего локального репозитория:

Просмотр изменений

Если результат работы команды git status недостаточно информативен для вас — вам хочется знать, что конкретно поменялось, а не только какие файлы были изменены — вы можете использовать команду git diff. Чтобы увидеть, что же вы изменили, но пока не проиндексировали, наберите git diff без аргументов. Если вы хотите посмотреть, что вы проиндексировали и что войдёт в следующий коммит, вы можете выполнить git diff --cached.

Фиксация изменений.

Теперь, когда ваш индекс настроен так, как вам и хотелось, вы можете зафиксировать свои изменения. Запомните, всё, что до сих пор не проиндексировано — любые файлы, созданные или изменённые вами, и для которых вы не выполнили git add после момента редактирования — не войдут в этот коммит. Они останутся изменёнными файлами на вашем диске. В нашем случае, когда вы в последний раз выполняли git status, вы видели что всё проиндексировано, и вот, вы готовы к коммиту. Простейший способ зафиксировать изменения — это набрать git commit . Откроется текстовый редактор, который настраивается командой git config --global core.editor . По умолчанию комментарий для коммита содержит закомментированный результат работы ("выхлоп") команды git status и ещё одну пустую строку сверху. Вы можете удалить эти комментарии и набрать своё сообщение или же оставить их для напоминания о том, что вы фиксируете. 

Есть и другой способ — вы можете набрать свой комментарий к коммиту в командной строке вместе с командой commit, указав его после параметра -m, как в следующем примере:

$ git commit -m "License file and some changes"

"Выхлоп" ниже:

 
Сервис GitHUB. Размещение проектов.

GitHub – крупнейший веб-сервис для размещения IT-проектов и их совместной разработки. Сервис является абсолютно бесплатным для проектов с открытым исходным кодом, а для частных проектов предлагаются различные платные тарифные планы.

Создаем новый репозиторий на GitHub:

после чего получаем подробнейшие инструкции по необходимым для размещения репозитория командам, которые необходимо ввести в нашем GIT-Bash. Команды предусмотрены для двух транспортных протоколов:

HTTPS

и SSH

Команды git remote add origin https://github.com/givikoenig/testing.git и git remote add origin git@github.com:givikoenig/testing.git на удаленном сервере ничего не добавляют, а только добавляют в конфигурацию локального репозитория параметр [url] , необходимый при последующей отправке.

При использовании HTTPS-протокола при каждой отправке изменений в локальном репозитории на сервер необходимо будет вводить свои аутентификационные данные (логин или email-адрес и пароль). Для использования SSH-протокола необходимо сгенерировать открытый SSH-ключ и разместить его на сервере GitHub .

Теперь для размещения локального репозитория на сервере GitHub (или внесения изменений), нужно выполнить команду git push -u origin master .

Обновим страницу на GitHub-е и видим, что репозиторий успешно добавлен:

 

Поделиться

КОММЕНТАРИИ (1)

Евгений Петров
Основные Git команды. Можно использовать как шпаргалку: Рекомендую к прочтению: https://use-web.ru/news.php?id=138&tid=3