Git stash восстанавливает удаленный файл и добавляет его в неотслеживаемый файл - PullRequest
0 голосов
/ 21 мая 2019

При коммите я перестраиваю свое приложение для проекта узла, и встроенные файлы помещаются в каталог dist. Чтобы избежать проблем с файлами в каталоге dist, которые уже находятся в стадии подготовки, я делаю следующее:

  • Отключение каталога dist
  • Отменить любые изменения в каталоге dist
  • Храните любые неустановленные или неотслеживаемые файлы
  • Сборка приложения
  • Подготовить каталог dist
  • Распаковка неотмеченных и неотслеживаемых файлов

Вот команды, которые я использую:

git reset HEAD -- dist && \
git checkout -- dist && \
git stash push -k -u -m "build" && \
npm run build && \
git add . && \
git stash pop

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

Перед выполнением вышеуказанных команд вывод git status выглядит следующим образом:

On branch master                                        
Your branch is ahead of 'origin/master' by 1 commit.    
  (use "git push" to publish your local commits)        

Changes to be committed:                                
  (use "git reset HEAD <file>..." to unstage)           

        deleted:    scripts/substenv.js                 

После запуска команд вывод git status выглядит следующим образом:

On branch master
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        deleted:    scripts/substenv.js

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        scripts/substenv.js                 

Файл без отслеживания появляется после команды git stash push -k -u -m "build".

Может кто-нибудь объяснить, почему / что происходит?

1 Ответ

0 голосов
/ 21 мая 2019

Вам нужно добавить файл в .gitignore, чтобы перестать видеть его в списке Untracked files.

Обычно в вашем тайнике есть файл, а затем он снова добавляется при повторном применении этого тайника.

Кстати, меня смущают ваши настройки / команды, почему бы вам просто не добавить папку dist в файл .gitignore?

Обновление на основе комментариев:

Думаю, вам может понадобиться обновить скрипт npm build. Поскольку вам необходимо опубликовать папку dist, файлы в ней должны быть зарегистрированы. Используйте папку build в качестве промежуточного шага и добавьте ее в .gitignore.

  • Создайте приложение с помощью npm build
  • Это создаст кучу файлов в папке build/ (которую следует игнорировать)
  • Скопируйте нужные файлы / файлы для регистрации в папку dist
  • Прибыль
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...