У нас есть репозиторий git, где у нас есть подпапка 'shelves' для целей тестирования, в которой нам необходимо поддерживать определенную структуру папок внутри наших файлов данных. Эти папки заполнены содержимым, которое должно отслеживаться git.
. Теперь на том же уровне иерархии unix мы имеем ссылку, которая указывает текущий тест на соответствующую папку. Время от времени ссылка может меняться для использования теста или другого.
ls -l current lrwxrwxrwx. 1 xxxx xxxx 30 Apr 3 09:18 current ->
shelves/test1/tb
Иерархия папок:
shelves/
├── test1
│ ├── rtl
│ │ └── vhdl
│ └── tb
├── test2
│ ├── rtl
│ │ └── vhdl
│ └── tb
└── testn
├── rtl
│ └── vhdl
└── tb
Проблема довольно проста: мы не хотим git чтобы отслеживать саму ссылку, но содержимое каждой папки в «полках» должно отслеживаться.
Нам нужно, чтобы ссылка была на «git», но не отслеживалась, потому что когда мы клонируем git, ссылка имеет присутствовать. Если всякий раз, когда мы используем 'current' внутри .gitignore, когда мы 'git добавляем' какой-то файл под структуру, мы получаем это сообщение:
The following paths are ignored by one of your .gitignore files:
shelves/test1/tb Use -f if you really want to add them.
fatal: no files added
Есть какие-нибудь хитрые ребята? Мы знаем, что можем использовать '-f', но можем ли мы обойти это другими способами?.
Заметим, что наш выпуск git довольно старый, и мы не думаем, что не сможем его обновить. легко (CentOs 7.3) из-за зависимостей.
git версия 1.8.3.1