Skip to content

Instantly share code, notes, and snippets.

@AnatoliyNBulyga
Last active December 7, 2023 14:07
Show Gist options
  • Star 10 You must be signed in to star a gist
  • Fork 10 You must be signed in to fork a gist
  • Save AnatoliyNBulyga/d0fda04f59af68736eb7e4c8a69760dd to your computer and use it in GitHub Desktop.
Save AnatoliyNBulyga/d0fda04f59af68736eb7e4c8a69760dd to your computer and use it in GitHub Desktop.
GIT list (шпаргалка по git-github)
Инициализировать новый репозиторий:
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