2016-08-18 3 views
0

Привет У меня есть голое репо и 2 пользователь получил клон из этого репо,Git гт кэшированные удалить локальный файл на локальном репо

через некоторое время я основал, что я должен игнорировать отслеживание изображений из папки, но мы хотим каждый клиент имеет эту папку для себя, а не удалять, [как хранить изображения продукта]

так я добавить папку gitignore, а затем нам нужен только голый репо, чтобы не иметь какие-либо изображений,

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

git rm --cached folder/ 

так после использования этой команды клиента, использовал эту команду имеет эту папку и каждая вещь в порядке

но другой клиент запустить git pull и посмотреть, что локальная папка удалена!

так что мы должны делать, что снимки только удалить из голого репо, а не клиенты, которые используют мерзавец тянуть

ответ

0

Я думаю, что произошло то, что первый клиент использовал git rm на папки, а затем толкнул, удаляя их из филиала в хранилище. Затем, когда другой клиент потянул, Git эффективно отправил заказ на удаление этим файлам изображений, тем самым удалив их из локальных файлов второго клиента.

Чтобы избежать этого для других клиентов, каждый клиент должен сначала добавить файлы изображений в .gitignoreдо потянув. Таким образом, когда Git отправляет заказ во время вытягивания для удаления файлов, файлы будут проигнорированы, и они останутся локально.

+0

папка была в .gitignore перед тем, как вытащить из голого репо, но папка удалена! –

+0

_You_ была добавлена ​​папка в '.gitignore', но есть ли у клиента, который потерял папку? –

+0

да, я проверил его причину до этого шага. Gitignore нажал на репо и другие клиенты потянули его –

0

Чтобы обойти это, создайте folder/ и добавьте файл с именем empty, так как git нуждается в файле в структуре папок, чтобы он существовал.

В вашем файле .gitignore у вас будет строка игнорирования folder. Прямо под этим добавьте новую строку !folder/empty, которая затем будет означать игнорирование элементов в «папке», но не «пустой» файл.

То же самое можно сделать с помощью пустого файла index.html или подобного.

+0

'.gitkeep' - довольно стандартное имя для« пустого »каталога. – dahlbyk

+0

Я видел, как это было сделано разными способами в разных проектах. Я видел его как index.html для веб-проектов в случае, если Apache имеет индексы (для остановки списка каталогов); пуст для некоторых других проектов, в том числе веб-сайтов; .keep, как описано в https://www.git-tower.com/learn/git/faq/add-empty-folder-to-version-control. В принципе, похоже, нет стандартного способа сделать это, если только Я пропустил какую-то документацию. Я рад, что я указал на дополнительную документацию по этому поводу. – gabe3886

Смежные вопросы