Действительно ли возможно отбросить единственный файл от притона мерзавца?

Действительно ли это возможно без поп целый притон, и сохраните другого без этого конкретного файла?

5
задан noisy 26 June 2010 в 14:23
поделиться

2 ответа

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

Предполагая, что вы сохранили некоторые другие изменения, затем внесли еще несколько изменений в свой индекс ( исходные изменения ), и вы решили, что хотите сохранить эти изменения, изменяя тайник. :

#verify the state you are in
git stash list
git status

git stash #push work in progress on the stash
git stash list #check which stash you need
git stash show stash@{1} #check the changes in the stash

git stash pop stash@{1} #you're now ready to change your 'other' changeset
# hack hack
git stash #modified 'other' change set pushed on the stash
git stash pop stash@{1} #your 'original changes'

Я бы порекомендовал этот рабочий процесс вместо попыток напрямую изменить тайник. Если вы потерялись в числах тайников, вы также можете использовать git stash save 'some other changes'

В какой-то момент (возможно, ближе, чем вы думаете) легче отслеживать настоящие ветки.

2
ответ дан 15 December 2019 в 06:14
поделиться

Вы можете попробовать после извлечения вашего стека пометить файл, который вы не хотите хранить, как "неизменный":

git  update-index --assume-unchanged -- /path/to/file

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

git update-index страница руководства :

--assume-unchanged
--no-assume-unchanged

Если указаны эти флаги, имена объектов, записанные для путей, не обновляются.
Вместо этого эти параметры устанавливают и сбрасывают бит «считать неизменным» для путей.

Когда установлен бит «считать неизменным», git прекращает проверку файлов рабочего дерева на предмет возможных изменений, поэтому вам нужно вручную сбросить бит, чтобы сообщить git, когда вы изменяете файл рабочего дерева.
Это иногда полезно при работе с большим проектом в файловой системе, которая имеет очень медленный системный вызов lstat (2) (например, cifs ).

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

1
ответ дан 15 December 2019 в 06:14
поделиться
Другие вопросы по тегам:

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