↓Перейти к содержанию
  1. Git: руководства и команды/

Навигация в Git Bash: перемещение между папками

··8 минут·

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

Основная команда: cd (change directory) #

cd — команда для перемещения между папками. Работает одинаково в Git Bash, macOS Terminal и Linux.

# Перейти в папку в текущей директории
cd my-project

# Перейти в подпапку
cd projects/my-project

# Перейти в папку с пробелом в имени
cd "My Project"

После cd подсказка изменится, показывая новый путь.

Узнать где вы находитесь: pwd #

# Показать текущую папку (Print Working Directory)
pwd

# Вывод в Git Bash на Windows:
# /c/Users/YourName/Documents/my-project
# (Диски C:, D: отображаются как /c, /d)

Просмотр содержимого папки: ls #

# Содержимое текущей папки
ls

# С подробностями (права, размер, дата)
ls -la

# Скрытые файлы (начинающиеся с .)
ls -a

# Содержимое конкретной папки
ls ~/Projects

Абсолютные пути #

Абсолютный путь — полный путь от корня файловой системы. На Windows диски обозначаются /c/ вместо C:\:

# Перейти на диск C в папку Documents
cd C:/Users/YourName/Documents

# Git Bash понимает оба формата:
cd C:/Users/YourName/Documents
cd C:\Users\YourName\Documents

# Через Unix-нотацию
cd /c/Users/YourName/Documents

# Перейти на диск D
cd D:/Projects
cd /d/Projects

Относительные пути #

Относительный путь — от текущей папки:

# Перейти в подпапку
cd src
cd src/components

# Перейти на уровень выше
cd ..

# Два уровня вверх
cd ../..

# Вверх и в соседнюю папку
cd ../other-project

# Перейти в папку рядом с текущей
cd ../sibling-folder/subfolder

Специальные пути #

# Домашняя папка (/c/Users/YourName)
cd ~
cd  # без аргументов — тоже домашняя папка

# Вернуться в предыдущую папку
cd -
# Полезно для переключения между двумя папками

# Корень файловой системы
cd /

Автодополнение (Tab) #

Tab — главный инструмент для быстрой навигации. Начните вводить имя папки и нажмите Tab:

# Начните вводить
cd Docu
# Нажмите Tab
cd Documents  # автодополнение

# Несколько вариантов — нажмите Tab ещё раз
cd Do  # Tab Tab
# Показывает: Documents/ Downloads/

Автодополнение работает для папок, файлов и Git команд.

Практический пример: открыть Git проект #

# 1. Открыть Git Bash (Пуск → Git Bash)
# Вы находитесь в домашней папке

# 2. Посмотреть что здесь есть
ls

# 3. Перейти в папку с проектами
cd Documents/Projects
# или
cd ~/Documents/Projects

# 4. Посмотреть список проектов
ls

# 5. Перейти в нужный проект
cd my-website

# 6. Убедиться что это Git репозиторий
git status

Создание папок #

# Создать папку
mkdir new-project

# Создать папку и сразу перейти в неё
mkdir my-app && cd my-app

# Создать вложенные папки сразу
mkdir -p projects/2024/my-app

Работа с путями содержащими пробелы #

Если имя папки или файла содержит пробелы — нужны кавычки:

# Неправильно (Git Bash поймёт как две отдельные команды)
cd My Projects

# Правильно — в кавычках
cd "My Projects"
cd "My Documents/My Project"

# Или экранировать пробелы обратным слэшем
cd My\ Projects

# Абсолютный путь с пробелами
cd "/c/Users/John Smith/Desktop"

Создание и удаление директорий #

# Создать одну папку
mkdir new-folder

# Создать вложенные папки
mkdir -p parent/child/grandchild
# Флаг -p создаёт все промежуточные папки

# Удалить пустую папку
rmdir empty-folder

# Удалить папку со всем содержимым (осторожно!)
rm -rf my-folder

# Проверить перед удалением
ls -la my-folder  # посмотреть что в папке
rm -rf my-folder  # потом удалить

# Удалить только файлы в папке, саму папку оставить
rm -rf my-folder/*

Операции с файлами #

# Скопировать файл
cp source.txt destination.txt

# Скопировать со всеми вложениями
cp -r source-folder/ destination-folder/

# Переместить/переименовать файл
mv old-name.txt new-name.txt

# Посмотреть содержимое файла
cat file.txt

# Показать содержимое с номерами строк
cat -n file.txt

# Просмотр больших файлов постранично
less file.txt  # Нажимайте Space, q чтобы выход

# Удалить файл
rm file.txt

# Удалить несколько файлов
rm file1.txt file2.txt file3.txt

# Найти файлы по имени
find . -name "*.js"

История команд #

# Просмотреть историю последних команд
history

# Показать последние 20 команд
history 20

# Стрелка вверх/вниз — переключение между командами
# Ctrl+R — поиск в истории (Interactive search)
# Ctrl+C — прервать текущую команду
# Ctrl+A — перейти в начало строки
# Ctrl+E — перейти в конец строки
# Ctrl+L — очистить экран

# После Ctrl+R начните вводить часть команды
# Ctrl+R
# (reverse-i-search)`git': git status
# Нажимайте Ctrl+R для поиска далее или Enter для выполнения

Полезные клавиатурные сокращения #

# Tab — автодополнение имён файлов и папок
cd Doc[Tab] → cd Documents

# Ctrl+A — начало строки
# Ctrl+E — конец строки
# Ctrl+K — удалить всё после курсора
# Ctrl+U — удалить всё перед курсором
# Alt+Backspace — удалить слово
# Ctrl+W — удалить слово перед курсором

# Ctrl+D — выход из Git Bash (или type exit)
# Ctrl+Z — отправить процесс в фон (редко используется)

Переменные окружения и PATH #

# Показать значение переменной
echo $PATH
echo $HOME
echo $USER

# Установить временную переменную
export MY_VAR="my value"
echo $MY_VAR

# PATH — список папок где Git Bash ищет исполняемые файлы
# Если команда не найдена — нужно добавить путь в PATH

# Добавить папку в PATH (временно, только для текущей сессии)
export PATH="$PATH:/c/Program Files/MyApp"

# Проверить где находится команда
which git
# /usr/bin/git

which node
# /c/Program Files/nodejs/node.exe

Настройка Git Bash prompt (.bashrc) #

Файл ~/.bashrc выполняется при старте Git Bash. Используйте его для настройки приглашения команд:

# Добавить в ~/.bashrc (откройте Notepad++ или код)
# Путь: C:\Users\YourName\.bashrc

# Простое приглашение с веткой Git
parse_git_branch() {
  git branch 2>/dev/null | grep "^*" | sed 's/^* //'
}

PS1='\u@\h \w (\$(parse_git_branch)) $ '
# Результат: user@hostname ~/project (main) $

# Цветной prompt
PS1='\[\033[32m\]\u@\h\[\033[00m\] \[\033[34m\]\w\[\033[00m\] $ '
# Зелёный текст для имени, синий для пути

Сохраните файл и перезапустите Git Bash.

Часто задаваемые вопросы #

Как перейти на диск D: в Git Bash? cd D:/ или cd /d/. Пример: cd D:/Projects/my-app. Git Bash понимает оба формата: с прямыми слэшами и обратными.

Что значит ../ и когда его использовать? .. указывает на родительскую (вышестоящую) папку. ../ — путь к ней. ../../ — два уровня вверх. Используйте для перемещения к соседним проектам: cd ../../other-project или возвращения из подпапки.

Почему Git Bash использует слэши вперёд (/), а не назад ()? Это Unix-нотация. Git Bash работает на основе Unix-инструментов и использует Unix-пути. Windows пути автоматически транслируются. Оба формата поддерживаются в Git Bash.

Как быстро вернуться в предыдущую папку? cd - переключает между двумя последними папками. Очень удобно для переключения между двумя проектами.

Что делать если пути содержат кириллицу? Заключить путь в кавычки: cd "Мои документы". Хотя работает, рекомендуется избегать кириллицы в путях к проектам — иногда вызывает проблемы с Git и скриптами.

Как работает автодополнение (Tab) в Git Bash? Нажмите Tab когда вводите имя папки или файла. Git Bash автоматически дополнит имя если есть однозначный вариант. Если вариантов несколько — нажмите Tab ещё раз для списка.

Как очистить экран Git Bash? Используйте clear или Ctrl+L. Это не удаляет историю команд, просто прокручивает экран.

Где находится домашняя папка (~)? На Windows это C:\Users\YourName или /c/Users/YourName в Git Bash нотации. В Linux/macOS — /home/user или /Users/user.

Поиск файлов и папок в Git Bash #

# Найти все файлы с расширением .js
find . -name "*.js"

# Найти папки с именем node_modules
find . -type d -name "node_modules"

# Найти большие файлы (более 100MB)
find . -size +100M

# Найти файлы изменённые в последний день
find . -mtime -1

# Поиск по содержимому (grep)
grep -r "function name" .
grep -r "TODO" src/

# Поиск файлов с рекурсией по типу
find . -name "*.log" -type f

Сравнение размеров и подробности файлов #

# Размер папки или файла
du -sh my-folder
du -sh file.txt

# Подробная информация о файлах
ls -lah

# Расшифровка:
# -l: detailed list format
# -a: show hidden files (starting with .)
# -h: human-readable sizes (KB, MB, GB)
# -S: sort by size

# Общий размер всех файлов в папке
du -sh .

# Размер каждой папки в текущей директории
du -sh */

# Показать места где много данных
du -h --max-depth=1 | sort -h

Сочетание команд (pipes) в Git Bash #

Pipes (|) передают вывод одной команды в другую:

# Показать файлы и подсчитать количество
ls -la | wc -l

# Найти все JS файлы и посчитать
find . -name "*.js" | wc -l

# Показать большие файлы (отсортировано)
ls -lhS | head -10  # top 10 files

# Найти в истории команду содержащую 'git'
history | grep git

# Использовать grep для поиска в выводе
ls -la | grep node_modules

Работа с переменными и подстановки команд #

# Сохранить результат команды в переменную
current_dir=$(pwd)
echo "I am in: $current_dir"

# Подставить результат команды в другую команду
git init $(date +%Y-%m-%d-repo)  # создаст папку типа 2026-03-15-repo

# Количество файлов
num_files=$(find . -type f | wc -l)
echo "Found $num_files files"

# Использовать переменные в условиях
project_name="my-app"
mkdir "$project_name"
cd "$project_name"
git init

Быстрая навигация с пользовательскими alias #

Добавить в ~/.bashrc:

# Полезные alias для частых команд
alias l='ls -lah'
alias p='pwd'
alias back='cd -'
alias projects='cd ~/Projects'
alias work='cd ~/Work'

# Alias для Git команд
alias gs='git status'
alias ga='git add'
alias gc='git commit'
alias gp='git push'

# Alias для навигации в подпапки
alias src='cd src'
alias dist='cd dist'
alias test='cd __tests__'

# После добавления в ~/.bashrc, перезагрузить:
source ~/.bashrc

Частые проблемы и решения #

Проблема: “command not found”

# Команда не найдена (обычно файл не в PATH)
node: command not found

# Решение 1: полный путь к команде
/c/Program\ Files/nodejs/node.exe --version

# Решение 2: добавить в PATH (в ~/.bashrc)
export PATH="$PATH:/c/Program Files/nodejs"
source ~/.bashrc

Проблема: “Permission denied” при выполнении скрипта

# Файл не имеет прав на выполнение
./my-script.sh
# bash: ./my-script.sh: Permission denied

# Решение: добавить права на выполнение
chmod +x my-script.sh
./my-script.sh  # теперь работает

Проблема: вывод команды очень большой и быстро листается

# Выводит много данных одновременно
ls -la /c/Windows/System32

# Решение: постранично (нажимайте Space, q для выхода)
ls -la /c/Windows/System32 | less

# Или сохранить в файл
ls -la /c/Windows/System32 > output.txt

Заключение #

Три команды для начала работы: pwd (где я?), ls (что здесь?), cd (перейти куда-то). Привычка использовать Tab автодополнения делает навигацию быстрой. Пользовательские alias экономят время при частых операциях. Для работы с репозиториями в Git Bash — подключение к репозиторию через Git Bash.