Last active
December 7, 2023 14:07
-
-
Save AnatoliyNBulyga/d0fda04f59af68736eb7e4c8a69760dd to your computer and use it in GitHub Desktop.
GIT list (шпаргалка по git-github)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Инициализировать новый репозиторий: | |
1 | |
git init rep-name | |
Клонировать репозиторий с удаленного сервера: | |
1 | |
git clone git@bitbucket.org:afiskon/hs-textgen.git | |
Добавить в репозиторий файл: | |
1 | |
git add file.txt | |
Удалить файл из репозитория: | |
1 | |
git rm text.txt | |
Проверить текущее состояние репозитория: | |
1 | |
git status | |
Сделать коммит (заиндексировать состояние репозитория): | |
1 | |
git commit -a -m "Commit description" | |
Сделать коммит, введя его описание: | |
1 | |
git commit -m "description" | |
Отправить все ветки локального репозитория на удаленный: | |
1 | |
git push origin | |
Аналогично предыдущему, но делается пуш только ветки master: | |
1 | |
git push origin master | |
Запушить текущую ветку, не вводя целиком ее название: | |
1 | |
git push origin HEAD | |
Закачать все ветки из удаленного репозитория: | |
1 | |
git pull origin | |
Аналогично предыдущему, но закачивается только ветка master: | |
1 | |
git pull origin master | |
Закачать текущую ветку, не вводя ее длинное имя: | |
1 | |
git pull origin HEAD | |
Начать работать с веткой some_branch (-b создает новую): | |
1 | |
git checkout -b some_branch origin/some_branch | |
Создать новую ветку: | |
1 | |
git branch some_branch | |
Переключиться на другую ветку (на уже существующую): | |
1 | |
git checkout some_branch | |
Список доступных веток: | |
1 | |
git branch | |
Список всех существующих веток: | |
1 | |
git branch -a | |
Слить some_branch с текущей веткой: | |
1 | |
git merge some_branch | |
Удалить ветку (после мерджа): | |
1 | |
git branch -d some_branch | |
Посмотреть лог: | |
1 | |
git log --pretty=oneline | |
Лог конкретного файла: | |
1 | |
git log file.txt | |
Как и предыдущий запрос, но с просмотром сделанных изменений: | |
1 | |
git log -p file.txt | |
Лог с именами файлов и с графиками веток и слияний: | |
1 | |
git log --stat --graph | |
Изменения, сделанные в заданном коммите: | |
1 | |
git show df438de | |
Посмотреть, кто менял строчку файла: | |
1 | |
git blame file.txt | |
Откатиться к коммиту (хэш смотрим в «git log» - последние 7 символов): | |
1 | |
git reset --hard d8578ed | |
Создание тэга (для быстрой навигации по коммитам): | |
1 | |
git tag tag_name | |
----------------------------------------------------------------------------------------- | |
1. Создание нового репозитория | |
заходим в папку локального репозитория. | |
здесь и далее в консоли | |
$ git init | |
2 создаем новый файл в папке | |
смотрим изменения в статусах | |
$ git status | |
обнаруживаем файлы которых не было | |
$ git add . // точка означает что добавить нужно все | |
3 запись изменений | |
$ git status | |
обнаруживаем изменения | |
снова делаем | |
$ git add | |
изменения добавлены | |
$ git status | |
все ок | |
Коммитим | |
$ git commit -m "comments" | |
4 откат изменений | |
4.1 откат изменений до добавления в индекс(add)! | |
$ git checkout -- имя.файла | |
$ git reset --hard HEAD // все изменения | |
4.2 откат изменений после до добавления в индекс(add) но до commit | |
4.2.1. откатываем добавление в индекс | |
$ git reset HEAD имф.файла | |
!! HEAD здесь соответствует последнему состоянию | |
4.2.2. откатываем изменения согласно предыдущему п.п. | |
4.2.3 откатиться к commit #хэш удалив последующие коммиты | |
Узнать хэш нужного коммита можно из GUI или командой history. Прежде чем юзать последнее выучи ключи чтобы не попасть под обвал | |
git reset --hard d8578edf8458ce06fbc5bb76a58c5ca4a58c5ca4 | |
4.2.4 откатиться сохранив все последующие коммиты | |
5 заливаем на github | |
заходим github | |
создаем репозиторий на второй страниу выдается указание | |
…or push an existing repository from the command line | |
инструкции оттуда выполняем на своем комп | |
git remote add origin https://github.com/ayavryk/test.git | |
git push -u origin master | |
6 берем с github | |
git clone https://github.com/ayavryk/test.git | |
Жесткое копирование мастер-бранча | |
git fetch --all | |
git reset --hard origin/master | |
git pull origin master | |
7 переключение веток | |
смторим сколько веток есть | |
git branch | |
создаем новую ветку | |
git branch new | |
снова смотрим сколько веток есть и какая активная | |
git branch | |
переключаемся на новую ветку | |
git checkout new | |
снова смотрим сколько веток есть и какая активная | |
git branch | |
правим что-нибудь, добавляем, коммитим уже в новой ветке | |
переключаем на старую ветку master. Убеждаемся что старая - старая | |
переключаем на новую убеждаемся что новая - новая | |
Можно переключиться на новую ветку сразу после ее создания. Для этого нужно указать ключ -b | |
git checkout -b new | |
Merge | |
git merge --nо-ff development | |
здесь сливаемся с веткой development. Ключ --nо-ff указывает на то, что не хотим деталей истории на котором произошло расхождение | |
Clean | |
Удаление всех неотслеживаемых файлов. Аккуратно!!! | |
git clean -d -f | |
git stash | |
Этот вариант склонирует ПОЛНОСТЬЮ весь репозиторий и просто переключится на ветку branch-name: | |
git clone http://whatever.git -b branch-name | |
Иногда нужно склонировать ТОЛЬКО конкретную ветку, тогда: | |
git clone --branch=branch-name http://whatever.git |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment