Подтвердить что ты не робот

Git удалить файл из папки

У меня есть файл с кучей файлов.

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

Как я могу удалить один файл из тайника, не уничтожив все это?

4b9b3361

Ответ 1

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

Вы говорите, что не можете применить свой тайник из-за противоречивого файла. Но вы можете применить его, вы просто получите конфликт слияния. Все, что вам нужно сделать, это разрешить конфликт слияния.

Скажем, конфликт находится в файле README.txt, просто чтобы там что-то писать здесь.

Если вы хотите разрешить его, сохранив версию на ветке, примените stash, а затем проверьте версию на ветке, чтобы разрешить конфликт:

git stash apply
git checkout --ours -- README.txt  # or git checkout HEAD -- README.txt

Если вы хотите сохранить версию in-stash, извлеките ее:

git checkout --theirs -- README.txt # or git checkout stash -- README.txt

Или используйте любой старый инструмент разрешения слияния (я просто использую текстовый редактор), а затем "git добавить" результат.

Как только вы все закончите с тайком, git stash drop "забудет" коммиты, составляющие тайник. (Не делайте этого, пока не убедитесь, что с ним все покончено, очень сложно вернуть его обратно.)

Ответ 2

Существует обходной путь для этой ситуации:

  • сохраните свой файл в виде файла исправления:

    $ git stash show -p > stash.patch
    
  • примените этот патч, пропустив конфликты (вас попросят разрешить конфликты, просто пропустите отсутствующие файлы):

    $ patch -p1 < stash.patch
    

Не забывайте очищать stash.patch после этого!

Ответ 3

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