2016-12-10 3 views
0

У меня есть веб-сайт. Пользователи могут добавить изображение своего профиля. Итак, мой сайт хранит эти файлы в папке. Но у моего локального git clone есть только эта папка с изображениями без изображений внутри.Git удаление файлов с удаленного

Когда я использую команду «git push», она отлично работает, но удаляет все изображения, добавленные пользователями. Как я могу решить эту проблему? [Или, как я могу добавить изображения (добавлены пользователями) мерзавцу трекинг?]

(я использую OpenShift)

+0

Почему вы не добавляете эту папку в файл git ignore? Это означает, что папка будет проигнорирована и не должна рассматриваться в Commits – Phorce

+0

'.gitignore' ..... – Vishwanath

+0

Я пробовал gitignore следующим образом:« photos/», я удалил кеш и нажал его, но в в этом случае папка с фотографиями удаляется с удаленного устройства. –

ответ

0

Вы можете пропустить эту папку при запуске git add команду или лучше добавить его .gitignore файл, как это:

your_folder/* 
+0

Я попробовал это сейчас снова. Затем git push .. И я сохранил картинку на удаленном компьютере с моим сайтом ui. Затем снова нажмите git. Ta Ta .. Сохраненная фотография снова удалена .. :( –

+0

также my_folder тоже .. –

+0

Вы уверены, что нажали файл '.gitignore'? – ettanany

2

Вы должны использовать OPENSHIFT_DATA_DIR, чтобы сохранить постоянные файлы. Используйте символическую ссылку в ссылке на одну из ваших папок в репо.

Редактировать

post_deploy пример

#!/bin/bash 
echo ".................Starting 'post_deploy' Action Hook..................................." 
echo ".................attempting 'uploads' setting up symlink........................" 
echo "................................................................................" 
cd $OPENSHIFT_REPO_DIR/<path to static folder> 
ln -s $OPENSHIFT_DATA_DIR/uploads uploads 
echo ".................creating 'uploads' completed........................" 
echo "................................................................................" 
+0

Но в этом случае симлинк будет удален. Я неправильно? –

+0

Я использую hook_ post_deploy для создания его на каждом git push –

+0

Я добавил файл примера в свой ответ –

0

Git работает на файлах, а не по папкам. И если папка не содержит никаких файлов, git предполагает, что сама папка тоже не должна присутствовать.

Наиболее часто используемым решением является пустой файл .gitkeep в папке, которая должна оставаться. Затем, в .gitignore, можно добавить следующее:

images_folder/* 
!images_folder/.gitkeep 

Это говорит мерзавцу, чтобы игнорировать все файлы в папке изображений, для одного файла с именем .gitkeep исключением. (Так что файл также должен быть зафиксирован.) Тогда нет никакой причины, чтобы git удалял папку, поэтому ваши изображения останутся.

+0

Во-первых, действительно спасибо. Я пробовал, но это не сработало. Я думаю, проблема в том, что мои подпапки в images_folder. Папки с именем user_id, а также фотографии. Например: «images_folder/23582385/firstphoto.png». Итак, я пробовал этот случай: 'images_folder/* images_folder/*/*! images_folder /.gitkeep. Он сохраняет images_folder, но удаляет вложенные папки и их содержимое, когда я толкнул git. –

+0

Я изменил свой путь. Итак, я использую этот способ для хранения фотографий: «images_folder/28358523.png», и я использую ваш код gitignore. Мой файл gitignore находится в основном каталоге. Таким образом, image_folder также находится в главном каталоге. Я также создал файл .gitkeep в images_folder. Но все же, когда я использую git push, изображения удаляются пользователями с помощью веб-интерфейса. он просто сохранил файл .gitkeep в каталоге images_folder. –

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