Ссылка на хранилище не включена при выполнении Git push Laravel - PullRequest
0 голосов
/ 06 февраля 2019

Я только что сделал git push в нашем онлайн-репо

Когда я проверил онлайн-репо и проверил папку public, она показывает это: enter image description here

в то время как в моем локальном репо у меня есть это в моей папке public:

enter image description here

В моем локальном хранилище есть папка Storage из моей ссылки хранения.Я предполагаю, что это как-то связано с .gitignore внутри моей локальной папки public.Он содержит:

*
!.gitignore

То же самое относится и к моим папкам хранения.В нашем онлайн-репо внутри storage/app/public: enter image description here

в моей локальной папке storage:

enter image description here

user_images присутствует в моем локальном репо.Вот внутренний .gitignore:

*
!.gitignore

и внешний .gitigore:

*
!public/
!.gitignore

Я не совсем знаком с настройкой правил в .gitignore.Я хочу убедиться, что, что бы ни было в моей локальной папке «Хранилище» и «Общая папка», в онлайн-репозитории также есть.Как мне поступить при этом?

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

Это содержимое корня .gitignore:

/node_modules
/public/hot
/public/storage
/storage/*.key
/vendor
.env
.phpunit.result.cache
Homestead.json
Homestead.yaml
npm-debug.log
yarn-error.log

Я удалил /public/storage в .gitignored и попытался сделать git push

Changes not staged for commit:
        modified:   .gitignore

и все же, ничто не отличается от моего локального репо онлайн?Что-нибудь, что я мог пропустить?

Пробовал запустить git check-ignore -v path/to/file

В моем корне .gitignore:

/node_modules
/public/hot
/public/storage
/storage/*.key
/vendor
.env
.phpunit.result.cache
Homestead.json
Homestead.yaml
npm-debug.log
yarn-error.log

Если я запустил git check-ignore -v public/hot, он отвечает .gitignore:2:/public/hot public/hot но если я запустил git check-ignore -v public/storage, он не отвечает ни на что, как следовало бы, потому что он включен в root .gitignore Я пришел к выводу, что эта ситуация сделала невозможным для public/storage/user_images и storage/app/public/user_images.Требуется любая помощь.

Возможно, все это время я просматривал неправильный файл или путь.Но я могу подтвердить, что метод @VonC помог мне сделать правильное исключение в gitignore.Спасибо.

РЕДАКТИРОВАТЬ:

Окончательные gitignores до сих пор

root .gitignore:

/node_modules
# /public/hot
# /public/storage
/storage/*.key
/vendor
.env
.phpunit.result.cache
Homestead.json
Homestead.yaml
npm-debug.log
yarn-error.log

хранилище \ приложение.gitignore

# *
# !public/
!.gitignore

хранилище \ app \ public.gitignore

# *
!.gitignore

public \ storage.gitignore

# *
!.gitignore

Просто дополнительная информация:

git check-ignore -v vendor дает .gitignore:5:/vendor vendor

, в то время как git check-ignore -v /vendor дает fatal: C:/Program Files/Git/vendor: 'C:/Program Files/Git/vendor' is outside repository

Я не уверен, куда git check-ignore -v указывает путь.

1 Ответ

0 голосов
/ 06 февраля 2019

Во-первых, для любого файла , игнорируемого в папке, введите:

git check-ignore -v -- path/to/file

Это точно покажет, какой .gitignore отвечает за игнорирование указанного файла.

Во-вторых, правило gitignore простое:

Невозможно повторно включить файл, если исключен родительский каталог этого файла.

Чтобы исключить файлы (или все файлы) из подпапки игнорируемой папки f, вам нужно сделать:

f/**
!f/**/
!f/a/sub/folder/someFile.txt

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...