Git - система контроля версий, которая очень полезна для работы программистов, системных администраторов, графических дизайнеров и т.д. Далее краткая шпаргалка…

Установка

yum install git-all

apt-get install git-core

для Windows можно взять на странице проекта

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

  • Конфигурация хранится в

/etc/gitconfig

.gitconfig

в Windows в директории пользователя файл .gitconfig

  • Помощь
1
2
 git help
 git команда --help
  • Для начала, неплохо было бы задать свои данные:
1
2
3
 git config --global user.name ИМЯ
 git config --global user.email ПОЧТА
 git config --global core.editor ВАШ_ЛЮБИМЫЙ_РЕДАКТОР

Все настройки можно увидеть по команде

git config –list

Начинаем:

  • создаём каталог mkdir /PATH/project
  • идём в него cd /PATH/project
  • создаём хранилище git init

Теперь можно скопировать туда файлы

cp /somewhere/files .

И посмотреть статус всего этого бардака

git status

Файлы, конечно же, не добавлены и не зафиксированы. Для начала, в файл gitignore стоит записать всё, что не нужно будет обрабатывать. Например, временные файлы, конфигурции и т.д. Далее индексируем файлы

git add . (все файлы)

или

git add file (только один, который нужен)

Далее фиксируем (комит) (коментарий записать рекомендуется хотя бы для того, чтобы потом вспомнить, а зачем это вообще было нужно)

git commit -m “комментарий”

Кстати, комент можно сгенерировать. Например:

git commit -m “date

Если нужно изменить комментарий, делаем так:

git commit –amend -m “что-то новенькое”

Посмотреть разницу

git diff

Если комит сделан не был, то смотрим разницу так:

git diff –cached

Удаление файла и удаление его из индекса

rm FILE (это не обязательно, просто он не будет отслеживаться после 2 команды)

git rm FILE

Просмотр истории

git log

git log -5 (просмотр последних 5 комитов)

Просмотр статистики по комитам

git log –stat HASH

Статистика за последние 5 недель

git log –since=5.weeks

Откат последнего коммита:

git reset –hard HEAD~1

или возврат к коммиту:

git reset –hard COMMIT

Работа с удалённым хранилищем

смотрим что у нас вообще подключено

git remote

Там обязательно что-то будет, если перед этим данные откуда-то клонировали:

git clone URL

Подключаем хранилище:

git remote add NAME root@127.0.0.1/home/megahacker/cracker_for_internet

Данные теперь получаем так:

git pull NAME Отправляем так:

git push NAME (после комита разумеется)

Информацию по удалёнке можно посмотреть так:

git remote show

На сервере кроме папки .git ничего нет

GIT_DIR=‘.git’

git stash save –quiet

Как хранить файлы в отдельной директории

для этого просто укажите другую папку в настройках:

git config core.worktree /path/to/directory

Ошибка receive.denyCurrentBranch

Лечится просто

git config receive.denyCurrentBranch ignore

в папке проекта