- Команда выводит путь к текущей папке
pwd
- Создание папки
mkdir название папки
- Перейти в папку
cd название папки
- Перейти в родительскую папку
cd ..
- Создание пустого файла
touch название файла
- Создание файла с текстом
echo "Any text" > file.txt
- Список файлов в папке
ls
- Прочитать файл
cat file.txt
- Удаление файла
rm file.txt
-
Открытие проекта через терминал в редакторе кода
- Открыть окно с настройками (Mac: Cmd + Shift + P, Win: Ctrl + Shift + P)
- Выбрать Shell Command: Install 'code' command in PATH
- После этого набрать в терминале команду
code .
- Проект откроется в редакторе кода
git --version
- gitconfig - Изменение конфигурации Git
- --global - Имя будет настроено глобально для всех репозиториев
- user.name - Настройка имени автора
- user.email - Настройка емэйла автора
Имя автора будет использоваться во всех репозиториях на вашем компьютере и будет браться из этого файла конфигурации
git config --global user.name "Your Name"
git config --global user.email "your email"
git config --list
Команда вводится в той папке, в которой планируется создать новый пустой репозиторий
git init
После инициализации репозитория создается скрытая папка .git
Если был создан случайно репозиторий локально, можно просто удалить папку .git, это полностью уничтожит репозиторий и, разумеется, отменит то,что сделал git init
команда:
rm -r .git
git remote add origin URL репозитория
- Отображение скрытых папрк и файлов
Terminal, iTerm2 (Mac), Git Bash (Windows)
ls -la
- PowerShell (Windows)
ls -Force
- Рабочая директория (Working directory) - видимые файлы и папки проекта.
- Индекс (Staging area) - в эту область добавляются файлы, которые хотим сохранить. Подготавливаем файлы для коммита.
- Репозиторий (Repository) - сохранение файлов в репозиторий. То,что находится в папке .git. Там хранится информация обо всех версиях проекта, коммитов
Зона Staging area и Repository скрыты в папке .git
Эта команда показывает те изменения,которые уже находятся в Staging area и которые были подготовлены для коммита.
git status
ВСЕ ОБЪЕКТЫ GIT СОХРАНЯЮТСЯ В ПАПКУ objects, в которой создаются подпапки с хэш-номером(уникальный идентификатор) объекта.
Команда git add добавляет файл, либо файлы из Working directory в Staging area
git add название файла
Этой командой мы подготавливаем файлы для сохранения в репозиторий, посредством перемещения в Staging area
Команда git commit сохраняет файлы из Staging area в Repository
git commit
Создается объект git со своим идентификационным номером, который помещается в папку .git/objects
Git берет объекты из репозитория и переносит их в рабочую директорию.
git checkout
-
Untracked - Неотслеживаемый, те файлы, которые только что добавили в Working directory (Новый файл)
-
Staged - Подготовленный, файл, добавленный в Staging area
-
Unmodified - Немодифицированный, те файлы, которые сохранены в Repository
-
Modified - Модифицированный, файлы находящиеся в рабочей директории и которые можно подготовить для сохранения(перенести в Staging area) после этого их состояние становится Staged
Коммит - это ссылка на определенное дерево. Все коммиты связаны между собой. Также это объект git, который созраняется в папке .git.
Указатель(Ссылка) HEAD на определенный коммит, т.е. в Working directory мы видим именно ту версию проекта, на которую ссылается HEAD указатель
Ветка ссылки всегда ссылается на последний коммит, чтобы видеть самую свежую версию.
git-status показывает какие файлы были изменены или добавлены, а также показывает какие файлы находятся в Staging area
git status
Команда git add подготавливает файлы перед коммитом, занося их в Staging area
git add
Команда git add -A возьмет абсолютно все файлы, которые находятся в папке,в которой был создан репозиторий и добавит их в в Staging area
git add -A
Команда git add . добавит файлы только текущей директории, в которой запущена команда и добавит их в в Staging area
git add .
Сохранение всех изменений из Staging area в Repository с названием коммита
Сообщение указывает на то,что сделано в этом коммите
git commit -m "message"
Команда git log показывает историю изменений коммитов
git log
Команда git checkout с помощью нее и хэш номера коммита можно перейти в определенную версию проекта Можно использовать 4 или 5 начальных символов коммита. После этого Git переместит указатель HEAD на определенный коммит, который мы указали. Т.е git возьмет объекты,соответствующие этому коммиту и переместит их в рабочую область.
git checkout commit hash
Также с помощью этой команды можно перейти на определенную ветку проекта. Ветка ссылается на последний коммит,сделанный в этой ветке
git checkout branch name
Git созраняет содержимое объектов в бинарном формате, поэтому чтобы прочитать объект Git есть специальные команды:
git cat-file -t хэш номер флаг -t указывает на тип объекта
git cat-file -t хэш номер(достаточно первых 7 символов)
Команда
git cat-file -p хэш номер(достаточно первых 7 символов)
покажет содержимое коммита
ВЕТКА - это ссылка на коммит. Когда мы работаем в рамках одной ветки, Git автоматически перемещает ссылку на самый последний коммит. Указатель HEAD используется для переключения между ветками и перехода на разные коммиты этих веток.
Команда создания новой ветки. Название лучше давать такое, по которому можно понять,что именно разрабатывается в этой ветке.
git branch branch name
Переключение между ветками. Указатель HEAD перемещается на указанную ветку
git checkout branch name
Создание новой ветки и переход в нее
git checkout -b branch name
Отображает список ветвей в проекте
git branch
Переименовать ТЕКУЩУЮ ветку
git branch -m new branch name
Удаление ветки. Текущую ветку нельзя удалить, если вы хотите удалить текущую ветку, нужно из нее выйти
git branch -d branch name
Слияние ветки (feature branch) в текущую ветку (receiving branch). Т.е указываем название ветки, которую хотим слить с текущей веткой. Для этого нужно перейти в ту ветку и находясь в ней произвести команду:
git merge feature branch name
После этого git автоматически создаст merge commit, у которого будет 2 родительских коммита
- Создать новую ветку new-feature из ветки main
- Перейти в новую ветку new-feature
- Внести изменения в проект (создание новых файлов и папок, изменить существующие)
- Создать коммит или несколько коммитов в ветке new-feature
- Перейти обратно в ветку main и также создать коммиты
- Выполнить слияние ветки new-feature в ветку main
- После слияния ветку new-feature можно удалить (т.к все коммиты этой ветки сохранятся в merge commit ветки main)
После слияния веток выведется сообщение "Merge made by the 'ort' strategy"
ort strategy - это стратегия объединения веток по умолчанию для всех версий гита начиная с 2.31.0
Команда для копирования удаленного репозитория в локальный (клонирование репозитория)
git clone url
Т.е все объекты git скачиваются с удаленного репозитория и устанаваливаются на ваш компьютер
Если репозиторий публичный (Public), то абсолютно любой человек может скачать себе на компьютер этот репозиторий,если же частный (Private), то сделать это могут только те, у кого есть права
ORIGIN - это имя удаленного репозиторися по-умолчанию.
Команда git branch -a отображает все ветки, включая те, которые находятся в удаленных репозиториях
git branch -a
Абсолютно любая ветка доступна нам после того, как мы установили связь с удаленным репозиторием и мы можем на нее переключаться с помощью команды git checkout branch name
Команда git pull - загрузка и применение изменений с удаленной ветки в локальную
git pull
Т.е если локально мы находимся в ветке new-Feature, то примени команду мы скачаем изменения с этой же ветки удаленног репозитория, но для этог необходимо, чтобы была связь между локальным и удаленным репозиторием
Команда git push - загрузка изменений из локальной ветки в ветку удаленного репозитория
git remote add origin url
origin - это название репозитория,которое можно использовать в дальнейшем и не вводить url репозитория
Также можно связывать локальный репозиторий с несколькими удаленными репозиториями, как правило такой репозиторий только один.
Команда git push -u origin branch - загрузка изменений из локальной ветки в удаленную с созданием связи между ними
git push -u origin branch name(название удаленной ветки)
В этой команде говорим Git, что при первой загрузке изменений из локальной ветки main на удаленный сервер под названием origin, мы хотим связать локальную ветку main с соответствующей удаленной веткой, например тоже main
Дальнейшие загрузки изменений в ветку удаленного репозитория после установки связи между локальной и удаленной ветками
git push
Проверка как именно локальная ветка master связана с удаленной веткой master
git branch -vv
Проверка на создание удаленных серверов на локальном
git remote