понедельник, 12 октября 2015 г.

Устанавливаем, настраиваем и начинаем работаь с Git

Так получилось, что возникла потребность в познакомиться с Git. Вот здесь есть учебник по Git, который я и читаю. В этой и, возможно, паре ближайших статей будет выжимка для "себя", того как и что делать. У меня есть подозрение, что это будет мало кому интересно... Лучше читать указанный выше учебник, но мало ли, кому еще пригодится.

Установка
Скачать последнюю версию дистрибутива для Windows можно здесь. Ставил в режиме далее-далее-далее. Если будут какие то особенности, то потом допишу.

Настройка
Прописать имя пользователя и почту в настройки пользователя:
$ git config --global user.name "Alexey Losev"
$ git config --global user.email myemail@domen.ru
Кроме --global (настройки текущего пользователя), есть еще --system (системные настройки) и без ключа, это значит настройки текущего репозитария.
Проверить что все записалось нормально, можно командами:
$ git config --global user.email
$ git config --global user.name
Или даже:
$ git config user.email
$ git config user.name
Ну или все настройки доступны командой:
$ git config --list

Справка
Получить справку по команде можно командами:
$ git config --global user.email
$ git config --global user.name
Справка выполнена в виде html, которые при установке сохраняются на диск и доступна без подключения к интернету.
Кстати, команда:
$ man git-<команда>
В Windows не работает.

Создание репозитория
Для путешествия по папкам через Git Bush можно пользоваться стандартными досовскими командами (cd, dir). Только вот есть пара отличий:
1. При переходе на другой диск необходимо вместо d:/ писать /d/
2. Восклицательный знак в пути - это проблема
Ну а так, все стандартно:
$ cd /d/git/robotsbattle
$ dir

Все, создаем репозиторий:
$ git init
Для добавления в репозиторий существующих файлов можно воспользоваться командой:
$ git add *.sln
Фиксация изменений происходит командой
$ git commit -m 'комментарий к коммиту'
Получение того, что у нас твориться в репозитории:
$ git status
Чтобы посмотреть не просто список, а что изменилось в файлах, можно вызвать:
$ git diff
Получим аналог Create Patch из SVN. Пример как это работает:
У команды git diff, есть модификация:
$ git diff --cached
Которая позволяет понять одну магию. В коммит попадают только проиндексированные файлы. Т.е. если файл изменился, то для того, чтобы он попал в коммит его необходимо проиндексировать командой 
add:
$ git add RobotsBattle/Cell.cs
И здесь есть тонкость, хотя Windows игнорирует регистр символов, а вот Git Bash - нет. Т.е. предыдущая команда отработает корректно, а вот эта нет:
$ git add robotsbattle/cell.cs
После добавления файла в кэш, git diff без ключей его игнорирует, а вот указанный ключ 
--cached позволяет посмотреть, что же мы закешировали.
Если заниматься индексацией каждый раз не хочется, то можно вызвать коммит для всех измененных файлов не зависимо от того, закешированы они или нет следующей командой:
$ git commit -a -m "Добавлен комментарий"
Ну и так как у нас в папках проектов всегда есть файлы, которые добавлять в хранилище не надо, то можно создать файл с расширением  .gitignore 
К шаблонам в файле .gitignore применяются следующие правила:
  • Пустые строки, а также строки, начинающиеся с #, игнорируются.
  • Можно использовать стандартные glob-шаблоны.
  • Можно заканчивать шаблон символом слэша (/) для указания каталога.
  • Можно инвертировать шаблон, использовав восклицательный знак (!) в качестве первого символа.
Вот так может выглядеть этот файл, чтобы игнорировать файлы и папки начинающиеся с точки, а также папке bin и obj в первом уровне вложенности относительно корня:

Комментариев нет:

Отправить комментарий