КОнтакты, предложения, отзывы

.rar или .zip
Вложение
Онлайн-чат
На этом сайте, вы найдёте полезную информацию, практические советы в области веб-программирования, веб-дизайна и веб-разработок в целом. Мы с удовольствием поделимся с вами реальными примерами и решениями задач, связанных с jQuery , JavaScript , PHP и MySQL , версткой сайтов , поможем разобраться новичкам с современными технологиями, такими как Ajax , HTML5 , CSS3 и многими другими.

"Лапочка"Git

Git - это система, позволяющая отслеживать все изменения в коде проекта, фиксировать изменения создавая снимки состояний файлов, делать откаты к предыдущим состояниям, создавать ветки разработки и многое другое.
Вот представьте, я только что создал в папке статьи новый файл git.php, в котором собирался писать эту статью, и перезаписал существующий там файл с полезными командами. Горе в том, что гит не был по чистой случайности инициализирован в этой папке. И всё пропало, ВСЁ ПРОПАЛО. А если бы гит смотрел за ней, всё можно было бы восстановить за 15 сек..

Устанавливаем Git

Установить гит на винду не сложнее чем любую программу - скачиваете екзешник Here и устанавливаете.

Подготовка к инициализации

Прежде чем просить гит следить за нашими файлами в проекте ( папке, в которой находится наш сайт ) желательно создать в проекте файл .gitignore и перечислить в нём содержимое, которое не должно отслеживаться ( изображения, тестовые файлы и т.д ). Пример моего .gitignore:
## все файлы и папки с русскоязычными названиями
[а-яА-ЯёЁ]*.*
[а-яА-ЯёЁ]*

## конкретные папки
exm/
img*/
video/

## тестовые файлы
*[Tt]est*

## файлы шрифтов
*.ttf
*.otf

## и ещё
*.mp3
*.zip
*.rar
*.mp4
*.flv
*.swf
*.clpprj
*.cur
*.jpeg
*.jpg
*.png
*.gif
.gitignore
К шаблонам в файле .gitignore применяются следующие правила:
•Пустые строки, а также строки, начинающиеся с #, игнорируются.
•Можно использовать стандартные glob шаблоны.
•Можно заканчивать шаблон символом слэша (/) для указания каталога.
•Можно инвертировать шаблон, использовав восклицательный знак (!) в качестве первого символа.
Glob-шаблоны представляют собой упрощённые регулярные выражения используемые командными интерпретаторами. Символ * соответствует 0 или более символам;
последовательность [abc] — любому символу из указанных в скобках (в данном примере a, b или c);
знак вопроса (?) соответствует одному символу;
[0-9] соответствует любому символу из интервала (в данном случае от 0 до 9);
**/index.php - найдёт index.php везде

Инициализация

С ярлыка на рабочем столе запускаем консоль гита
Переходим в папку с проектом, а затем выполняем команды ( одну за другой ):
cd C:/OpenServer/domains/MyWorks/Photoshop-on-PHP-jQuery
git init
git config --global user.name "sash"
git config --global user.email "sash@gomail.cum"
git add .
git init создаст в нашем проекте папку .git ( сокрытую ), из которой он и будет наблюдателем. Далее расскажем гиту, с кем он имеет дело. А команда git add . добавит в индекс все непроигнорированные файлы.
Теперь можно делать первый коммит ( фиксацию ):
git commit -m "Init"
Эта команда создаст нашу первую точку возврата, или снимок состояния проекта. Ключ -m означает, что мы пишем комментарий прямо в консоли ( "Init"это комментарий к коммиту, желательно делать такой коммент, по которому сразу будет видно, что именно мы меняли ). Если же мы хотим использовать для комментариев свой редактор, вбиваем комманду
git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
в которой указываем путь к нашему редактору. Примечание: после того как комментарий сделан, необходимо закрыть редактор.
Цикл довольно прост: делаете изменение, добавляете файл в индекс и комитите. Посмотреть историю комитов можно несколькими способами:
## История коммитов 
git log## или гораздо получше:
git reflog## log и reflog - взаимозаменяемы, разница в том что reflog более короткий и показывает метку к которой можно вернуться (HEAD@{1})
## Короткий вариант
git log --pretty=format:"%h - %an, %ar : %s"
##за последнее время
git log --since=1.weeks
##  до указанного времени
git log --until=2015-09-28
## Что менялось
git log -p -2 ## 2 - количество коммитов
## авторские коммиты
git log --author="sash"
## поиск по комментариям к коммиту с помощью рег.выражений
git log --grep="Init"
Команда git status показывает различия между рабочей директорией, буфером и репозиторием. Вы будете очень часто её использовать, чтобы посмотреть, что нужно добавить в буфер или закомитить. Также очень полезна команда git diff, которая покажет разницу между файлом в репозитории и текущим состояием, что было добавлено и что удалено.
## отслеживание изменений в рабочей директории 
git diff ## покажет изменения во всех файлах
git diff index.php ## в выбранном файле

## отслеживание изменений в буфере
git diff --staged [имя файла]
Если у вас есть желание пропустить этап индексирования, Git предоставляет простой способ. Добавление параметра -a в команду git commit заставляет Git автоматически индексировать каждый уже отслеживаемый на момент коммита файл, позволяя вам обойтись без git add:
git commit -a -m 'added new benchmarks'

Удаление файлов из-под присмотра Git

## допустим, мы забыли добавить файл в игнор и добавили его под наблюдение:
git rm --cached имя_файла

## или создали файл и не хотим чтобы он отслеживался:
git add . ## добавляем файл
git rm --cached имя_файла

Откат изменений

Вот мы и подошли к самому главному методу гита - откату к предыдущему состоянию файлов. Если мы залезли и чтото не то сделали и не знаем как поправить, друг гит нам поможет
## Откат изменений 

git status ## смотрим изменения
git checkout -- имяФайла ## отмена не добавленных в буфер изменений

git reset HEAD [имя_файла] ## отмена добавленных в буфер изменений (в выбранном файле или во всех)

## внесение изменений и добавление их к коммиту
## делаем какие-то правки в файлах
git add имя_файла
git commit --amend -m 'Message' ## добавит изменение к последнему коммиту

## изменение комментариев к коммитам
git commit --amend -m 'New message' ## меняем комментарий последнего коммита
git commit HEAD@{0} --amend ## всё, что вы измените, это комментарий к коммиту

## вытянем нужный нам файл из более раннего коммита
git log ## найдём нужный коммит и его хэш (самая первая строка)
git checkout 2ft456sd67 -- имя_файла ## берём часть SHA-хэша
git add имя_файла
git commit -m 'Old Version' ## добавляем старую версию вновый комит

git revert HEAD ## откат к последнему коммиту
git revert sha1хэш ## к выбранному

## опасная коммада reset 
git reflog ## смотрим историю
git reset --soft HEAD@(3) ## всего лишь переместит указатель HEAD на выбранный коммит, после чего можно будет посмотреть изменения между выбранным состоянием и рабочей директорией
git reset --mixed HEAD@(3) ## также меняет состояние буфера, не затрагивая файлы в рабочей папке
git reset --hard HEAD@{3} ## откат к выбранному коммиту, все следующие изменения затрутся, HEAD(0) == выбранный HEAD
Набрав git help получим краткое описание команд, git help add например откроет нам хтмл страницу с подробным описанием команды.

Создание репозитория на GitHub

Наш проект может размещатся в любом каталоге. Для него нужно инициализировать git. Это стандартная процедура:
git init
git add .
git commit -m "Init"
Теперь для проекта git работает и его можно использовать по своему усмотрению: добавлять версии, смотреть логи, делать ветки и т.п. Для связи с GitHub'ом следует указать удаленный репозиторий:
git remote add origin https://github.com/USER/demo.git
git push -u origin master
Этот код указывает адрес уделенного и отправляет все изменения на гитхабовский сервер. Если мы зайдем на страницу репозитория на гитхабе, то также увидим свой проект.
2015.09.29 54

- У меня что-то не работает. - Вот вам какой-то патч.
Войдите или Зарегистрируйтесь чтобы оставить комментарий

Комментарии


  • Благодарочка за статью. Предельно просто и доступно.

  • 2017.05.16 - 15:11

  • sash ответил Lazy_Den

    Lazy_Den, и тебе за комент, бро . Так и стараюсь, чтоб без лишней воды, чтоб сразу врубаться в тему

  • 2017.05.16 - 15:42

Яндекс.Метрика Яндекс.Метрика