git

GIT: ignoring changes in tracked files

14 ноября 2013
Рубрика: Git

В работе с гитом бывают случаи, когда файлы необходимо оставить в индексе, но игнорировать любые модификации. Яркий пример - /config/database.conf - данные с подключением к базе данных. Сам файлик крайне желательно оставить с дефолтными настройками (каркасом), но так же нужно менять его, прописав туда реальные данные.

Делается все предельно просто:

git update-index --assume-unchanged <file>

Эта команда оставит файл в индексе и будет игнорировать все последующие модификации.

Для начала отслеживания необходимо выполнить противополождую команду:

git update-index --no-assume-unchanged <file>

Git - патч с файлами, измененные коммитом

23 мая 2013
Рубрика: Git

У меня достаточно часто возникает необходимость передать людям в архиве файлы, которые были изменены в новой версии продукта (в определенном коммите)

Решение в случае работы с гитом очень простое:

git diff --name-status HEAD HEAD^ | awk '{ if ($1 != "D") print $2 }' | xargs git archive -o output.zip HEAD

git diff --name-status HEAD HEAD^ - покажет разницу между последним коммитом (HEAD) и предпоследним (HEAD^). Так же можно указывать хеши нужных коммитов.

 

awk '{ if ($1 != "D") print $2 }' - отсекаем удаленные файлы

xargs git archive -o output.zip HEAD - сохраняем в архив

В результате получим все файлы (новые+измененные) с сохранением структуры проекта

Git - онлайн справочник (online help)

С недавних пор начал разбираться с Git, читал статьи на хабре, просто в инете.

На хабре нашел хорошую статью по основам работы с Git - Git Wizardry.

В итоге захотелось держать все в одном месте в виде мануала.

Взял я исходную статью и скриптиком перегнал создал меню с соответствующими анкорами на странице.

Посмотреть можно по ссылке. Если кто захочет скачать - качайте исходники, там всего 3 файла - меню, контент и индекс с фреймами.