2.1 Основы Git — Создание Git-репозитория
Если вы хотите начать работать с Git, прочитав всего одну главу, то эта глава — то, что вам нужно. Здесь рассмотрены все базовые команды, необходимые вам для решения подавляющего большинства задач, возникающих при работе с Git. После прочтения этой главы вы научитесь настраивать и инициализировать репозиторий, начинать и прекращать контроль версий файлов, а также подготавливать и фиксировать изменения. Мы также продемонстрируем вам, как настроить в Git игнорирование отдельных файлов или их групп, как быстро и просто отменить ошибочные изменения, как просмотреть историю вашего проекта и изменения между отдельными коммитами (commit), а также как отправлять (push) и получать (pull) изменения в/из удалённого (remote) репозитория.
Создание Git-репозитория
Обычно вы получаете репозиторий Git одним из двух способов:
- Вы можете взять локальный каталог, который в настоящее время не находится под версионным контролем, и превратить его в репозиторий Git, либо
- Вы можете клонировать существующий репозиторий Git из любого места.
В обоих случаях вы получите готовый к работе Git репозиторий на вашем компьютере.
Создание репозитория в существующем каталоге
Если у вас уже есть проект в каталоге, который не находится под версионным контролем Git, то для начала нужно перейти в него. Если вы не делали этого раньше, то для разных операционных систем это выглядит по-разному:
$ cd /home/user/my_project
$ cd /Users/user/my_project
$ cd C:/Users/user/my_project
а затем выполните команду:
$ git init
Эта команда создаёт в текущем каталоге новый подкаталог с именем .git , содержащий все необходимые файлы репозитория — структуру Git репозитория. На этом этапе ваш проект ещё не находится под версионным контролем. Подробное описание файлов, содержащихся в только что созданном вами каталоге .git , приведено в главе Git изнутри
Если вы хотите добавить под версионный контроль существующие файлы (в отличие от пустого каталога), вам стоит добавить их в индекс и осуществить первый коммит изменений. Добиться этого вы сможете запустив команду git add несколько раз, указав индексируемые файлы, а затем выполнив git commit :
$ git add *.c $ git add LICENSE $ git commit -m 'Initial project version'
Мы разберем, что делают эти команды чуть позже. Теперь у вас есть Git-репозиторий с отслеживаемыми файлами и начальным коммитом.
Клонирование существующего репозитория
Для получения копии существующего Git-репозитория, например, проекта, в который вы хотите внести свой вклад, необходимо использовать команду git clone . Если вы знакомы с другими системами контроля версий, такими как Subversion, то заметите, что команда называется «clone», а не «checkout». Это важное различие — вместо того, чтобы просто получить рабочую копию, Git получает копию практически всех данных, которые есть на сервере. При выполнении git clone с сервера забирается (pulled) каждая версия каждого файла из истории проекта. Фактически, если серверный диск выйдет из строя, вы можете использовать любой из клонов на любом из клиентов, для того, чтобы вернуть сервер в то состояние, в котором он находился в момент клонирования (вы можете потерять часть серверных хуков (server-side hooks) и т. п., но все данные, помещённые под версионный контроль, будут сохранены, подробнее об этом смотрите в разделе Установка Git на сервер главы 4).
Клонирование репозитория осуществляется командой git clone . Например, если вы хотите клонировать библиотеку libgit2 , вы можете сделать это следующим образом:
$ git clone https://github.com/libgit2/libgit2
Эта команда создаёт каталог libgit2 , инициализирует в нём подкаталог .git , скачивает все данные для этого репозитория и извлекает рабочую копию последней версии. Если вы перейдёте в только что созданный каталог libgit2 , то увидите в нём файлы проекта, готовые для работы или использования. Для того, чтобы клонировать репозиторий в каталог с именем, отличающимся от libgit2 , необходимо указать желаемое имя, как параметр командной строки:
$ git clone https://github.com/libgit2/libgit2 mylibgit
Эта команда делает всё то же самое, что и предыдущая, только результирующий каталог будет назван mylibgit .
В Git реализовано несколько транспортных протоколов, которые вы можете использовать. В предыдущем примере использовался протокол https:// , вы также можете встретить git:// или user@server:path/to/repo.git , использующий протокол передачи SSH. В разделе Установка Git на сервер главы 4 мы познакомимся со всеми доступными вариантами конфигурации сервера для обеспечения доступа к вашему Git репозиторию, а также рассмотрим их достоинства и недостатки.
#2 — Добавление файлов в репозиторий

В ходе урока вы познакомитесь с добавлением файлов в локальный репозиторий проекта. Вы изучите такие команды, как: git add, git commit, git status, а также познакомитесь с игнорированием файлов при помощи .gitignore файла.
Видеоурок
Для добавления файлов в локальное хранилище в Git используется несколько команд:
- git add — добавление файлов в стадию ожидания;
- git commit — добавление файлов в локальное хранилище;
- git rm — отмена действий.
Получение статуса
Для отслеживания статуса всех файлов необходимо использовать команду git status .
Это одна из важнейших команд, так как система отслеживает изменения, а с ее помощью мы узнаем о результатах этого отслеживания. Если мы наберем git status в терминале, то система должна выдать следующее:
Добавление файлов
Перед добавлением файлов в локальное хранилище их необходимо подготовить. Для этого используется команда git add .
Через команду можно указать какие файлы необходимо добавить. Можно добавить всё, прописав git add . или git add -A , а также можно добавлять лишь некоторые файлы. Для их выбора можно воспользоваться различными командами:

Коммит
После подготовки файлов их необходимо отправить в локальное хранилище (выполнить коммит). Для этого используется команда git commit -m «Комментари» .
При коммите данных их необходимо комментировать, чтобы в дальнейшем каждое изменение в проекте было с комментарием (описанием действий).
Отмена действий
Если вы добавили файлы в стадию ожидания, но передумали и не хотите добавлять некоторые из них, то вам пригодиться команда git rm -cached «file» .
В ней укажите какой файл необходимо «выкинуть» из стадии ожидания на коммит.
Игнорирование файлов
Git имеет встроенную функцию .gitignore, с помощью которой мы можем предотвратить случайное попадание в git add ненужных файлов, папок и директорий. Очень часто в такой перечень попадают следующие данные:
- Логи;
- Артефакты систем сборки;
- Папки node_modules в проектах node.js;
- Папки, созданные IDE, например, Netbeans или IntelliJ;
- Разнообразные заметки разработчика.
Работает функция .gitignore очень просто:
- Создаем вручную файл под названием .gitignore и сохраняем его в директорию проекта.
- Внутри файла перечисляем названия файлов/папок, которые нужно игнорировать, каждое с новой строки.
- Файл .gitignore добавляем, коммитим и отправляем на сервер, как любой другой файл в проекте. Пример исключения перечисленных выше файлов выглядит так:
*.log build/ node_modules/ .idea/ my_notes.txt
Слэш обозначает игнорирование директорий и всего их содержимого, звездочка – шаблон.
Задание к уроку
Необходимо оформить подписку на проект, чтобы получить доступ ко всем домашним заданиям
Большое задание по курсу
Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца
Как создать или изменить папку на Git Bash
Хранилище в вычислительной технике известно как центральное место, в котором хранятся и управляются данные. Таким образом, репозиторий Git представляет собой центральное хранилище, в котором будут храниться и управляться все файлы проекта. Git repository-это папка внутри вашей системы, в которой находятся все файлы вашего проекта. Он позволяет сохранять версии вашего кода, так что вы можете получить к ним доступ в любое время. В вашей системе git repository — это простая папка, как и многие другие папки.
Поскольку теперь мы очень близки к тому, чтобы начать выполнять действия Git, но мы должны знать несколько общих команд каталогов на Git Bash, чтобы сделать процесс простым. К ним относятся:
- Изменение каталога с помощью Git Bash
- Создание каталога с помощью Git Bash
- Посмотреть все каталоги в Git Bash
Как изменить каталог через Git Bash?
Изменение каталога очень важно, так как при работе с Git Bash вы постоянно перемещаетесь между разными каталогами. Каталог (директория) — это технический термин для обозначения папки. Вы можете изменить каталог двумя способами:
- Непосредственно через Git Bash с помощью команд
- Открыв Git Bash в нужной папке
Перейдите в нужный каталог с помощью команд в Git Bash
Вы можете изменить каталог внутри Git Bash с помощью команды cd. Команда cd обычно используется в оболочке вашей системы (cmd) для той же цели. Перейдите в каталог ToolsQA с помощью команды cd
- Откройте свой Git Bash.
- Введите следующую команду cd и нажмите клавишу enter.
![]()
Примечание: ToolsQA — это папка внутри диска E в данном примере.
Откройте Git Bash прямо в папке
Изменение каталога через открытие его в той же папке — это довольно прямолинейно. Для этого перейдите в каталог, который вы хотите изменить.
После этого щелкните правой кнопкой мыши в любом месте каталога = > откройте Git Bash Here.
![]()
После того, как мы научились изменять рабочий каталог, мы можем создать репозиторий в любой папке проекта, где нам нужно работать. Для создания репозитория мы сначала создадим папку, в которой будем работать.
Как создать новый каталог с помощью Git Bash?
Создание каталога с помощью Git Bash — это всего лишь простая команда, которая также используется в системах Linux. Хотя вы можете создать каталог, используя обычный метод создания новой папки, но используйте Git Bash для максимально возможной работы. Давайте посмотрим, как создать каталог с помощью Git Bash.
- Откройте Git Bash.
- Перейдите в каталог, в котором вы хотите создать папку.
- Введите следующую команду mkdir и нажмите клавишу enter, чтобы создать каталог.
![]()
Примечание: запомните, что, если вы упоминаете более одного слова имени каталога не в кавычках, он создаст два каталога. Это мы увидим в следующем разделе, а затем удалим эти папки и создадим один каталог под названием «First Project».
Как просмотреть все каталоги в Git Bash?
Теперь, когда мы создали папку, мы также должны знать, как посмотреть на все каталоги/папки внутри нашего рабочего каталога.
1.Перейдите в директорию, в которой вы хотите видеть каталоги (ToolsQA)
- Введите следующую команду ls и нажмите клавишу Enter. Все каталоги будут видны вам.
![]()
Примечание: стоит отметить, что ls не будет показывать скрытые папки. Вам нужно использовать ls-a для этого.
Как удалить папку
Вы можете удалить каталог, используя команду rmdir с именем каталога.
![]()
Примечание: mk означает make, а rm Remove.
Теперь мы все настроены на инициализацию Git внутри нашего каталога проектов. Как уже упоминалось выше, нам нужно знать о команде git init для создания репозитория. Мы кратко рассмотрим команду git init в следующей статье.

В последнем уроке мы познакомились с командой Git fetch и Read more

В одной из последних статей мы узнали о команде Git Read more
Мы уже знаем, как вносить изменения в локальное хранилище и Read more

Команда git push при выполнении перемещает изменения, внесенные пользователем на Read more

«Клонирование» означает создание идентичных особей естественным или искусственным путем. Клонирование Read more

Сегодня мы узнаем, как скопировать чужой репозиторий в наш аккаунт Read more
Как создать (добавить) директорию?
Первый день работаю с GIT (BitBucket). Возник вопрос как создать и закоммитить директорию. Добавил в основную папку проекта (на локале) директорию. Потом в терминале написал:
git add * git push
и в итоге ничего не изменилось. Подскажите, что я делаю не так?
Отслеживать
34k 25 25 золотых знаков 130 130 серебряных знаков 222 222 бронзовых знака
задан 22 июл 2015 в 11:14
925 3 3 золотых знака 14 14 серебряных знаков 32 32 бронзовых знака
если директория пустая, то ее добавить нельзя. Так задумано. Если директорию все же нужно добавить, то в не создается пустой файл с именем вида .touch , .gitkeep , .do_not_remove .
22 июл 2015 в 11:17
ручками это все делается(файл тоже приходиться ручками впихивать?-ибо при попытке запихнуть в добавленную папку файл, он ругался на то что это не возможно). а через терминал можно как-то все сделать? я имею ввиду начиная от создания папки и заканчивая пулом.
22 июл 2015 в 11:29
@DarkVss: через терминал можно сделать все ))) сейчас в ответ добавлю.
22 июл 2015 в 11:36
Спасибо за помощь,ребята=)
22 июл 2015 в 12:11
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
Чтобы git сохранил директорию:
- Она должна быть непустой.
- Нужно добавить её содержимое и сделать коммит.
1. Директория должна быть непустой
- Добавить пустую директорию нельзя. Команда git add «видит» только файлы и пути, в которых они лежат.
- Чтобы сохранить пустую директорию, создайте в ней пустой файл .gitkeep и добавьте его в git.
Почему git так работает?
Потому что он хранит данные в виде следующих объектов:
- Blob, блоб (от Binary Large OBject) — бинарный архив файла.
- Tree, дерево — текстовый список содержимого директории: файлов (блобов) и других директорий (деревьев).
Дерево не может быть пустым — by design, так устроен алгоритм. Поэтому пустую директорию нельзя добавить. Чтобы её наполнить, достаточно создать в ней файл. Обычно такой файл называют .gitkeep , но допустимо любое имя.
Например, в директории есть файл и ещё пара директорий, одна из которых пуста. Вот что будет после команды git add . :
на диске: в индексе git: . tree ├── dir1 tree │ └── file1 blob ├── dir2 (ничего) └── file2 blob
Чтобы узнать про другие объекты и подробности, читайте Git from the bottom up.
2. Нужно сделать коммит
Команда git add только добавляет файлы в индекс, после чего нужно сохранить их командой git commit .