предотвратить работу git stash с неуправляемыми файлами?

Интересно, как заставить git stash не работать с неуправляемыми файлами?

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

bin/classes.dex already exists, no checkout

интересно, когда я смотрю на содержимое заначки с

git stash show stash@{1}

эти файлы даже не указаны в тайнике.

как я могу запретить stash помещать эти неуправляемые файлы в stash в первую очередь?

если это уже произошло, как мне заставить stash применять только файлы, которыми управляет git? (это будут те же самые файлы, которые перечислены в git stash show)


person Ákos Maróy    schedule 23.01.2014    source источник
comment
git stash должен игнорировать неуправляемые файлы, как и любой другой инструмент Git. Вы уверены, что у вас нет --all или чего-то еще в вашем глобальном .gitconfig?   -  person Aaron Digulla    schedule 23.01.2014
comment
Единственный способ воспроизвести эту проблему — использовать -a или -u с git stash save, заново создать неотслеживаемый файл, а затем выполнить git pop. Вы проверяли этот сценарий?   -  person Mike Monkiewicz    schedule 23.01.2014
comment
Проверьте свой файл .gitconfig, есть ли раздел, относящийся к тайникам?   -  person rjmunro    schedule 28.01.2014
comment
Вы добавили class.dex в git, а затем добавили его в свой .gitignore?   -  person maclir    schedule 30.01.2014
comment
Было бы интересно увидеть простой сценарий, показывающий проблемы, о которых вы говорите. Если файл в неотслеживаемых файлах, а не в наборе файлов заначки, то я не понимаю, почему заначку нельзя применить.   -  person lrineau    schedule 31.01.2014
comment
мой .gitconfig содержит только мое имя и адрес электронной почты. на самом деле у меня есть каталог bin, указанный выше в .gitignore, поэтому нет, если эти файлы зафиксированы в репозитории. сам каталог 'bin' даже не добавляется в репозиторий, действительно, эти файлы регенерируются, но суть в том, что они не являются частью репозитория, так как регенерируются в среде разработки   -  person Ákos Maróy    schedule 01.02.2014


Ответы (1)


Я подозреваю, что кто-то другой закоммитил bin/classes.dex Git не может заменить ваш неотслеживаемый файл файлом, который зафиксировал кто-то другой.

если вы хотите, чтобы файл сначала зафиксировал ваш, а затем вы могли видеть, что сделал другой человек. (скорее всего конфликт)

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

person Sally    schedule 31.01.2014
comment
нет, этот файл никто не коммитил - самой директории bin нет в репозитории, а она вообще-то в .gitignore - person Ákos Maróy; 01.02.2014