-
Клонирование репозитория
-
git-clone
- клонирует репозиторий в новую директорию
-
Информационные команды
-
git status
-
Показывает состояние проекта/файлов
-
кол-во untracked, deleted, new и прочих файлов, количество коммитов, на которое отличается локальная версия репозитория от удаленного и тд
- статус файла untracked
- Что система Git не отслеживает этот файл
- статус файла new
- Что файл только начал отслеживаться Git и пока не имеет истории
- статус файла modified
- Что файл имеет историю в системе Git и был изменен относительно его последнего состояния
-
упрощенный вывод
-
git status -s git status --short
- A - отслеживаемые M- отредактированые
-
git log
- Просмотр коммитов, сделанных в репозитории в обратном к хронологическому порядке
-
git diff
-
Просмотр индексированных и неиндексированных изменени
-
что изменили, но ещё не проиндексировали, что проиндексировали и собираетесь фиксировать
- git diff
- непроиндексированные изменения
- git diff --staged
- что проиндексировали и что войдёт в следующий коммит
- git diff --cached
- для просмотра проиндексированных изменений
-
Коммит?
- Это единица состояния проекта в Git
-
Как сделать коммит
-
git add git commit
-
git add filename
- Начинает отслеживать указанный файл или файлы
- git commit -m "my commit"
- git commit -a -m "my first commit"
-
Работа с файлами
-
Отслеживание новых файлов Индексация изменений
- git add filename
-
Удаление файлов
-
1) удалить его из отслеживаемых файлов (удалить его из индекса) 2) выполнить коммит
- git rm
- + удаляет файл из рабочего каталога
-
Переименование файлов
- git mv file_from file_to
-
Работа с ветками
- Это разные пути развития проекта - разные последовательности коммитов
-
Создать ветку
- $ git branch branchname
-
Переключить ветку
- $ git checkout branchname
-
Создать и Переключить ветку
-
git checkout -b branchname
-
аналогично
- $ git branch branchname
- $ git checkout branchname
-
Слияние веток
- git merge targetbranch
-
Удаление ветки
- git branch -d branchname
-
А в какой мы ветке?
- $ git branch
-
Удаленный репозиторий
- git push <ssh key>
-
git push <remote-name> <branch-name>
- отправка изменений в удаленный репозиторий
-
git remote show <remote>
- Просмотр удаленного репозитория
-
git fetch
-
Получение изменений из удалённого репозитория
-
git remote add <shortname> <url>
- присвоили ему имя
-
git fetch <shortname>
- получаем изменения
-
git pull
-
Получение изменений из удалённого репозитория
- извлекает (fetch) данные с сервера, с которого было клонирование, и автоматически пытается слить (merge) их с текущим кодом
-
git push <remote-name> <branch-name>
- Отправка измененийв удаленный репозиторий
-
Основная последовательность действий
- Получили задание
-
Стянули последние изменения
- git pull
-
Создали новую ветку
- git branch branchname
-
Переключились на созданную ветку
- git checkout branchname
-
Работаем=)
- создаем новый файлы, решающие поставленную задачу
-
Смотрим, что у нас изменилось
- git status
-
Начинаем отслеживать все файлы
- git add .
-
Коммитим изменения
- git commit -m "my task"
-
Заливаем изменения
- git push
-
Источники
- https://git-scm.com/about
- https://git-scm.com/book/ru/v2