GitHub и Git

В этом разделе рассмотрим, что такое GitHub, git, а также основные понятия и операции git. 

1. GitHub и git

GitHub – это крупнейший веб-сервис для хостинга IT-проектов и их совместной разработки. Сервис абсолютно бесплатен для проектов с открытым исходным кодом. Слоган сервиса «Social Coding» – «Пишем код вместе». GitHub часто называют социальной сетью для программистов. Он основан на системе контроля версий git.

2. Состояния файлов в рабочем каталоге

  1. Отслеживаемые файлы — это те файлы, которые были в последнем слепке состояния проекта (snapshot) или подготовлены к коммиту. Они могут быть: неизменёнными, изменёнными, новые (added). 
  2. Неотслеживаемые файлы — это всё остальное, любые файлы в вашем рабочем каталоге, которые не входили в ваш последний слепок состояния и не подготовлены к коммиту.

3. Команды git

  1. git add - используется для того чтобы начать отслеживать (добавить под версионный контроль) новый файл.
  2. git commit - сохранение состояния своего проекта в репозиторий git. Каждый раз, когда вы делаете коммит, то есть сохраняете состояние своего проекта в git’е, система запоминает как выглядит каждый файл в этот момент, и сохраняет ссылку на этот снимок. Для увеличения эффективности, если файлы не были изменены, git не запоминает эти файлы вновь, а только создаёт ссылку на предыдущую версию идентичного файла, который уже сохранён.
  3. git fetch - данная команда связывается с указанным удалённым проектом и забирает все те данные проекта, которых у вас ещё нет. После того как вы выполнили команду, у вас должны появиться ссылки на все ветки из этого удалённого проекта. Теперь эти ветки в любой момент могут быть просмотрены или слиты. Важно отметить, что команда fetch забирает данные в ваш локальный репозиторий, но не сливает их с какими-либо вашими наработками и не модифицирует то, над чем вы работаете в данный момент. Вам необходимо вручную слить эти данные с вашими, когда вы будете готовы.
  4. git push - когда вы хотите поделиться своими наработками, вам необходимо отправить (push) их в главный репозиторий. Эта команда срабатывает только в случае, если вы клонировали с сервера, на котором у вас есть права на запись, и если никто другой с тех пор не выполнял команду push. Если вы и кто-то ещё одновременно клонируете, затем он выполняет команду push, а затем команду push выполняете вы, то ваш push точно будет отклонён. Вам придётся сначала вытянуть (pull) их изменения и объединить с вашими. Только после этого вам будет позволено выполнить push. 
  5. git pull - автоматически извлекает и затем сливает данные из удалённой ветки в вашу текущую ветку. Этот способ может оказаться более простым или более удобным. К тому же по умолчанию команда git clone автоматически настраивает вашу локальную ветку master на отслеживание удалённой ветки master на сервере, с которого вы клонировали (подразумевается, что на удалённом сервере есть ветка master). Выполнение git pull, как правило, извлекает (fetch) данные с сервера, с которого вы изначально склонировали, и автоматически пытается слить (merge) их с кодом, над которым вы в данный момент работаете.

4. Метки

Git имеет возможность помечать (tag) определённые моменты в истории как важные. Как правило, этот функционал используется для отметки моментов выпуска версий.

5. Ветвление

Ветвление означает, что вы отклоняетесь от основной линии разработки и продолжаете работу, не вмешиваясь в основную линию. Git хранит данные не как последовательность изменений или дельт, а как последовательность снимков состояния (snapshot). Ветка в git — это просто легковесный подвижный указатель на один из коммитов. Ветка по умолчанию в git называется master.

6. Работа с удалёнными репозиториями

Удалённые репозитории — это модификации проекта, которые хранятся в интернете или ещё где-то в сети. Их может быть несколько, каждый из которых, как правило, доступен для вас либо только на чтение, либо на чтение и запись. 

7. Ответвление репозиториев

Если вы хотите внести вклад в существующий проект, на отправку изменений в который у вас нет прав, GitHub приветствует ответвления. Когда вы смотрите на страницу заинтересовавшего вас проекта и хотите немного поработать над ним, вы можете нажать на кнопку "Fork" в заголовке проекта, чтобы GitHub скопировал проект вашему пользователю, и вы смогли отправлять туда свои изменения.

Read also:
Comments