Шпаргалка по командам git
Тут набір основних команд для роботи з git
Створення локального сховища
Створення сховища в папці де виконується команда
$ Git init
Створення сховища в зазначеному каталозі
$ Git init
Створення сховища Git для спільної роботи
$ Git init -bare -share sharedproject.git
Дана команда створює каталог з ім'ям sharedproject.git c правами на запис в нього. Детальніше тут.
Клонування віддаленого сховища в локальний
Клонування локального сховища на віддалений
Якщо у вас вже є локальний репозиторій Git і ви хочете його викласти в загальний доступ, то спершу вам треба створити віддалений репозиторій (наприклад на GitHub), а потім дати команди представлені нижче, змінивши соотвественно частина з назвою вашого сховища.
2. верифікуємо що віддалений репозиторій пов'язаний з нашим
$ Git remote -v
3. Публікуємо гілку master на віддаленому репозиторії
$ Git push -u origin master
Більш докладно можна почитати тут.
Задаємо ім'я користувача і електронну пошту
Глобально для всіх проектів поточного користувача
$ Git config -global user.name «John Doe»
$ Git config -global user.email [email protected]
Для конкретного проекту (ці настройки перевизначити глобальні)
$ Git config -local user.name «John Doe»
$ Git config -local user.email [email protected]
Всіх (глобальних, системних і локальних). Деякі параметри можуть з'явиться в списку кілька разів, так як Новомосковскются з трьох файлів налаштувань. Детальніше тут.
$ Git config -list
Локальних для певного проекту
$ Git config -local -list
системних
$ Git config -system -list
Отримання довідки (допомоги) по команді Git
$ Git help
$ git
Наприклад виведемо довідку по команді config (відкриється браузер з довідкою)
$ Git help config
Налаштування українських шрифтів (cp1251) в Git
Налаштовуємо правильне відображення файлів з українськими назвами в командах Git
$ Git config -local core.quotepath false
Налаштовуємо кодіровкуWindows cp1251для коммітов в Git
$ Git config -local core.pager «iconv.exe -f cp1251 -t utf-8 | less »
$ Git config -local i18n.commitEncoding utf8
$ Git config -local i18n.logoutputencoding cp1251
Ці команди чудово працюють в msysgit 1.9.5. Як буде в інших версія не знаю. Але сподіваюся, що в новіших теж буде працювати. Більш докладно про налаштування української мови в Git можна почитати тут. Так само вони правильно працюють при установці Git з пакетів Cygwin, докладніше можна почитати тут.
Так само можна задати кодову сторінку для файлів проекту командою
$ Git config -local i18n.filesEncoding windows-1251
ну або просто рядком в розділі [i18n]
filesEncoding = windows-1251
А взагалі краще вести проекти в кодуванні UTF-8, якщо це можливо звичайно.
Основний інструмент, який використовується для визначення, які файли в якому стані знаходяться - це команда:
$ Git status
І її більш короткий висновок:
$ Git status -s
Більш детально дивимося тут.
Фіксація змін (Комміт)
Автоматично додати всі змінені файли в комерц
$ Git commit -a
Видалення файлів з Git
По суті це видалення файлу з відслідковуються. Якщо файл вже був до цього закоммічен в Git, то зі старих коммітов його як і раніше можна буде дістати.
Видалення файлу з відслідковуються Git, а так само його фізичне видалення з робочого каталогу
$ Git rm
Видалення проіндексованого зміненого файлу
$ Git rm -f
Видалення файлу з індексу, але збереження його в робочому каталозі
$ Git rm -cached
Більш детально дивимося тут.
$ Git mv
Найпростіший варіант це git log з різними ключами (дивимося help). Тут наведу просто приклади. А подробнеетут або в мануалі.
Висновок простий історії коммітов
$ Git log
Висновок останніх n записів, в прикладі висновок двох останніх записів
$ Git log -2
Висновок дельти (diff) різниці між останніми двома змінами (на рівні рядків)
$ Git log -p -2
Висновок змін між двома останніми коммітов на рівні слів
$ Git log -p -2 -word-diff
Висновок короткої статистики по 2 останнім коммітов
$ Git log -2 -stat
І дуже корисний ключ -pretty (дозволяє змінити формат виведення балки)
$ Git log -pretty = oneline
$ Git log -pretty = format: "% h -% an,% ar. % S »
Параметри ключа format
Можна так само подивитися ASCII граф гілок коммітов по ключу -graph
$ Git log -pretty = format: "% h% s» -graph
Є параметри, що обмежують за часом, такі як -since і -until. вельми корисні. Наприклад, наступна команда видає список коммітов, зроблених за останні два тижні:
$ Git log -since = 2.weeks
Інший корисний фільтр це опція -S, яка як параметр приймає рядок і показує тільки ті коммітов де цей рядок була змінена, добавлена або видалена.
$ Git log -S
Приклад буде шукати рядок MyStringForSearch
$ Git log -SMyStringForSearch
Список коммітов з хешем (короткий число)
$ Git log -oneline
Скасування індексації файлу (виключення з індексу)
$ Git reset HEAD
Скасування змін файлу (до внесення файлу в комерц)
$ Git checkout -
З цією командою треба бути особливо обережним, докладніше тут.
Робота з віддаленими репозиторіями
Більш докладний висновок про них
$ Git remote -v
Отримання змін з віддаленого сховища під ім'ям tr в локальну гілку tr
$ Git fetch tr
Відправка даних на віддалений репозиторій. Формат git push [молодецький. сервер] [локальна гілка]
$ Git push origin master
Інспекція віддаленого сховища git remote show [молодецький. сервер]
$ Git remote show origin
Перейменування віддалених репозиторіїв (по суті перейменування локальної посилання на віддалений репозиторій)
$ Git remote rename
$ Git remote rename tr newtr
Видалення віддаленого сховища :) (попросту відключення від нього - в прикладі від origin)
$ Git remote rm origin
Детальніше про роботу з віддаленими репозиторіями тут.
Якщо у вас свій власний репозиторій Git на сервері з саме підписаним сертифікатом, то перед будь-якими командами роботи у віддалених репозиторієм (clone, fetch, push, pull і т.п.), Git буде лаятися на саме підписаний сертифікат. Вирішити проблему можна змінивши трохи конфиг
$ Git config -local http.sslVerify false
Або ж перед кожною операцією роботи з віддаленим репозиторієм вставляти доп команду
$ Git -c http.sslVerify = false push origin newbranch
А взагалі настройка свого сервера Git це окрема тема. Частково розглянута тут.
Робота з гілками
Подивитися локальні гілки
$ Git branch
Подивитися останній Комміт на кожній з локальних гілок
$ Git branch -v
Щоб подивитися всі існуючі локальні і віддалені гілки можна дати команду
$ Git branch -a
Подивитися останні коммітов на всіх гілках (локальних і віддалених)
$ Git branch -a -v
Подивитися відслідковують гілки
$ Git branch -vv
Зробити гілку локальну гілку serverfix відслідковується
$ Git branch -u origin / serverfix
створити гілку
$ Git branch <имя_ветки>
Створити гілку на певному Ком
$ Git branch new_branch 5a0eb04
перейменувати гілку
git branch -m
Перейменувати поточну гілку
git branch -m
Переключиться на гілку
$ Git checkout <имя_ветки>
Створити гілку і відразу ж переключиться на неї
$ Git checkout -b <имя_ветки>
Злиття гілок (в прикладі знаходимося на гілці master і зливаємо з нею гілку hotfix)
$ Git checkout master
$ Git merge hotfix
видалити гілку
$ Git branch -d <имя_ветки>
Видалити гілку serverfix на віддаленому сервері
$ Git push origin -delete serverfix
Робота з мітками
Подивитися всі (перераховує в алфавітному порядку, а не за часом їх створення)
$ Git tag
Подивитися потрапляють під маску
$ Git tag -l 'v1.4.2. *'
Створити мітку на поточному Ком (ключ -а) з меточного повідомленням (ключ -m)
$ Git tag -a v1.4 -m 'my version 1.4'
Створення легковагій мітки на поточному Ком
$ Git tag <имя_метки>
$ Git tag MyTAG
Завдання псевдонімів для команд Git
Псевдоніми можна створити як в конфігураційних файлах Git, так і в конфіги Bash, але важливо розуміти в чому різниця.
Завдання псевдонімів в конфігах Git
$ Git config -global alias.co checkout
$ Git config -global alias.br branch
$ Git config -global alias.ci commit
$ Git config -global alias.st status
Тепер досить давати команди
$ Git co
$ Git br
$ Git ci
$ Git st
Тобто через завдання алиасов в конфіги Git ми не позбавляємося від необхідності писати команду git. але все ж це коротше.
Крім того в ці команди так само можна підставляти параметри
$ Git config -global alias.unstage 'reset HEAD -'
Це робить еквівалентними наступні дві команди:
$ Git unstage fileA
$ Git reset HEAD fileA
Більш детально з Аліси в конфігах Git Новомосковськ тут.
Про АЛІАС заданих через Bash Новомосковськ тут.
Порівняння файлу в різних коммітов
$ Git diff ffd6b37 c258082 -cc test.txt
За допомогою зовнішніх утиліт ExamDiffPro і P4Merge
Дивимося зміни файлу test.txt між двома коммітов
$ Git difftool 9491cc8 02c1df6 -tool = edp -cc test.txt
$ Git difftool 9491cc8 02c1df6 -tool = p4m -cc test.txt
скасування злиття
$ Git merge -abort