Справочник по командам Git
В Visual Studio 2019 командная Обозреватель позволяет выполнять наиболее распространенные задачи Git, необходимые для повседневной работы. В меню Вид Visual Studio откройте командную Обозреватель или нажмите клавиши CTRL+, CTRL+M.
Visual Studio 2019 версии 16.8 и более поздних версий предоставляет возможности управления версиями Git при сохранении пользовательского интерфейса Team Обозреватель Git. Чтобы использовать командную Обозреватель, снимитефлажокСервис> Параметры >Предварительный просмотр функций>Новый пользовательский интерфейс Git в строке меню. Вы можете использовать функции Git из любого интерфейса взаимозаменяемо.
Visual Studio и командная строка Git отлично работают вместе. При внесении обновлений и выполнении команд через один интерфейс эти изменения отражаются в другом интерфейсе.
Инструкции по установке Git доступны, если на компьютере не установлен Git.
Пользователи Windows. Если вы не используете Visual Studio, установите Git для Windows, чтобы настроить диспетчер учетных данных Git. Диспетчер учетных данных упрощает проверку подлинности с помощью Azure Repos.
В Visual Studio откройте командную строку в репозитории в представлении Подключения команды Обозреватель. Щелкните правой кнопкой мыши локальный репозиторий и выберите Открыть командную строку.

Для выполнения некоторых команд требуются определенные разрешения Git в Azure Repos.
Repos
Разделы справки?
Командная строка Git
Обозреватель Team Explorer в Visual Studio
Меню Git в Visual Studio
Создание репозитория в новой папке
git init Foldername
![]()
Нажмите кнопку Подключить ( ) в командной Обозреватель, чтобы открыть представление Connect, а затем выберите Создать в разделе Локальные репозитории Git.
Использование командной строки
Создание репозитория с кодом в существующей папке
git init Foldername
git add —all
git commit -m «Initial commit»
Создайте репозиторий из командной строки, а затем откройте представление Подключения командной Обозреватель и выберите Добавить в разделе Локальные репозитории Git.
Использование командной строки
Создание репозитория из существующего решения Visual Studio
git init Foldername
cd Foldername
git add —all
git commit -m «Initial commit»

Откройте решение и выберите Опубликовать ( ) в строке состояния в правом нижнем углу
Выберите Git>Create Git Repository (Создать репозиторий Git ) в строке меню, чтобы открыть окно Создание репозитория Git .
Создание репозитория в Project
В Интернете выберите Репозитории (или Код , если вы не включили новый предварительный просмотр навигации), а затем выберите раскрывающийся список рядом с именем текущего репозитория и выберите Новый репозиторий.
Выберите Git>Create Git Repository (Создать репозиторий Git ) в строке меню, чтобы открыть окно Создание репозитория Git .
Клонирование репозитория в локальную папку
git clone Имя папкиURL-адреса
Выберите Клонировать в разделе Локальные репозитории Git в представлении Подключения команды Обозреватель.
В меню Git в строке меню выберите Клонировать репозиторий , чтобы открыть окно Клонировать репозиторий .
Клонирование репозитория в Project
git clone Имя папкиURL-адреса
Откройте представление Подключиться в командной Обозреватель и щелкните правой кнопкой мыши репозиторий Git в проекте под именем учетной записи. Нажмите кнопку Клонировать.
В меню Git в строке меню выберите Клонировать репозиторий , чтобы открыть окно Клонировать репозиторий .
Добавление существующего репозитория в Visual Studio
Откройте файл решения в Visual Studio (это действие автоматически добавляет репозиторий в team Обозреватель) или выберите Добавить в разделе Локальные репозитории Git в представлении Connect.
Выберите Git>Local Repositories>Open Local Repository (Открыть локальный репозиторий ) в строке меню.
Удалите репозиторий и журнал Git, но сохраните текущую версию файлов.
Удаление скрытой папки .git, созданной в корне репозитория
Удалите скрытую папку .git, созданную в корне репозитория, из windows Обозреватель или командной строки.
Удаление локального репозитория и всех файлов
Удаление папки, содержащей репозиторий, из файловой системы компьютера
Закройте все открытые решения с помощью файлов в репозитории, а затем удалите папку, содержащую репозиторий, из файловой системы компьютера.
Удаление репозитория в Project
Добавление удаленного репозитория
git remote add URL-адресимени
Откройте репозиторий с помощью представления Подключиться в team Обозреватель, а затем откройте представление Параметры в Обозреватель команды. Выберите Параметры репозитория и выберите Добавить в разделе Удаленные репозитории.
В меню Git в строке меню выберите Отправить в службу Git , чтобы открыть диалоговое окно Создание репозитория Git .
Обновление удаленного репозитория
git remote set-url URL-адресимени
Откройте репозиторий с помощью представления Подключиться в team Обозреватель, а затем откройте представление Параметры в Обозреватель команды. Выберите Параметры репозитория и выберите Изменить в разделе Удаленные репозитории.
В меню Git в строке меню выберите Управление удаленными репозиториями и внесите изменения в диалоговом окне Параметры .
Дополнительные сведения см. в следующих ресурсах:
- Создание репозитория
- Клонирование существующего репозитория
- Предоставление общего доступа к коду в Git с помощью командной строки
- Предоставление общего доступа к коду в Git с помощью Visual Studio
- Создание репозитория в Project
- Удаление репозитория в Project
Ветви
Разделы справки?
Командная строка Git
Обозреватель Team Explorer в Visual Studio
Меню Git в Visual Studio
git branch branchname
Откройте представление Ветви в team Обозреватель, щелкните правой кнопкой мыши ветвь и выберите Создать локальную ветвь от.
В меню Git в строке меню выберите Управление ветвями, щелкните правой кнопкой мыши ветвь и выберите Создать локальную ветвь из.
Переключение на другую ветвь
git checkout branchname
Откройте представление Ветви в team Обозреватель, а затем дважды щелкните локальную ветвь. Кроме того, можно выбрать имя текущей ветви в строке состояния и выбрать другую ветвь.
В меню Git в строке меню выберите Управление ветвями, щелкните правой кнопкой мыши ветвь и выберите пункт Извлечь.
Создание и переключение на новую ветвь
git checkout -b branchname
Откройте представление Ветви в team Обозреватель, щелкните правой кнопкой мыши ветвь и выберите Создать локальную ветвь от.
В меню Git в строке меню выберите Управление ветвями, щелкните правой кнопкой мыши ветвь и выберите Создать локальную ветвь из. и выберите Пункт Извлечь ветвь.
Удаление локальной ветви
git branch -d branchname
Откройте представление Ветви в team Обозреватель, щелкните правой кнопкой мыши ветвь и выберите Удалить. Вы должны быть извлечены в другую ветвь, отличную от той, которую вы хотите удалить.
В меню Git в строке меню выберите Управление ветвями, щелкните правой кнопкой мыши ветвь и выберите Удалить.
Удаление удаленной ветви
git push origin —delete branchname
Откройте представление Ветви в team Обозреватель, разверните удаленный репозиторий с ветвью, которую нужно удалить. Щелкните правой кнопкой мыши удаленный репозиторий и выберите Удалить ветвь из удаленного репозитория.
В меню Git в строке меню выберите Управление ветвями, щелкните правой кнопкой мыши удаленную ветвь и выберите Удалить.
Блокировка ветви, предотвращение ее обновлений
В Интернете выберите вкладку Ветви при просмотре репозитория. Выберите . рядом с ветвью, которую нужно заблокировать, и нажмите кнопку Заблокировать. Разблокируйте ветвь с помощью команды Unlock.
Настройка ветвь по умолчанию в репозитории Azure DevOps
![]()
Щелкните значок параметров в Интернете ( ), а затем перейдите на вкладку Управление версиями. Выберите репозиторий Git, а затем щелкните . рядом с именем ветви и выберите Задать как ветвь по умолчанию.
Настройка ветвь сравнения для запросов на вытягивание в репозитории Azure DevOps
В Интернете выберите вкладку Ветви при просмотре репозитория. Выберите . рядом с ветвью, которую нужно заблокировать, и выберите Сравнить ветвь.
Дополнительные сведения см. в следующих ресурсах:
- Создание работы и управление ими в ветвях
- Управление ветвями Git в Azure DevOps Services/TFS
- Удаление ветви Git в репозитории Azure DevOps Services/TFS
- Блокировка и разблокировка ветви Azure DevOps Services/TFS
Фиксации
Разделы справки?
Командная строка Git
Обозреватель Team Explorer в Visual Studio
Меню Git в Visual Studio
git commit -m «message«
Откройте представление Изменения в командной Обозреватель. Чтобы внести изменения, щелкните правой кнопкой мыши измененные файлы и выберите Этап. Введите сообщение фиксации и выберите Зафиксировать поэтапно.
В меню Git в строке меню выберите Фиксация или Зафиксировать , чтобы просмотреть изменения Git. Чтобы внести изменения, щелкните правой кнопкой мыши измененные файлы и выберите Этап. Введите сообщение фиксации и выберите Зафиксировать поэтапно.
Изменение последней фиксации с помощью промежуточных изменений
git commit —amend -m «Обновленное сообщение«
Откройте представление Изменения в team Обозреватель, разверните изменения, а затем выберите Изменить предыдущую фиксацию в раскрывающемся списке Действия.
В меню Git в строке меню выберите Фиксация или Зафиксировать , чтобы просмотреть изменения Git. подготовьте один или несколько файлов, введите сообщение о фиксации, нажмите кнопку Изменить, а затем щелкните Зафиксировать поэтапно.
Поэтапное изменение всех файлов
Откройте представление Изменения в командной Обозреватель. + Щелкните значок в списке Изменения, чтобы подготовить все изменения для следующей фиксации.
В меню Git в строке меню выберите Фиксация или Зафиксировать , чтобы просмотреть изменения Git. + Щелкните значок в списке Изменения, чтобы подготовить все изменения для следующей фиксации.
Поэтапное изменение определенного файла
git add имя_файла
Откройте представление Изменения в командной Обозреватель. Чтобы изменить изменения, щелкните правой кнопкой мыши измененный файл и выберите Этап.
В меню Git в строке меню выберите Фиксация или Зафиксировать , чтобы просмотреть изменения Git. Чтобы изменить изменения, щелкните правой кнопкой мыши измененный файл и выберите Этап.
Просмотр незамеченных изменений
git status —untracked
Откройте представление Изменения в командной Обозреватель. Незамеченные изменения перечислены в разделе Изменения .
В меню Git в строке меню выберите Фиксация или Зафиксировать , чтобы просмотреть изменения Git. Незамеченные изменения перечислены в разделе Изменения .
git rm имя_файла
git commit -m «filename«
Удалите файл с помощью Обозреватель решений, командной строки или любым другим способом. Щелкните правой кнопкой мыши удаленный файл в представлении Изменения команды Обозреватель и выберите Этап. Выберите Зафиксировать промежуточно, чтобы зафиксировать удаление.
Удалите файл с помощью Обозреватель решений, командной строки или любым другим способом. В меню Git в строке меню выберите Фиксация или Зафиксировать , чтобы просмотреть изменения Git , и выберите Этап. Выберите Зафиксировать промежуточно, чтобы зафиксировать удаление.
git mv имя_файла
git commit -m » Перемещено имя файла«
Переместите файл из одного расположения в другое в репозитории с помощью Обозреватель решений, командной строки или других средств. Щелкните правой кнопкой мыши перемещенный файл в представлении Изменения команды Обозреватель и выберите Этап. Выберите Зафиксировать промежуточный, чтобы зафиксировать перемещение.
Переместите файл из одного расположения в другое в репозитории с помощью Обозреватель решений, командной строки или других средств. В меню Git в строке меню выберите Фиксация или Зафиксировать , чтобы просмотреть изменения Git. Выберите Зафиксировать промежуточный, чтобы зафиксировать перемещение.
Добавление тегов к фиксации
git tag -a tagname -m «description«
Откройте представление Изменения в team Обозреватель, а затем выберите Просмотреть журнал. « в раскрывающемся списке Действие. Найдите фиксацию в представлении журнала, щелкните правой кнопкой мыши и выберите Создать тег.
В меню Git в строке меню выберите Управление ветвями, щелкните правой кнопкой мыши ветвь и выберите Просмотр журнала. Найдите фиксацию в представлении Журнал, щелкните правой кнопкой мыши и выберите Создать тег.
Дополнительные сведения см. в разделе Сохранение работы с фиксациями.
Сравнение файлов и версий
Разделы справки?
Командная строка Git
Обозреватель Team Explorer в Visual Studio
Меню Git в Visual Studio
Сравнение текущего содержимого одного файла и содержимого последней фиксации
git diff HEAD имя_файла
Щелкните правой кнопкой мыши изменение в представлении Изменения в командной Обозреватель и выберите Сравнить с неизмененные.
В меню Git в строке меню выберите Фиксация или Зафиксировать , чтобы просмотреть изменения Git. Щелкните правой кнопкой мыши изменение и выберите сравнить с неизмененные.
Сравнение текущей версии с ветвью
git diff branchname
Щелкните правой кнопкой мыши файл в Обозреватель решений и выберите Просмотреть журнал. , а затем выберите последнюю фиксацию в текущей ветви и последнюю фиксацию в удаленной ветви. Щелкните правой кнопкой мыши и выберите сравнить.
Сравнение изменений между двумя ветвями
git diff branchname1branchname2
Щелкните правой кнопкой мыши файл в Обозреватель решений и выберите Просмотреть журнал. , а затем выберите последние фиксации для обеих ветвей. Щелкните правой кнопкой мыши и выберите сравнить.
Дополнительные сведения см. в статье Сравнение версий и журнала отзывов.
Синхронизация изменений
Разделы справки?
Командная строка Git
Обозреватель Team Explorer в Visual Studio
Меню Git в Visual Studio
Скачивание новых ветвей и фиксаций из удаленного репозитория, но не слияние их с локальными ветвями
Откройте представление синхронизации в командной Обозреватель и выберите Выбор.
В меню Git в строке меню выберите Фиксация или Зафиксировать , чтобы просмотреть изменения Git. Щелкните стрелку Выборка .
Объединение обновлений из удаленного репозитория в локальный репозиторий
git pull remotebranchname
При работе с ветвью в локальном репозитории откройте представление синхронизации в командной Обозреватель, а затем выберите Вытягивание.
В меню Git в строке меню выберите Фиксация или Зафиксировать , чтобы просмотреть изменения Git. Щелкните стрелку Потянуть .
Публикация локальной ветви в удаленном репозитории
git push -u remotebranchname
Откройте представление синхронизации в командной Обозреватель и выберите Опубликовать в разделе Исходящие фиксации.
В меню Git в строке меню выберите Фиксация или Зафиксировать , чтобы просмотреть изменения Git. Щелкните стрелку push-уведомлений
Синхронизация локальной ветви с удаленной ветвью, отправка локальных изменений и извлечение удаленных изменений
git pull remotebranchname
git push -u remotebranchname
Откройте представление Синхронизация в командной Обозреватель. Выберите Синхронизировать.
В меню Git в строке меню выберите Фиксация или Зафиксировать , чтобы просмотреть изменения Git. Щелкните значок синхронизации .
Принудительное отправить ветвь, переписывая журнал удаленной ветви с журналом текущей ветви.
git push —force -u origin remote_branchname
Работа из командной строки
Работа из командной строки
Дополнительные сведения см. в следующих ресурсах:
- Совместное использование кода с помощью команды push
- Обновление кода с помощью извлечения и извлечения
- Устранение конфликтов слияния
Слияние и изменение базы
Разделы справки?
Командная строка Git
Обозреватель Team Explorer в Visual Studio
Меню Git в Visual Studio
Слияние ветви с текущей ветвью
git merge branchname
В представлении Team Обозреватель Ветви щелкните правой кнопкой мыши ветвь, которую требуется объединить, и выберите команду Объединить с... Проверьте заданные параметры и нажмите кнопку Объединить.
В меню Git в строке меню выберите Управление ветвями, щелкните правой кнопкой мыши ветвь, которую нужно объединить, и выберите Объединить >.
Слияние удаленной ветви с текущей ветвью
git pull origin branchname
В представлении Командные Обозреватель Ветви щелкните правой кнопкой мыши удаленную ветвь, которую требуется объединить, и выберите Команду... Проверьте заданные параметры и нажмите кнопку Объединить.
В меню Git в строке меню выберите Управление ветвями, щелкните правой кнопкой мыши удаленную ветвь, которую требуется объединить, и выберите Объединить с .
Перебазируйте текущую ветвь в журнал другой ветви.
git rebase branchname
В представлении Team Обозреватель Branchs (Команды Обозреватель ветви) щелкните правой кнопкой мыши ветвь, в которой вы хотите изменить текущую ветвь, и выберите Пункт Перебазировать на.
В меню Git в строке меню выберите Управление ветвями, щелкните правой кнопкой мыши удаленную ветвь, которую требуется перебазировать, и выберите Перебазировать в .
Выполнить интерактивное перебазовку последних n фиксаций
git rebase -i HEAD ~n (Linux и macOS)
git rebase -i «HEAD ^n» (Windows)
Выбор фиксации в текущей ветви
git cherry-pick commitID
Откройте представление Изменения в team Обозреватель, а затем выберите Просмотреть журнал. в раскрывающемся списке Действие. Найдите фиксацию в представлении Журнал, щелкните правой кнопкой мыши и выберите Cherry-pick.
В меню Git в строке меню выберите Управление ветвями, найдите представление Журнал, щелкните правой кнопкой мыши и выберите Cherry-pick.
Дополнительные сведения см. в следующих ресурсах:
- Устранение конфликтов слияния
- Перехват и воспроизведение изменений с помощью rebase
- Копирование изменений путем их отбора
Отменить
Если вы не являетесь опытным пользователем Git, соблюдайте осторожность при использовании reset команды . Подробнее
Разделы справки?
Командная строка Git
Обозреватель Team Explorer в Visual Studio
Меню Git в Visual Studio
Отмена всех изменений и откат до последней фиксации
git reset —hard HEAD
Откройте представление Изменения в командной Обозреватель. Выберите Действия и выберите Просмотр журнала в раскрывающемся списке. Щелкните правой кнопкой мыши фиксацию, в которой находится ветвь, и выберите сбросить и удалить изменения. .
В меню Git в строке меню выберите Управление ветвями, щелкните правой кнопкой мыши фиксацию, в которой находится ветвь, и выберите Сбросить>удаление изменений (—hard)
Отмена промежуточного хранения файлов, но сохранение изменений файлов
git reset —mixed HEAD
Откройте представление Изменения в командной Обозреватель. Выберите Действия и выберите Просмотр журнала в раскрывающемся списке. Щелкните правой кнопкой мыши фиксацию, в которой находится ветвь, и выберите Сброс и Сохранить изменения.
В меню Git в строке меню выберите Управление ветвями, щелкните правой кнопкой мыши фиксацию, в которой находится ветвь, и выберите Сбросить>сохранить изменения (—mixed)
Удаление неотслеченных файлов
В представлении Изменения в team Обозреватель щелкните правой кнопкой мыши файлы, которые нужно удалить в разделе Изменения, помеченные параметром [добавить], и выберите Удалить.
В меню Git в строке меню выберите Зафиксировать или Сохранить , чтобы открыть Git Changes, щелкните правой кнопкой мыши файлы для удаления в разделе Изменения , помеченные как A , и выберите Удалить.
Сброс локальной ветви до последней фиксации в удаленной ветви
git reset —hard Удаленного/branchname
(например, git reset —hard origin/main )
Щелкните правой кнопкой мыши ветвь в представлении Ветви команды Обозреватель и выберите сбросить и удалить изменения.
В меню Git в строке меню выберите Управление ветвями, щелкните правой кнопкой мыши ветвь и выберите Сбросить>удалить изменения (—hard)
Отмена фиксации, отправленной в удаленный репозиторий
git revert commitID
Откройте представление Изменения в командной Обозреватель. Выберите Действия и выберите Просмотр журнала в раскрывающемся списке. Щелкните правой кнопкой мыши фиксацию, чтобы отменить изменения, и выберите Отменить.
В меню Git в строке меню выберите Управление ветвями, щелкните правой кнопкой мыши фиксацию в журнале и выберите Отменить.
Похожие статьи
Рабочая директория — Введение в Git
После клонирования репозитория hexlet-git мы можем увидеть внутри него директорию .git и добавленные нами файлы. Посмотрим, что произойдет, если удалить один из файлов:
rm PEOPLE.md git status On branch main Your branch is up to date with 'origin/main'. Changes not staged for commit: (use "git add/rm . " to update what will be committed) (use "git restore . " to discard changes in working directory) deleted: PEOPLE.md no changes added to commit (use "git add" and/or "git commit -a")
Git сообщает, что файл был удален, и предлагает команды для восстановления или коммита изменений. Здесь стоит остановиться и немного погрузиться в то, как работает git. Откуда он вообще знает, что файл был удален? Ответ на этот вопрос вы узнаете в этом уроке.
Как узнать статус репозитория
Внутри директории проекта мы видим файлы проекта с одной стороны и директорию .git с другой.
Репозиторием является именно директория .git. Она хранит всю информацию о том, какие были изменения, а также сами изменения.
А вот все, что находится снаружи, это так называемая рабочая директория (working directory). Эти файлы извлекаются из .git в момент клонирования.
Каждый раз, когда мы производим изменения в рабочей директории, Git сравнивает измененные файлы с файлами внутри .git, то есть их состоянием на момент последнего коммита. Если есть изменения относительно последней зафиксированной версии, то Git сообщает нам об этом в выводе команды git status .
В этом очень легко убедиться, если последовать совету Git в выводе выше и восстановить удаленный файл:
date with 'origin/main'. nothing to commit, working tree clean # Сам файл вернулся таким, каким он был на момент последнего коммита
Можно удалить все файлы в рабочей директории и потом без проблем их восстановить. Так мы достигаем важной цели — создаем возможность быстро восстановить последнюю версию кода, если внесенные изменения нас больше не устраивают.
Еще мы можем закоммитить их, если это нужно:
rm PEOPLE.md # Любое изменение нужно добавлять в индекс git add PEOPLE.md git commit -m 'remove PEOPLE.md' [main e15afd2] remove PEOPLE.md 1 file changed, 1 deletion(-) delete mode 100644 PEOPLE.md # Теперь этот файл пропал из рабочей директории
Обратите внимание на важную деталь. Независимо от того, удаляем мы файл, добавляем или меняем, процедура выполнения коммита не меняется. После изменений всегда делается git add , который подготавливает изменение к коммиту (а не добавляет файл). После этого выполняется коммит.
Кстати, у Git есть команда git rm , которая объединяет в себе удаление и подготовку к коммиту:
rm PEOPLE.md # Равносильно rm + git add
Самостоятельная работа
- Выполните все шаги из урока
- Удалите файл NEW.md и сделайте коммит
- Добавьте файл INFO.md с текстом git is awesome! и сделайте коммит
- Залейте изменения на GitHub с помощью git push
- Обновите страницу репозитория на GitHub и изучите произошедшие изменения
![]()
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
Как создать (добавить) директорию?
Первый день работаю с 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 .
Советы для тех, кто осваивает Git
Про папки, репозитории и некоторые сложности при освоении контроля версий.
Периодически от студентов приходят вопросы о работе системы контроля версий Git. Частая причина возникновения этих вопросов — непонимание разницы между репозиторием и обычной папкой.
Чтобы исправить ситуацию, Ильнар Шафигуллин, эксперт по data science и методолог программы «Разработчик», подготовил небольшую заметку на эту тему. Давайте разберемся, как работать с папками и репозиториями с точки зрения практики, то есть без строгих определений.
Пункт 1. Про папки и репозитории
Если папка — это то, к чему мы все привыкли как пользователи компьютеров, то репозиторий — это что-то новое, что нужно создать, инициализировать. Сам по себе репозиторий без наших указаний не появляется. Репозиторий в наших задачах — это папка, над которой были произведены некоторые действия, и Git в ней начинает выполнять свои задачи, например:
- отслеживать изменения файлов;
- хранить информацию о ветках.
Важно! Репозиторий не возникает сам по себе, его нужно создать.
Узнай, какие ИТ — профессии
входят в ТОП-30 с доходом
от 210 000 ₽/мес
Павел Симонов
Исполнительный директор Geekbrains
Команда GeekBrains совместно с международными специалистами по развитию карьеры подготовили материалы, которые помогут вам начать путь к профессии мечты.
Подборка содержит только самые востребованные и высокооплачиваемые специальности и направления в IT-сфере. 86% наших учеников с помощью данных материалов определились с карьерной целью на ближайшее будущее!
Скачивайте и используйте уже сегодня:

Павел Симонов
Исполнительный директор Geekbrains
Топ-30 самых востребованных и высокооплачиваемых профессий 2023
Поможет разобраться в актуальной ситуации на рынке труда
Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка
Только проверенные нейросети с доступом из России и свободным использованием
ТОП-100 площадок для поиска работы от GeekBrains
Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽
Получить подборку бесплатно
Уже скачали 25514
Пункт 2. Как понять, в репозитории мы находимся или в папке
Самый простой способ это сделать — набрать в терминале команду «git status». Если в ответ вы увидите ошибку «fatal: not a git repository (or any of the parent directories): .git», значит, в терминале вы вызываете команду не из репозитория, а из обычной папки. Если вы увидели что-то другое, то вы находитесь в репозитории или внутри одной из папок, которая находится в нем.
Важно! Репозиторий отслеживает изменения во всех вложенных в него папках.
Если вы сделаете репозиторием корневую папку на диске C (не делайте этого!), то весь ваш диск станет репозиторием и Git будет пытаться отслеживать все изменения на этом диске. Создаем репозитории очень аккуратно.
Пункт 3. Как можно создать репозиторий
На лекциях программы «Разработчик» мы рассматриваем два способа:
Если мы находимся в папке (!) и хотим сделать из нее репозиторий, то вызываем команду «git init», и эта папка становится репозиторием.
Если мы хотим клонировать репозиторий из GitHub на свой ПК, то мы пользуемся командой «git clone». При этом обратите внимание: не нужно пользоваться командой «git init», команда clone не только скачивает файлы из интернета, но и инициализирует репозиторий в скачанной папке. На самом деле она делает сильно больше, но нам важно, что в скачанной папке у нас уже будет репозиторий и никак дополнительно инициализировать его не надо.
Для вас подарок! В свободном доступе до 14.01 —>
Скачайте ТОП-10 нейросетей, которые помогут облегчить
вашу работу
Чтобы получить подарок, заполните информацию в открывшемся окне
Пункт 4. Внимательно следим за тем, из какой папки вы вызываете команды
Терминал всегда показывает, в какой папке вы сейчас находитесь, но первое время студенты чаще смотрят на то, какая папка открыта в визуальном интерфейсе VSCode, а не на то, что написано в терминале. Обращайте, пожалуйста, внимание на название папки, которая указана в приглашении к вводу команд терминала. До тех пор, пока вы не привыкнете к работе с терминалом, внимательно следите за тем, что вы создаете репозитории только во вновь созданных для урока папках. Не нужно создавать репозитории из рабочего стола или других больших папок.
Пункт 5. Не нужно создавать репозитории внутри другого репозитория
Повторюсь: не нужно создавать репозиторий внутри репозитория. Прежде чем вызывать команды «git init» или «git clone», сначала убедитесь, что вы точно не внутри репозитория. Вызовите «git status» и убедитесь, что вы находитесь в папке, а не в репозитории. Если «git status» выдал ошибку «fatal: not a git repository (or any of the parent directories): .git», значит, вы в этой папке можете воспользоваться одним из способов создания репозитория, рассмотренным выше и на лекциях. Либо «git init», либо «git clone», но не обоими одновременно.
Важно! Иногда студенты сначала вызывают «git init» и потом «git clone». Но тем самым вы нарушаете правило не создавать репозиторий внутри репозитория. Обращайте на это внимание.
Дарим скидку от 60%
на обучение «DevOps-инженер» до 14 января
Уже через 9 месяцев сможете устроиться на работу с доходом от 150 000 рублей

Пункт 6. Как репозиторий сделать обычной папкой
Когда вы создаете репозиторий, у вас в папке появляется новая скрытая папка с названием «.git». Это специальная папка, в которой хранится все, что необходимо для работы системы контроля версий. Если вы удалите эту папку, то потеряете всю историю, которую Git успел сохранить, но при этом превратите ваш репозиторий обратно в папку.
Итак, чтобы из репозитория снова сделать папку, достаточно всего лишь удалить скрытую папку «.git». При этом вы потеряете историю, которую собрал Git (все коммиты, ветки и т. п.), но файлы в самой папке останутся в том же виде, в котором они были в момент удаления папки «.git».
Пункт 7. Что делать, если все вокруг стало репозиторием
У студентов, которые неаккуратно вводят команду «git init», такое встречается. Поэтому давайте разберемся, что делать в такой ситуации. Надо проверить, успели ли вы уже совершить такую ошибку. Создайте новую пустую папку, например на рабочем столе, и в терминале вызовите «git status» в этой папке. Если вы увидите «fatal: not a git repository …», то радуемся. Все у вас в порядке.
Только до 11.01
Скачай подборку материалов, чтобы гарантированно найти работу в IT за 14 дней
Список документов:

ТОП-100 площадок для поиска работы от GeekBrains

20 профессий 2023 года, с доходом от 150 000 рублей

Чек-лист «Как успешно пройти собеседование»
Чтобы зарегистрироваться на бесплатный интенсив и получить в подарок подборку файлов от GeekBrains, заполните информацию в открывшемся окне
Если же вы увидели что-то другое, значит, ваша вновь созданная папка является частью какого-то другого репозитория. Важно: мы только что создали новую папку и внутри нее никаких команд кроме «git status» не вызывали, то есть мы не создали сейчас новый репозиторий, но Git при этом не говорит нам, что это «not a git repository». Это может быть только в том случае, если вы эту новую папку создали уже внутри другого репозитория, то есть чуть раньше сделали репозиторием ваш рабочий стол или даже весь ваш диск C. Вылечить такую ситуацию можно следующим образом: нужно найти репозиторий, который вы создали по ошибке, и сделать его обратно папкой (см. предыдущий пункт — нужно удалить папку .git).
Если вы работаете на Windows, включите отображение скрытых файлов и папок, так как папка .git скрытая. Далее начинаем подниматься по иерархии папок вверх и искать в них папки «.git». Например, если вы создали папку по адресу «C:\Users\User\Pictures\ControlCenter\Scan», то сначала проверяете папку Scan, потом проверяете папку ControlCenter, потом Pictures и так далее, пока не найдете скрытую папку .git. Когда нашли и удалили, проводим проверку из начала этого пункта заново.
Успехов в освоении Git и терминала!