Изучаем git. Git для начинающих: окончательное практическое руководство

Распределенные системы контроля версий (DVCS) постепенно замещают собой централизованные. Если вы еще не используете одну из них - самое время попробовать.

В статье я постараюсь показать, как можно быстро начать экспериментировать с git, используя сайт github.com.

В статье не будут рассмотрены различия между разными DVCS. Также не будет детально рассматриваться работа с git, по этой теме есть множество хороших источников, которые я приведу в конце статьи.

Итак, сайт github.com позиционируется как веб-сервис хостинга проектов с использованием системы контроля версий git, а также как социальная сеть для разработчиков. Пользователи могут создавать неограниченное число репозиториев, для каждого из которых предоставляется wiki, система issue tracking-а, есть возможность проводить code review и многое другое. GitHub на данный момент является самым популярным сервисом такого рода, обогнав Sourceforge и Google Code.

Для open-souce проектов использование сайта бесплатно. При необходимости иметь приватные репозитории, есть возможность перейти на платный тарифный план:

Начнем с регистрации. Идем по ссылке github.com/signup/free и вводим свои данные.
После регистрации мы попадаем на Dashboard нашего аккаунта:

Сейчас у нас нет ни одного репозитория, и мы можем либо создать новый репозиторий, либо ответвиться (fork) от уже существующего чужого репозитория и вести собственную ветку разработки. Затем, при желании, свои изменения можно предложить автору исходного репозитория (Pull request).

Но для начала установим git и настроим его для работы с сайтом.

Если вы работаете в Windows, качаем и устанавливаем msysgit . Это консольная версия git для Windows (далее расказ будет вестись на примере этой ОС).
Инструкция для MacOS X (eng)
Инструкция для Linux (eng)
Проблем возникнуть не должно, просто везде жмем Next. После установки выбираем в контекстном меню Проводника Git Bash:

Или через Git Bash.lnk в папке с установленой программой:

Прописываем в консоли свои данные и настройки переносов строк:
git config --global user.name "ваше имя"
git config --global user.email "ваша почта"
git config --global core.autocrlf true
git config --global core.safecrlf true

Кстати, рекомендую пройти неплохой интерактивный курс по использованию git из консоли. Курс проходится за несколько часов и дает необходимые базовые навыки.

Для тех, кто предпочитает gui - для Windows существует несколько таких инструментов для работы с git. Два основных - это SmartGit (кроссплатформенный) и TortoiseGit . Оба неплохие, и какой использовать - дело вкуса. Я опишу работу с TortoiseGit.
Для маков выбор giu тоже имеется.

  • официальный клиент от GitHub - на мой взгляд пока достаточно сыроват.
  • GitX - лично мне не приглянулся
  • GitBox - наиболее следует mac-way, очень рекомендую попробовать именно его

Про git на русском:
habrahabr.ru/blogs/Git/106912 «Удачная модель ветвления для git» - перевод хорошей англоязычной статьи
githowto.com интерактивный курс по работе с git из консоли
habrahabr.ru/blogs/Git/106912 «Почему git» + обсуждение
habrahabr.ru/blogs/development/68341 «Git для переходящих с SVN» + обсуждение
habrahabr.ru/blogs/Git/75990 «Командная работа в git» + обсуждение
progit.org/book/ru русский перевод книги «Pro Git» (переведено не до конца)
habrahabr.ru/blogs/Git/123111 инструкция-шпаргалка для начинающих
цикл постов «внутренности git»
lib.custis.ru/%D0%9B%D0%B8%D0%BD%D1%83%D1%81_%D0%A2%D0%BE%D1%80%D0%B2%D0%B0%D0%BB%D1%8C%D0%B4%D1%81_%D0%BE_GIT_%D0%BD%D0%B0_Google_Talks Линус Торвальдс о git
habrahabr.ru/blogs/Git/80909 книга «Волшебство git»

Про git на английском:
книги

  • progit.org/book книга «Pro Git»
  • rutracker.org/forum/viewtopic.php?t=2808582 книга «Version Control with Git», 2009, O"Reilly
  • book.git-scm.com книга «Git Community Book»
  • rutracker.org/forum/viewtopic.php?t=2808843 книга «Pragmatic Version Control Using Git», 2008, T. Swicegood
  • rutracker.org/forum/viewtopic.php?t=3239579 книга «Pragmatic Guide to Git», 2010, T. Swicegood. Описываемая версия git: 1.7.2.1. Книга в формате двустраничных разворотов - проблема/решение

Для людей естественно сопротивляться изменениям. Если Git не встретился вам, когда вы начинали работать с системами контроля версий, наверняка вы чувствуете себя комфортнее в системе Subversion (SVN) .

Часто люди говорят, что Git слишком сложен для новичков. Тем не менее, я позволю себе не согласиться с этим.

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

В этой статье мы поговорим об основах Git – как инициализировать ваши проекты, как управлять новыми и существующими файлами, и как сохранить ваш код в облаке.

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

Установка Git

На официальном сайте Git есть детальная информация об его установке на Linux, Mac и Windows. В нашем случае, мы будем использовать в целях демонстрации Ubuntu 13.04 , где установим Git с помощью apt-get:

sudo apt-get install git

Начальная настройка

Давайте создадим каталог, внутри которого мы будем работать. В качестве альтернативы вы можете использовать Git для управления одним из существующих проектов; в таком случае вам не нужно будет создавать демо-каталог, как показано ниже:

mkdir my_git_project cd my_git_project

Первым этапом является инициализация Git в каталоге. Это можно сделать с помощью команды init , которая создает каталог .git , содержащий всю информацию, связанную с Git для вашего проекта.

git config --global user.name "Shaumik" git config --global user.email "[email protected]" git config --global color.ui "auto"

Важно отметить, что если вы не укажите свое имя и адрес электронной почты, то будут использованы значения по умолчанию. В нашем случае, значениями по умолчанию были бы имя пользователя donny и адрес электронной почты donny@ubuntu .

Кроме того, мы задаем для цвета пользовательского интерфейса значение auto , благодаря чему вывод команд Git будет иметь цветовую подсветку.

Префикс —global перед командами нужен для того, чтобы не вводить эти команды настроек в следующий раз, когда мы запустим проект Git в нашей системе.

Подготовка файлов для коммита

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


Проверить статус репозитория

Теперь, когда у нас есть несколько файлов в нашем репозитории, давайте посмотрим, как Git обращается с ними. Для того, чтобы проверить текущий статус репозитория, нужно воспользоваться командой git status :


Добавление файлов в Git для отслеживания

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

Добавляем файлы при помощи команды add :

Снова проверив состояние репозитория, мы увидим, что был добавлен один файл:


Для добавления нескольких файлов, можно использовать следующую запись команды (обратите внимание, что мы добавили еще один файл в целях демонстрации):

git add myfile2 myfile3

Вы можете использовать git add рекурсивно, но будьте осторожны с этой командой. Существуют определенные файлы (например, скомпилированные файлы), которые обычно хранят вне репозитория Git .

Если вы будете использовать команду add рекурсивно, она добавит все такие файлы, если они существуют в вашем репозитории.

Удаление файлов

Но выполнение простой команды git rm удалит файл не только из Git , но также и из вашей локальной файловой системы! Чтобы

Git прекратил отслеживать файл, но при этом в вашей локальной системе сохранился сам файл, выполните следующую команду:

git rm --cached

Коммит изменений

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

Вы можете привязывать к каждому коммиту сообщение, которое добавляется при помощи префикса -m :

git commit -m "My first commit"


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

Избегайте слишком общих сообщений типа «Исправлены ошибки ». Если у вас есть трекер задач, вы можете добавлять сообщения в виде «Исправлена ошибка #234 ».

Хорошей практикой является использование имени ветки или имени функции в качестве префикса к сообщению коммита. Например, «Управление активами: добавлена функция для генерации PDF файлов активов » - это содержательное сообщение.

Git идентифицирует коммиты путем добавления длинного шестнадцатеричного числа к каждому коммиту. Как правило, не нужно копировать всю строку, для определения вашего коммита достаточно первых 5-6 символов.

Обратите внимание, что на скриншоте наш первый коммит определяется кодом 8dd76fc .

Дальнейшие коммиты

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


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


Вам нужно добавить эти файлы снова, чтобы осуществить изменения в отслеживаемых файлах для следующего коммита. Можно добавить все отслеживаемые файлы, выполнив команду:

Вы можете избежать использования этой команды, воспользовавшись префиксом -a для команды git commit , который добавит все изменения в отслеживаемые файлы.

Этот процесс, однако, очень опасен, так как может навредить проекту. Например, допустим, что вы открыли файл и изменили его по ошибке.

Если вы избирательно размещаете файлы, то заметите изменения в каждом файле. Но если вы добавите префикс -a к вашему коммиту, все файлы будут закоммичены, и вы не сможете выявить возможные ошибки.

После того, как вы разместили ваши файлы, можно приступить к коммиту. Я упоминал, что с каждым коммитом может быть ассоциировано сообщение, которое мы вводим с помощью префикса -m .

Однако существует возможность ввести сообщение в несколько строк, воспользовавшись командой git commit , которая открывает интерактивную форму для записи:


Управление проектом

Чтобы просмотреть историю вашего проекта, вы можете выполнить следующую команду:


Так будет показана вся история проекта, которая представляет собой список всех коммитов и информации по ним. Информация о коммите включает в себя хеш-код коммита, автора, время и сообщение коммита. Есть различные варианты git log , которые вы можете изучить, как только освоите понятие ветки (англ. branch) в Git .

Для того чтобы просмотреть подробную информацию об определенном коммите и файлах, которые были изменены, выполните следующую команду:

git show

где это шестнадцатеричное число, ассоциированное с коммитом. Так как данный урок рассчитан на новичков, мы не будем рассматривать, как вернуться назад к состоянию определенного коммита или как управлять ветками.

Размещение кода в облаке

Теперь, когда вы узнали, как управлять кодом в вашей системе, пришло время разместить код в облаке.

Поскольку Git не имеет центрального сервера как Subversion , вам нужно добавить каждый источник для взаимодействия с другими. Вот тут возникает понятие remote . remote означает удаленную версию вашего репозитория.

Если вы хотите разместить код в облаке, вы можете создать проект на GitHub , GitLab или BitBucket и поместить уже существующий код в репозиторий.

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

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

Уже по традиции, перед тем, как перейти к примерам и работе с командой давайте рассмотрим ее основные опции и параметры. Синтаксис git очень прост:

$ git опции команда аргументы

Сначала рассмотрим опции, они влияют на работу всей утилиты:

  • -C - использовать указанную папку репозитория вместо текущей папки;
  • -c параметр=значение - использовать указанное значение параметра конфигурации;
  • -p - прокручивать весь вывод с помощью less;

Теперь рассмотрим команды git, их немного больше и именно с помощью них вы будете выполнять все основные действия:

  • add - добавить файл или папку в репозиторий git;
  • am - применить все патчи из email;
  • archive - создать архив файлов;
  • bisect - использовать бинарный поиск для поиска нужного коммита;
  • branch - управление ветками проекта;
  • bundle - перемещение объектов и ссылок в архиве;
  • checkout - переключение между ветками;
  • cherry-pick - внести изменения в уже существующие коммиты;
  • clean - удалить все неотслеживаемые файлы и папки проекта;
  • clone - создать копию удаленного репозитория в папку;
  • commit - сохранить изменения в репозиторий;
  • diff - посмотреть изменения между коммитами;
  • fetch - скачать удаленный репозиторий;
  • init - создать репозиторий;
  • merge - объединить две ветви;
  • pull - интегрировать удаленный репозиторий с локальным;
  • push - отправить изменения в удаленный репозиторий;
  • tag - управление тегами;
  • worktree - управление деревями разработки.

Аргументы зависят от используемой команды, поэтому более подробно мы будем разбирать их в примерах.

Как работает git?

Итак, из всего выше перечисленного, вы, наверное, уже поняли, что контроль версий позволяет вам посмотреть изменения на любом этапе разработки, а также вернуться к любому моменту. Но это не совсем так. Изменения сохраняются в виде коммитов. По-русски - фиксация. Вы делаете начальный коммит, чтобы сохранить начальное состояние проекта, а затем для каждого изменения. Это работает как снимки состояния.

Кроме того, git позволяет отправлять данные на удаленный сервер. Отправляются не только готовая версия, но и все снимки, таким образом, любой человек из команды может посмотреть историю изменений. К каждому снимку нужно делать комментарий, так работа с git будет проще и понятнее.

Как пользоваться Git?

Обычно, структура проекта в Git будет зависеть от масштаба и сложности вашей программы. Но для начала мы будем использовать проект, состоящий только из одной ветви. Каждый проект содержит одну ветку по умолчанию, она называется master. Наш первый проект будет называться test.

Создание проекта

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

mkdir -p ~/git/testing ; cd ~/git/testing

Эта команда создаст нужную структуру папок и переводит текущий каталог в только что созданный. Теперь создадим первый файл нашего проекта:

Проект готов, но система контроля версий git еще не знает об этом.

Настройка проекта в git

Перед тем как git начнет отслеживать изменения, нужно подготовить все необходимые конфигурационные файлы. Сначала инициализируем пустой репозиторий в нашей папке:

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

Если все прошло хорошо, то команда ничего не выведет.

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

Изменения тоже автоматически не отслеживаются. Фиксация изменений выполняется с помощью команды commit. Вам нужно указать что было изменено с помощью небольшого комментария, буквально в несколько предложений. Хорошая практика выполнять фиксацию перед каждым серьезным изменением.

Таким образом, вы будете хранить все версии проекта, от самой первой и до текущей, а также сможете знать что, когда и где было изменено. Чтобы создать свой первый коммит выполните:

git commit -m "Initial Commit" -a

Команде необходимо передать два параметра, первый - это -m, ваш комментарий, второй -a, означает, что нужно применить действие ко всем измененным файлам. Для первого раза используется этот параметр, но обычно вам нужно указать измененные файлы или каталоги. Например, можно делать так:

git commit -m "Changed file" file

Отправка изменений

До этого момента мы делали все в локальном репозитории. Вы можете использовать git локально, если нужен только контроль версий, но иногда нужно обменяться информацией с другими разработчиками и отправить данные в удаленный репозиторий.

Сначала нужно добавить удаленный репозиторий с помощью команды remote. Для этого нужно передать ей URL:

git remote add origin https://github.com/Seriyyy95/testing.git

Затем можно посмотреть список удаленных репозиториев:

Вы можете использовать не только github сервера, но и любые другие. Теперь для отправки ваших изменений используйте такую команду:

git push origin master

Команда push указывает, что нужно отправить данные в удаленный репозиторий, origin - наш настроенный репозиторий, а master - ветвь.

Управление ветвями

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

Опция -a указывает что нужно вывести все ветви, даже не синхронизированные. Звездочка указывает на активную ветвь. Теперь создадим ветвь для разработки с помощью команды checkout:

git checkout -b develop

Переключаться между ветвями можно тоже с помощью той же команды:

git checkout master
$ git checkout develop

Теперь создадим еще один файл:

И добавим его в нашу новую ветвь develop:

Сделаем коммит для внесенных изменений:

git commit -m "develop file" develop

git branch
$ ls

Затем переключаемся на ветку master и снова смотрим:

git checkout master
$ git branch
$ ls

Здесь файла нет, так и должно быть. В git есть такая полезная вещь, как слияние. С помощью нее вы можете объединить две ветви. Например, переместить код из рабочей ветки в стабильную. Для этого достаточно выполнить команду merge:

git merge develop --no-ff

Перед тем как будет выполнено слияние вам нужно ввести комментарий, зачем это нужно. Затем если вы еще раз выполните ls, то увидите, что здесь уже есть нужный файл. Наши примеры git подошли к концу.

Выводы

В этой статье мы рассмотрели как пользоваться git для управления версиями своих проектов. Это только самая основная информация, и система контроля версий git может еще очень многое, но рассмотрение его дополнительных возможностей выходит за рамки данной статьи. Надеюсь, эта статья была вам полезной.

Система контроля версий или VCS может значительно облегчить работу разработчиков, пытающихся проанализировать изменения и вклады в общий код. Проще говоря, система контроля версий – это ключевой элемент в системе управления настройками программного обеспечения, которые отвечают потребностям проекта. VCS дают возможность назначать для определенных изменений/ревизий/обновлений буквенные или числовые значения. Также могут предоставить информацию о временных метках и идентификаторе человека внесшего изменения. В этом руководстве мы расскажем вам о самой часто используемой системе контроля версий – GIT. Вы узнаете, что такое GIT и какие он имеет преимущества перед остальными VCS, а также мы расскажем об установке GIT на разные системы и его правильном использовании.

В 2005 году, Линус Торвальдс (человек, известный тем, что стоял за созданием ядра Linux OS) разработал GIT для управления версиями ядра Linux, однако, чуть позднее его поддержкой занялся другой человек, японский инженер-программист – Джунио Хамано. На сегодняшний день, GIT – это одна из самых известных систем контроля версий с открытым исходным кодом, на которую полагаются миллионы проектов по всем миру (включая как коммерческие, так и бесплатные проекты). GIT – это полностью бесплатное программное обеспечение, поддерживающее множество ОС, таких как Mac, Linux, Windows и Solaris. Скачать соответствующие дистрибутивы можно с официального сайта GIT Вот несколько функций GIT достойных упоминания:

  1. Распределенная система управления версиями, GIT следует принципу одноранговой сети – peer to peer (равный к равному) в отличии от других систем вроде Subversion (SVN), которая основана на модели client-server (клиент-сервер).
  2. GIT позволяет разработчикам иметь множество совершенно независимых веток кода. Создание, удаление и объединение этих веток происходит без каких-либо проблем и больших затрат времени.
  3. В GIT все операции атомарны; это означает, что любое действие может быть полностью удачным или провалиться (без каких-либо изменений). Это действительно важно, так как в некоторых системах контроля версий (вроде CVS), где действия не атомарны, некоторые повисшие операции по всему хранилищу, могут оставить его в нестабильном состоянии.
  4. В отличии от других VCS, таких как SVN или CVS где метаданные хранятся в скрытых папках (.cvs, .svn, и т.д.), в GIT все данные расположены в каталогах.git.
  5. Он использует модель данных, которая помогает обеспечить криптографическую целостность всего, что присутствует в репозитории. Каждый раз когда файлы добавляются или коммитятся, генерируются их контрольные суммы; аналогичный процесс происходит при их извлечении.
  6. Еще одна превосходная функция, присутствующая в GIT – это его индекс . В пределах индекса, разработчики могут форматировать коммиты и просматривать их до фактического применения.

Вот пожалуй мы и ответили на вопрос “Что такое GIT”.

Он довольно прост в использовании. Для начала, вы можете либо создать новое хранилище, либо добавить существующее. После установки, команда git-init поможет вам с настройкой нового хранилища, или команда git clone поможет настроить пользователя для работающей копии локального хранилища.

Шаг 1 - Установка GIT

В данной части руководства будут показаны простейшие способы установки GIT на разные операционные системы:

Вариант 1 - Установка GIT на Windows

Установка GIT на Windows, осуществляется также просто, как и установка любого другого приложения; загрузка установщика и его запуск. Выполните данные шаги для установки GIT на Windows:

  1. Посетите этот сайт и скачайте установщик GIT для Windows.
  2. После загрузки, запустите установку двойным нажатием мыши. Следуйте инструкциям на экране, продолжайте нажимать Next (Далее) и наконец Finish (Финиш) для успешного завершения установки.
  1. Запустите командную строку и впишите следующие команды в терминале:

ЗАМЕТКА! Не забудьте изменить John Smith и [email protected] на ваши собственные личные данные. Любые впоследствии созданные коммиты будут связаны с этими данными.

Это все что нужно для установки GIT на Windows.

Вариант 2 - Установка GIT на Mac

Существует множество способов для установки GIT на Mac, есть даже вероятность того, что GIT уже установлен на вашем компьютере. Eсли у вас установлен XCode; выполните следующую команду в терминале для проверки:

Git --version

Если ваш результат будет схож с таким git version 2.7.0 (Apple Git-66), тогда можете смело приступать к работе с GIT, если нет, то выполните следующие шаги:

  1. Посетите и скачайте последнюю версию установщика для Mac.
  2. Следуйте инструкциям установщика и завершите установку.

  1. Используйте команду git –version снова, для подтверждения того, что установка была успешна.
git config --global user.name "John Smith" git config --global user.email "[email protected]"

ЗАМЕТКА! Не забудьте изменить John Smith и [email protected]

Вариант 3 - Установка GIT на Linux

Если вы являетесь пользователем Linux, вы должны уметь устанавливать программы и пакеты на ваш компьютер используя простые команды apt-get или yum install; чтож, установка GIT ничем отличается:

Для пользователей Debian/Ubuntu (apt-get):

  1. Откройте терминал и выполните следующую команду:
sudo apt-get update sudo apt-get install git
  1. Проверьте правильности установки командой git –version.
  2. Выполните следующие команды в терминале для настройки вашего имени пользователя и адреса электронной почты, которые будут связаны с вашим GIT аккаунтом:
git config --global user.name "John Smith" git config --global user.email "[email protected]"

ЗАМЕТКА! Не забудьте изменить John Smith и [email protected] на ваши собственные данные. Любые созданные в дальнейшем коммиты будут связаны с ними.

Fedora (yum/dnf):

Вы можете получить пакеты GIT, используя как yum, так и dnf.

  1. Откройте терминал и выполните следующие команды:
sudo dnf install git sudo yum install git
  1. Проверьте правильность установки командой git –version.
  2. Выполните следующие команды в терминале для настройки вашего имени пользователя и адреса электронной почты, которые будут связаны с вашим GIT аккаунтом:
git config --global user.name "John Smith" git config --global user.email "[email protected]"

ЗАМЕТКА! Не забудьте изменить John Smith и [email protected] на ваши собственные данные. Любые созданные в дальнейшем коммиты будут связаны с ними.

Шаг 2 - Использование GIT

Теперь, когда GIT настроен на вашем устройстве Windows / Mac / Linux, давайте изучим основы GIT и то, как вы можете начать с ним работу.

  • Создание/настройка/клонирование репозитория:

Репозиторий является одним из самых сильных инструментов любого проекта с контролем версий. Для превращения любого каталога в репозиторий GIT поможет простая команда git init <каталог>. После выполнения команды, в месте где была выполнена команда должен появиться каталог с названием.git.

Если же у вас уже имеется каталог и вы хотите добавить (клонировать) его используйте команду git clone . Для клонирования локального репозитория используйте следующую команду:

Git clone /путь/до/локального/репозитория

Если вы планируете клонировать удаленный репозиторий используйте:

Git clone user.name@host:/путь/до/удаленного/репозитория

Если у вас есть учетная запись Hostinger, вы легко можете клонировать и управлять репозиторием через инструмент в Панели управления GIT . К примеру, вы хотите клонировать репозиторий GIT, просто введите его адрес, выберите ветку, путь установки и нажмите кнопку Создать .

После завершения создания, вы сможете управлять своим репозиторием нажав кнопку Управление .

  • Рабочий процесс:

Теперь, когда репозиторий настроен, давайте поговорим о его структуре. Каждый локальный репозиторий состоит из трех деревьев: рабочего каталога – который состоит из файлов, индекса – который играет роль места где проходят все изменения перед их применением и HEAD – являющегося указателем на последний коммит пользователя. Сам рабочий процесс можно объяснить таким образом: пользователь добавляет файл или изменение из рабочего каталога в индекс, далее после его просмотра и анализа оно применяется к HEAD .

  • Команды Add и Commit:

Предлагаемые изменения или файлы добавляются в индекс используя команду add. Вот простая команда для добавления любого файла:

Git add <имя_файла>

Если вы достаточно уверены в изменении для его коммита к HEAD , вы можете использовать команду commit. Для этого используйте следующую команду:

Git commit –m “Добавьте здесь любое сообщение описывающее коммит”

ЗАМЕТКА! Как только команда commit будет выполнена (из рабочего каталога), будет произведен коммит файла к HEAD , однако отправка на удаленный репозиторий произведена не будет, для этого используется отдельная команда.

  • Дальнейшее продвижение изменений:

После коммита ваших изменений (и если они готовы к отправке в оригинальный репозиторий), вы можете использовать команду push.

После выполнения команды git push origin master из рабочего каталога, все изменения присутствующие в HEAD будут отправлены на удаленный репозиторий. В вышеупомянутой команде, значение master должно быть изменено на название ветки для которой вы хотите произвести коммит изменений.

Однако, если существующий репозиторий еще не был клонирован и вы хотите установить соединение между вашим репозиторием и удаленным сервером, сделайте это, запустив следующую команду:

Git remote add origin <сервер>

ЗАМЕТКА! Замените значение в коде <сервер> на адрес удаленного сервера, который вам необходим в данный момент.

После клонирования, любые сделанные изменения будут перенесены на соответствующий сервер.

  • Ветки:

Еще одной превосходной и продвинутой особенностью GIT является возможность разработчикам и руководителям проектов создавать несколько независимых веток в рамках одного проекта. Основная цель ветки – это разработка функций, которые при этом находятся изолированно и не влияют друг на друга. Стандартная ветвь в любом проекте всегда является главной веткой. По мере необходимости, может быть создано любое количество веток, которые в конечном итоге могут быть объединены с главной веткой.

Новая ветка может быть создана с помощью данной команды:

Git checkout -b feature_n *

feature_n это имя ветки

Если вы хотите переключиться обратно к главной ветке, используйте следующую команду:

Git checkout master

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

Git checkout -d feature_n

Для того, чтобы сделать ветку доступной для других пользователей, вы должны отправить ее на удаленный репозиторий. Для этого введите данную команду:

Git push origin feature_n

  • Обновление и объединение:

В случае если вам необходимо обновить ваш локальный каталог на его последнюю версию из удаленного репозитория, просто введите команду git pull.

Для объединения активной ветки с какой-либо другой воспользуйтесь этой командой: git merge feature_n.

Используете ли вы pull или merge, GIT всегда пытается справиться с возникающими конфликтами самостоятельно, но это не всегда у него получается. В случае неудачи выполнения команды, пользователь должен разрешить возникший конфликт вручную. После того, как вы отредактировали файлы (для устранения конфликта), пометьте их как merged с помощью команды:

Git add <имя.файла>

Если вы хотите просмотреть различия до слияния веток, может быть запущена следующая команда:

Git diff <имя_ветки_источника> <имя_целевой_ветки>

  • Маркировка:

Перед выпуском обновлений или ревизий в программном обеспечении, рекомендуется создать для них метки или теги. Для выполнения данного действия в GIT, выполните данную команду:

Git tag 1.1.0 1c2d2d56fa

1c2d2d56fa в вышеприведенной команде относится к первым 10 символам commit-id, на которые ссылается тег. Идентификатор коммита или Commit ID можно найти в журнале.

  • Журнал:

Изучить историю репозитория можно заглянув в журнал. Команда для вызова журнала git log. Для отображения коммитов сделанных конкретным пользователем, используйте:

Git log --author =Имя

Сжатую версию журнала (один коммит на строке) можно просмотреть при помощи команды:

Git log --pretty=oneline

Для просмотра измененных файлов:

Git log --name-status

  • Замена локальных изменений:

Если вы каким-то образом навели беспорядок и хотите отменить изменения, сделанные в файле, произведите этот процесс с помощью следующей команды:

Git checkout -- <имяфайла>

Выполнив эту команду вы замените измененные данные в рабочем дереве на последние данные находящиеся в HEAD . Любые изменения, которые уже были добавлены в индекс не пострадают.

И наоборот, если все локальные изменения или фиксации должны быть удалены, а локальная главная ветвь должна быть привязана к последней истории с сервера, выполните следующие команды:

Git fetch origin git reset --hard origin/master

Многим трудно начать работать с Git , ведь не все привыкли работать с командной строкой, но именно ее лучше всего использовать при работе с репозиторием Git . И сегодня я расскажу о самом простом, так сказать Git для чайника , чтобы помочь освоиться Вам с этой системой. Git представляет собой систему контроля версий, которая позволяет в нужный момент откатиться на старую версию, если вы "наломали дров ".

С помощью Git Вы сможете размещать свой код на GitHub , BitBucket и Google Code .

Вы всегда сможете скачать код своего проекта на компьютер, изменить его и залить обратно, чтобы он стал доступен Вашим коллегам.

С чего начать?

Нам понадобиться программа Git Bash , это шелл сделанный на основе Cygwin, поэтому возможно использование Unix-команд, вроде ls, cd, mkdir. Скачать его можно по следующей ссылке http://git-scm.com/ .

Настройка Git

Перед началом работы нам необходимо немного настроить программу. Нам нужно установить имя пользователя и электронный адрес через командную строку:

Git config --global user.name "Ваше имя" git config --global user.email "Ваш Email"

Также нам нужно настроить параметры установок окончания строк, для Windows мы вводим две команды

Git config --global core.autocrlf true git config --global core.safecrlf false git config --global core.eol native

На этом настройка заканчивается, можем начинать работу с проектом.

Создание проекта

Допустим у нас есть папка с проектом, которую мы хотим разместить на GitHub.

2. Инициализируем папку для Git репозитория. Это нужно сделать только один раз для каждого проекта.

Git init

3. Связываем папку с удаленным репозиторием

Git remote add origin https://github.com/LeoXCoder/test_project.git

4. Добавляем все новые и измененные файлы

Git add .

5. Помечаем все новые и измененные файлы сообщением (commit )

Git commit -m "message"

Вместо message вписываем сообщение, например Initial Commit. или Bugfix.

6. Закачиваем код на удаленный репозиторий

Git push -u origin master

в таком виде используем только первый раз, потом используем команду без флагов

Git push

7. Можно посмотреть статус изменений, которые были сделаны.

Git status

8. Для скачивания репозитория используется команда

Git pull

Второй компьютер

Для использования репозитория на другом компьютере, используем следующие команды.

1. Клонирование репозитория

Git clone https://github.com/LeoXCoder/test_project.git

В результате git скачает удаленный репозиторий в новую папку test-project

2. После каких-то изменений в коде, выполняем все те же команды

Git add . git commit -m "I changed the user module." git push

Откат изменений

1. Полный откат до предыдущего коммита

Git reset HEAD --hard

2. Сброс изменений в файле на версию коммита

Git checkout

3. Откат до установленного тега, например v1



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: