прикольные PHP библиотеки для ваших проектов

Git Git УРА =)
Я вообще не любитель черного экрана. Это и отложило отпечаток на мне. После школы и универа, где весь кодинг был в черном окне (DOS), меня тошнило от афроамериканского окна =) По этому я и выбрал сайтостроение. Тут все весело, цветное и двигается =)
Так вот. Эта чернота и оттолкнула меня от Ubuntu. Точнее от терминала. Сама убунту прикольная после виндовса. Но bash...
От этого и моя не любовь к консольному git'у. Я юзал sourcetree. Но пришло время и меня столкнули с консолью. Следовательно и гит меня достал тут. Пришлось его почувствовать на черном экране.
И вот что у меня вышло...
//получить справку по работе с командой git config
git help config
// ----------глобальные настроики---------
git config --global user.name "alexandr makovkin"
git config --global user.email "info@makovkin.com"
git config --global color.ui true
// ---------локальные (для текущего репозитороия) настроики---------
git config user.name "alexandr makovkin"
git config user.email "info@makovkin.com"
git config color.ui true
// редактор по умолчанию для Windows
git config --global core.editor "'c:/program files/sublime text 3/subl.exe' -w"
// редактор по умолчанию для Linux
git config --global core.editor nano
/*********************************************************/
/ -----------ИНИЦИАЛИЗАЦИЯ----------- /
git init
git add .
git add file.name
git commit -m "some text explain what we did"
// можно объединить git add и git commit в одну команду
git commit -a -m "комментарий"
// добавление изменений к последнему коммиту
git commit --amend
/*********************************************************/
/ -----------ЛОГИРОВАНИЕ----------- /
git log
//просмотреть последние 3 комита
git lon -n 3
//просмотреть комиты начиная с 2014-02-23
git log --since=2014-02-23
//просмотреть комиты до 2014-02-23
git log --untill=2014-02-23
//посмотреть комиты Alexnander
git lod --author="alexander"
//поск комитов в описании которых есть some text
git log --grep="some text"
//показать короткий вариант
gil log --oneline
git log --since="2 weeks ago" --until="3 days ago"
// логи указанной ветки [после названия ветки можно использовать вышеуказанные параметры]
git log branch_name
/*********************************************************/
/*---------статус----------*/
git status
/*********************************************************/
/*--------разница----------*/
git diff // показать разницу между файлами в репозитории и рабочей папке
git diff filename.php // показать разницу между файлом в репозитории и рабочей папке
git dif --staged // показать разницу между файлами в репозитории и в буфере
git diff 2j548ds63hjsd // показать разницу между файлами репозитория 2j548ds63hjsd и рабочей папки
git diff 2j548ds63hjsd filename.txt // показать разницу между файлом filename.txt репозитория 2j548ds63hjsd и рабочей папкой
git diff 2j548ds..5d564dsd6 // показать разницу между файлами репозитория 2j548ds и 5d564dsd6
git diff 2j548ds..5d564dsd6 filename.txt // показать разницу между файлом filename.txt репозитория 2j548ds и 5d564dsd6
git diff branch..new_branch // показать разницу между ветками branch и new_branch
/*-------------------------*/
git show 1a233dd8fd
/*********************************************************/
/*****************УДАЛЕНИЕ********************************/
//удаляет файл из индекса и из рабочей папки
git rm filename.txt
//удаляет файл только из индекса git
git rm --cached filename.txt
/*********************************************************/
/*****************ПЕРЕМЕЩЕНИЕ и ПЕРЕИМЕНОВЫВАНИЕ**********/
git mv filename.txt newfile.txt
git mv filename.txt folder/filename.txt
/*********************************************************/
/********************ОТМЕНА ИЗМЕНЕНИЙ*********************/
/--- вернуть измениея файла
git checkout -- filename.txt
//вернет последние состояние файла из репозитория (файл в проекте будет перезаписан файлом из репозитория)
/--- удалить файл из слежки гита (если добавили файл командой git add)
git reset HEAD filename.txt
//самая мощная и самая опасная команда - откат к указанному коммиту с потерей всех изменений!
git reset --hard
git checkout 12a2er556tysa -- filename.txt
//эта команда переносит файл из комита с хэшэм 12a2er556tysa в буфер
//затем можно выполнить git reset HEAD filename.txt,
//чтобь вернуть файл в рабочую дерикторию
git reset --soft 34as345dsad5asd76as5
//перемещаем указатель на комит с хешем 34as345dsad5asd76as5
/*------------------------------------------------------------*/
/*--------------------GITIGNORE-------------------------------*/
/*------------------------------------------------------------*/
//- в папке с проектом создать файл .gitignore
//- в этом файле записать те файлы, которые не должен учитывать git
# так обозначаются коментарии
/assets/video/ - будут проигнорированны все вложеные файлы и папки в папке video
*.zip - будут проигнорированные все zip архивы в текущей папке
!/assets/video/adv.mp4 - файл adv.mp4 будет включен в список индексации
//пусть раньше у нас был файл filename.txt и мы его отслеживали.
//но теперь решили добавить его в .gitignore
git rm --cached filename.txt
//-эта команда удаляет filename.txt из буфера, но не из рабочей папки.
//!!! чтоб отслеживать пустую папку нужно добавить в нее пустой файл .gitkeep
/*------------------------------------------------------------*/
/*--------------------ПРОСМОТР СОДЕРЖИМОГО КОМИТА-------------*/
/*------------------------------------------------------------*/
//просмотреть список файлов, которые находятся в папке foldername,
//которые входят в последний комит
git ls-tree HEAD foldername/
//просмотреть список файлов, которые входят в последний комит
git ls-tree HEAD
//просмотреть список файлов, которые входят в ПРЕДПРЕДпоследний комит
git ls-tree HEAD~2
/*--------------------------------------*/
/*--------------------ВЕТКИ-------------*/
/*--------------------------------------*/
//origin - это ссылка на удаленый репозиторий
//master - это главная ветка
// просмотреть все существующие ветви
git branch -a
// посмотреть на какой ветке мы сейчас находимся
git branch
// или более детально просмотреть
git branch -v
// создать ветку
git branch new_vetka
// переключиться на ветку new_vetka
git checkout new_vetka
// переименовать ветку
git branch -m old_name new_name
// удалить ветку (сперва нужно перейти на другую ветку, так как git не может удалить ветку в которой сейчас находишься)
git branch -d branch_name
// начать работать с веткой some_branch (уже существующей):
git checkout -b some_branch origin/some_branch
/*----слияние веток------*/
//чтоб сделать слияние developingBranch к productionBranch
//нужно переключиться на productionBranch и ввести команду
git merge developingBranch
/*-------------------------------------------------------*/
/*--------------------КОНФЛИКТЫ -------------------------*/
/*-------------------------------------------------------*/
// разрешение конфликтов
//если при слиянии веток произошел конфликт, то
//открываем файл и находим проблемные места.
//они помечаются так: <<<<<<<<
/*-------------------------------------------------------*/
/*--------------------УДАЛЕННЫЕ РЕПОЗИТОРИИ--------------*/
/*-------------------------------------------------------*/
//origin - это ссылка на удаленый репозиторий
//master - это главная ветка
//origin/master - это локальный бранч, которы ссылается на удаленый сервер
git remote - выведет список всех удаленый репозиториев, принадлежащих этому проекту
//git remote add NAME PATH
git remote add origin https://github.com/AlexMcowkin/zawebisdrupal.git
//этой командой мы связываем локальный проект с удаленым репозиторием
//(уазываем ссылку на удаленый репозиторий)
git remote rm origin - этой командой мы удаляем ссылку на удаленый репозиторий
git push -u origin master - этой командой мы отправляем на удаленый репозиторий origin
//локальный репозиторий master (где master это название бранча)
//если хотим послать другую ветку, то пишем
git push -u origin new_branch
// создание локальной копии репозитория
git clone https://github.com/AlexMcowkin/zawebisdrupal.git
git clone https://github.com/AlexMcowkin/zawebisdrupal.git folder_name
//!!! если не указать название папки, то git создаст папку с названием zawebisdrupal
// синхронизировать локальную копию с удаленной
git fetch origin
//Получение из удаленного репозитория информации, которой еще нет в локальном,
//но чтоб эти изменения с удаленого репозитория были в локальных файлах то надо еще сделать
git merge origin/master
// создание локального бранча на основе удаленого бранча
git branch some_branch origin/some_branch
// удаление удаленых бранчей
git push origin --delete some_branch
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
// при старте работы делать git pull origin
// на локалке делаем новую ветку git branch new_vetka
// переходим на нее git checkout new_vetka
// залить изменения на удаленку на ветку your_branch_name
git push -u origin your_branch_name
// перед началом работы и перед тем как залить
git pull origin master
git pull origin your_branch_name
***********************************************************
// Замерджить все ветки с удаленного репозитория:
git pull origin
// просто делаем пуш, чтоб занести все изменения в удаленный репозиторий в конкретную ветку
git push
// получаем все изменения из конкретной привязанной ветки
git pull