Задать вопрос
@Techurious
Новичок с желанием учиться

Гит: лёгкий откат изменений (дискард) у группы файлов без добавления в игнор?

В общем, ситуация такая: работаем в команде на мастер-ветке через Гитхаб Десктоп на Vscode. В репозитории хранятся как сурс-файлы, так и бинарники для билда (нужны на случай если что-то у кого-то слетит). Бинарники имеет право загружать только тим-лид, чтобы не было конфликтов во время теста и т.д. Проблема в том, что при работе часто приходится запускать прогу, а она естественно локально обновляет и перезаписывает все бинарники у измененных файлов. В игнор бинарники добавить нельзя по указанной выше причине, но каждый раз ручками дискардить все бинарники, чтобы они случайно не влетели в коммит выбешивает из-за траты времени.

Пробовал игнорить их локально через
git update-index --skip-worktree [path]/*.[file type]
, и так-то с задачей справляется, прячет под ковер измененные файлы и спасает от случайного коммита. Проблема возникает тогда, когда тимлид обновляет реп новыми бинарниками, и гитхаб ругается на конфликты и отказывается тянуть обновления.

Можно ли как-нибудь упростить процесс отмены изменений сразу у группы файлов? Может можно где-то конфиг написать со списком файлов, чтобы потом можно было одной командой откатить все файлы, указанные в конфиге, раз у гитхаб десктоп такой фичи нет. Ну или если кто знает полезное расширение для vscode, которое может откатить сразу все файлы одного типа во всех подпапках.
  • Вопрос задан
  • 77 просмотров
Подписаться 1 Средний 2 комментария
Решения вопроса 1
@Techurious Автор вопроса
Новичок с желанием учиться
На всякий случай, если будет кому полезно, нашёл решение для себя: Скачал аддон для VSCode t-akasaki.git-skip-worktree-manager и добавил в skip worktree бинарники, которые обновляются чаще всего. Когда же возникает проблема с пуллом, все они переносятся в no-skip worktree и дискардятся в списке изменений. Таким образом пулл происходит успешно, и затем файлы отправляются обратно в skip worktree. Не идеальное решение, но в описанных условиях качественно оптимизирует рабочий процесс, т.к. дискард нужно сделать лишь один раз перед пуллом, а не каждый раз перед тем, чтобы сделать пуш.

Спасибо всем за мозговой штурм.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@vitaly_il1
DevOps Consulting
Я советую добавлять бинарники не оттуда, где они создаются, а из другой директории. Если и когда надо - копируем туда бинарники вручную перед коммит.
Ответ написан
mayton2019
@mayton2019
Bigdata Engineer
1) Проблема решается просто переносом home каталога вашей проги "во вне" корня репозитария кода.

2) Непонятно почему вы боитесь что-то добавлять в игнор. Обычно туда уходят специфичные extenions, *.o, *.exe, *.dll которым точно не место в коммитах или фолдер типа /bin или /target который проще менеджерить чем список расширений.

Сделайте так и не будьте мышками которые плачут колються и едят кактус.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы