Как пользоваться GIT Bash с нуля за час — управление версиями — Web Atom

Как пользоваться GIT Bash с нуля за час — управление версиями

Ни один серьезный проект не обойдется без системы управления версиями. Возможно за всю историю работы, Вам ни разу не придется откатится, но знание и умение работать GIT очень качественно систематизирует Ваш рабочий процесс. Так же, необходимо заметить, что тот момент когда откатится все таки надо и других вариантов нет всегда настает весьма внезапно. В данной статье мы постарались максимально быстро рассказать Вам о том, как работать с GIT. Часть самых распространенных команд Вы найдете в тексте, а то как их применять смотрите в видео. Возможно все сразу не станет ясно, единственный способ понять окончательно начать использовать, пару раз ошибиться и все наладится! Под каждым видео не большая сноска на те команды, которые были использованы по ходу разбора. Если забыли как что-то делать, ищите по тексту команду и найдете нужное видео.

Общие команды из command prompt

— ls — list (список файлов в папке)
— cd — change directory (изменить директорию)
— rm index.html — delete (удалить файл)
— cat index.html (распечатает все что в файле в консоль)
— cd f: — change drive (поменять диск)
— mkdir — создать папку
— clear (очистить консоль)
— q для выходы из Lessc
— touch (создаем файлы)
— cd .. (вверх одну директорию)

Урок 1 — скачиваем, инсталлируем, настраиваем

— git config —global user.name «YZ» (создаем пользователя)
— git config —global user.email «yzolotarev@gmail.com» (создаем email пользователя)
— git config —global color.ui «auto» (создаем цветовые настройки по умолчанию)
— git config —global core.editor «‘C:/Program Files/Sublime Text 3/sublime_text.exe’ -w» (привязываем — редактор по умолчанию)
— git config —list to see settings (смотрим настройки)
— git init (текущая папка становится мастером)
— git status (проверить статус внутри ветки сейчас)

Урок 2 — комитим

— subl.exe — отркоет редактор
— git add readme.txt (добавляем в stage)
— git commit (коммитим)
— git log (смотрим лог коммитов), если файл большой то попадем в less (редактор)
— git log —oneline (смотрим лог одной строчкой)
— git commit -m «short message editor won’t open» (комитим и подписываем сразу)

Урок 3 — сравниваем изменения в том числе в c вариантам staged

— git add . чтобы добавить все что в текущей папке
— git add —all добавит вообще все файлы
— git diff (смотрим разницу между последним коммитом и мастером)
— git diff —staged (смотрим разницу между последним комитом и тому что поместили в Stage)

Урок 4 — сравниваем комиты и откатываем

— смотрим разницу файлов которые уже закомитили git diff head~1 (2,3,4,5…)
— смотрим через git log номера коммитов и сравниваем по номерам git diff 37f198c
— откатываем git checkout head~1 index.html
— при откате GIT помещает версию в которой откатили в staged и надо опять комитить
— удаляем файл с помощью rm и откатываем git checkout master index.html
— Откатываем с помощью хэшей git checkout head
— git reset head index.html убирает файлы из staged

Урок 5 — undo

— делаем откат к пред версии через git reset —hard — после этого не надо делать вновь коммит
— разница с checkout

Урок 6

— gitkeep скрытый файл в папках чтобы git видел пустые файлы
— ignore files .gitignore (в нем можно указать все файлы исключения конкретно или расширения по шаблону через звездочку *.txt)

Урок 7 — подключаемся к git hub черещ HTTPS

— git remote add origin (просто название не важно можно не origin а pizza назвать) https://github.com/grimasa007/example.git
— git remote -v (посмотреть что установили в качестве remote)
— git remote set-url (поменять) git remote set-url origin adscasc
— git push origin master

Ресурсы

— gitHub — неограниченное кол-во Public
— gitLab (для своего сервера)
— bitbucket -неограниченное кол-во private

Урок 8 — подключаемся к GitHub через SSH

— генерируем ssh ключи в папку .ssh с помощью ssh-keygen
— открываем ключ в notepad и добавляем в GitHub
— меняем на ssh через команду git remote set-url origin (тут адрес)

Урок 9 — pull

— вносим изменения на GitHub
— подтягиваем изменения на локальный репозитарий через pull
— git pull origin master
— разрешение конфликтов, меняем в начале на GitHub, потом меняем на локалке, пытаемся сделать Push, получаем error потому что на локалке не будет того, что есть на GitHub, поэтому делаем в начале Pull И Git сделает Merge, потом уже делаем Push. В итоге получим в логе комиит с локалки, комит с гита и комит merged который создал Git сам.
— both modified

Урок 10 — ветки branches, сращивание веток

— сделано для того чтобы комитить не в master а в отдельную ветку, таким образом рабочий код не будет затронут.
— git branch yz_work_versions создаст ветку
— git branch -a (покажет все ветки, зеленым будет показана та на которой мы сейчас находимся)
— используем checkout чтобы передвигаться от ветки к ветке git checkout yz_work
— можно создать ветку через checkout -b имяновойветки, в таком случае сразу перейдем на эту ветку
— чтобы удалить ветку git branch -d Имя, в начале надо уйти с ветки
— вносим изминения в файл и смотрим что они меняются на другой ветке, то есть если перейти через checkout на master то там изминений не будет
— логи показывают только коммиты той ветки на которой мы находимся
— чтобы смотреть все git log —oneline —all —decorate —graph
— чтобы срастить ветки после того как Вы убедились что на work branch изминения Вас устраивают, заходим на ветку master и командуем git merge yz_work_2
— git pull = git fetch +git merge
— git fetch —prune (почистить пустые ветки, то есть если есть какие то ветки на локалке которых нет на сервере, они будут удалены на локале среди тех которые перечисляются красным после команды git branch -a)
— git branch -D чтобы удалить ветку в который что-то осталось

Урок 11

— fast forward merge это когда вы сращиваете мастер на котором не было никаких новых комитов после ответвления, с веткой на которой были новые комиты, в таком случае дополнительный комит не происходит на мастере, но все комиты с ветки просто становятся актуальными для мастера

Урок 12

— merge двух веток с начала до конца

Урок 13

— rebase vs merge в чем разница

Урок 14

— устанавливаем git на сервер на Linux
— заходи по SSH на сервер и подтягиваем версии из репозитория на github

GUI Интерфейсы

— git gui
— git kraken