GIT - шпаргалка
Git — это бесплатная распределенная система управления версиями с открытым исходным кодом, предназначенная для быстрой и эффективной обработки любых проектов, от небольших до очень крупных. Git легко освоить , он занимает мало места и обладает молниеносной производительностью . Он превосходит инструменты SCM, такие как Subversion, CVS, Perforce и ClearCase, благодаря таким функциям, как дешевое локальное ветвление , удобные промежуточные области и несколько рабочих процессов.
Команды GITgit init
- инициализировать гит в текущей директории, создастся папка .git с структурой gitgit add file
- пометить файл к сохранению в репозиторий (коммита), если не указывать файл, пометит всю директориюgit rm
- удалить из гита и рабочей директории файлgit restore
- восстановить удаленный файл из рабочей директории (он сохранен в гите)git ls-files --stage
- просмотр индекс файла, хеш совпадает с именем папки+файла в /objectsgit cat-file -p <хеш>
- узнать тип файлаgit cat-file blob/commit <хеш>
- отобразить содержимое файла из (лежит в objects)git status
- отобразить все 3 набора файлов, коммиты, добавленные к коммиту файлы и недобавленныеgit commit -m
‘Коммент’- сохранить отмеченные файлы в репозиторий, создастся файл коммита и файл tree с снимком индекса на момент коммитаgit log
- история коммитов ветки текущей ветки в виде графаgit log --graph
- история коммитов текущей ветки в виде графаgit log --all --graph --oneline
- история коммитов всех веток в виде компактного графаgit blame file1
- история изменений файла с хешем коммита, датой и автором измененийgit branch
- отобразить список всех ветокgit checkout <хеш коммита>
- переключиться на указанную ветку/коммит, файлы в директории с его версией и если создать коммит, он не будет привязан ни к чему/доступен по идентификаторуgit switch
- - вернуться к основной веткеgit switch -c
- создать веткуgit checkout -b "branch1"
- создать ветку branch1git clone https://github.com/lepkov/devops-school-git
- клонировать удаленный репозиторий к себе в текущую директориюgit reflog
- история переключения всех указателейgit tag sometext
- для создания указателя (который не двигается как ветка) на текущий коммитgit merge bugfix_branch
- слияние в рамках линейной истории, новые объекты не создаются (режим fast forward), переключается указатель на текущую ветку (master) или слияние в рамках нелинейной истории, создаётся новый коммит, который объединяет обе ветки, будет 2 родителяgit chekout new_feature > git rebase master > git merge
- слияние нелинейной истории, коммит будет перенесен как патч в конец ветки master, родитель будет одинgit show-ref
- перечень хранимых указателейgit reset --hard
- перемещает HEAD на указанный коммит и возвращает состояние директории на тот момент, откат изменений залогирован, это нужно например, когда хотим откатить слияние веток, коммит останется, но из истории будет удаленgit checkout
- переставляет указатель HEADgit remote -v
- список удаленных репозиториевgit fetch
- подтянуть все изменения в локальном репозитории из удаленногоgit pull = git fetch + git merge
git push
- отправка изменений загруженной веткиgit push --set-upstream origin master-patched
- залить в репозиторий origin, создавая ветку master-patched, когда например пуш в основную запрещенgit am --show-current-patch
- просмотр и приминение патчей
Важно в конце файлов делать переход на новую строку, это не вызовет проблем в дальнейшем с построчной обработкой файлов.
Только полноправные пользователи могут оставлять комментарии. Аутентифицируйтесь пожалуйста, используя сервисы.