Как полностью игнорировать каталоги, которые до сих пор я отслеживал под контролем версий с помощью git? - PullRequest
0 голосов
/ 15 сентября 2011

Я использую Ruby on Rails, гем Capistrano и git. Я хотел бы больше не ставить под контроль версий некоторые каталоги , которые до сих пор я отслеживал .

Для моего приложения у меня есть структура файловой системы, подобная следующей:

...
.gitignore
/public/aaa/000/001
/public/aaa/000/002
/public/aaa/000/003
/public/aaa/000/...

Для достижения цели я изменил файл .gitignore и добавил в него следующие строки:

# Ignoring "/public/aaa/*" directories
public/aaa/

Однако, , если я проверю, какие каталоги находятся под контролем версий, я вижу, что те, которые я хотел бы игнорировать, все еще отслеживаются . Поэтому при развертывании с Capistrano на удаленном сервере содержимое этих каталогов все еще меняется.

Как я могу определенно игнорировать эти каталоги?


В двух словах я хотел бы не изменять public/aaa каталогов и файлов на удаленном компьютере (и, таким образом, не отслеживать файлы с помощью git на моей локальной машине), при развертывании с Capistrano эти папки (на удаленном компьютере) остаются нетронутыми .

Ответы [ 2 ]

2 голосов
/ 15 сентября 2011

Вам нужно будет удалить их, прежде чем они исчезнут из системы контроля версий. Они по-прежнему являются частью вашего репозитория git, поэтому git будет продолжать уделять им внимание.

git rm -r --cached public/aaa

-r говорит git удалить каталог (точно так же, как rm -r в консоли), а --cached говорит git оставить файл (ы), просто удалите его из репозитория.

0 голосов
/ 15 сентября 2011

Вы можете использовать git update-index --assume-unchanged <filename>. Это сохранит файлы, но больше не будет отслеживать их изменения.

Вы можете сделать это рекурсивно с
find ./folder/ -type f | xargs git update-index --assume-unchanged

...