Git

Подписаться на эту рубрику по RSS

GIT: ignoring changes in tracked files

14 ноября 2013
Метки: ,

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

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

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

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

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

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

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

23 мая 2013
Метки: ,

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

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

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 - сохраняем в архив

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