ТАЙНИК – это… Что такое ТАЙНИК?
Тайник — ? Тайник Тайник … Википедия
тайник — птицеловная сеть, на двух шестиках, а иногда на двух полотнах, накидываемых встречу друг другу; род большой мережи (Даль, таить) См … Словарь синонимов
ТАЙНИК — ТАЙНИК, а, муж. Помещение, место, служащее тайным убежищем или хранилищем. Тайники старинных крепостей. Т. под полом. В тайниках души (перен.: глубоко в себе, в душе). | прил. тайниковый, ая, ое. Толковый словарь Ожегова. С.И. Ожегов, Н.Ю.… … Толковый словарь Ожегова
тайник — (36) <пол. tajnik таємниця; [MО,VI] … Толковый украинский словарь
Тайник — специально подобранное, а иногда и оборудованное место, используемое для обмена секретной информацией и материалами между разведкой и агентами без вступления в личный контакт. Тайник подбирается или оборудуется так, чтобы его можно было легко… … Контрразведывательный словарь
тайник — slėptuvė statusas T sritis ekologija ir aplinkotyra apibrėžtis Uždaras statinys, specialiai statytas arba įrengtas žmonėms apsaugoti nuo visų naikinimo priemonių. Slėptuvės pagal paskirtį būna: karinės ir civilinės. atitikmenys: angl. burial… … Ekologijos terminų aiškinamasis žodynas
Тайник — или тайничок птицеловный то же, что понцы (см.), но только из одной сети, употребляется для ловли мелких птиц и притом в небольшом числе. Т. называются также сети для крытия голубей (см. Голубиная охота) … Энциклопедический словарь Ф.А. Брокгауза и И.А. Ефрона
Тайник — I м. Помещение с потайным входом, служащее для хранения чего либо или для укрытия кого либо. II м. разг. Место, куда нет доступа другим. Толковый словарь Ефремовой. Т. Ф. Ефремова. 2000 … Современный толковый словарь русского языка Ефремовой
тайник — тайник, тайники, тайника, тайников, тайнику, тайникам, тайник, тайники, тайником, тайниками, тайнике, тайниках (Источник: «Полная акцентуированная парадигма по А. А. Зализняку») … Формы слов
тайник — тайн ик, а … Русский орфографический словарь
Значение слова «Тайник» в 10 онлайн словарях Даль, Ожегов, Ефремова и др.
Поделиться значением слова:Ударение: тайни́к м.
- Помещение с потайным входом, служащее для хранения чего-л. или для укрытия кого-л.
- перен. Место, куда нет доступа другим.
ТАЙНИ́К, тайника, ·муж.
1. Помещение с потайным в него доступом, служащее местом скрытного хранения чего-нибудь или тайным убежищем. Сундук в тайнике.
| перен., чего. То, куда нет доступа другим, самое сокровенное место. «Не допускал я никого в тайник души моей стыдливой.» Некрасов. «Заветные клады сохранила она там в глубине души, в самом ее тайнике.» А.Тургенев.
2. Укромное место, откуда можно подслушивать, оставаясь незамеченным (·устар. ).
| Скрытое место для прохода куда-нибудь (
сети; шхера, убежище, хранилище, укромное место, тайничок
птицеловная сеть, на двух шестиках, а иногда на двух полотнах, накидываемых встречу друг другу; род большой мережи (Даль, таить)
См. сети…
тайничок, убежище, хранилище
тайни́к,
тайники́,
тайника́,
тайнико́в,
тайнику́,
тайника́м,
тайни́к,
тайнико́м,
тайника́ми,
тайнике́,
тайника́х
Поделиться значением слова:
тайник — Викисловарь
Морфологические и синтаксические свойства
падеж | ед. ч. | мн. ч. |
---|---|---|
Им. | тайни́к | тайники́ |
Р. | тайника́ | тайнико́в |
Д. | тайнику́ | тайника́м |
В. | тайни́к | тайники́ |
Тв. | тайнико́м | тайника́ми |
Пр. | тайнике́ | тайника́х |
тай-ни́к
Существительное, неодушевлённое, мужской род, 2-е склонение (тип склонения 3b по классификации А. А. Зализняка).
Корень: -тай-; суффиксы: -н-ик [Тихонов, 1996].
Произношение
Семантические свойства
Значение
- помещение, место, служащее тайным убежищем или хранилищем чего-либо ◆ Для начала он отпер шкаф ― там было пусто; затем нажал на потайную дощечку, и в задней стене открылся тайник. Д. Л. Быков, «Орфография», 2002 г. (цитата из Национального корпуса русского языка, см. Список литературы)
- перен. сокровенное, недоступное посторонним место или сокровенная сторона чего-либо ◆ В тайниках моей души происходил религиозный процесс, искание конкретной веры Н. А. Бердяев, «Автобиография», 1917 г. (цитата из Национального корпуса русского языка, см. Список литературы)
Синонимы
- схрон, нычка
Антонимы
- –
Гиперонимы
- хранилище, вместилище
Гипонимы
Родственные слова
Список всех слов с корнем «-тай-» | ||
|
Этимология
Происходит от прил. тайный, далее из ??
Фразеологизмы и устойчивые сочетания
Метаграммы
Перевод
Библиография
Для улучшения этой статьи желательно:
|
Тайник – это… Что такое тайник?
Стенки да доно, это вот и тайник, а там ворота, эвон где жерди две рядом торчат, ворота там… Она идет, в ворота зайдет — и в
своей долей, ему была поведана душераздирающая история о том, как менты поганые накрыли тайник, где хранилась партия подготовленного для переправки на Запад товара, в том числе и вещи из квартиры Хворостина… Старик выслушал эту байку спокойно, даже покивал сочувственно, когда Миша стонал о своих убытках… Вору хватило недели, чтобы убедиться на сто процентов в том, что Монахов прогнал порожняк, — ни менты, ни Комитет никакого тайника с подготовленным для контрабанды товаром не накрывали.
Закрыв толстую тетрадь в клеенчатой обложке, она убрала ее обратно в тайник и из того же тайника достала женскую косынку для волос и засушенный цветок садовой астры.
Закрыв толстую тетрадь в клеенчатой обложке, убрала ее обратно в тайник и из того же тайника достала женскую косынку и засушенный цветок садовой астры.
Правда сам для себя я решил, что если по пути к тайнику найду что-нибудь стоящее, то плюну на все и вернусь — пропади пропадом тот
Ну и тайник, по правде сказать, на то тайником и прозывается, что пока до него доберешься, сгорит все на свете.
Во-вторых, это значило, что содержимое тайника древних, который собственно и был конечной целью его пути, в скором времени перекочует на склад службы королевской эвакуации, а не в лабораторию Академии, причём у Академии опять-таки изначально не было никаких прав ни на тайник, ни на найденное.
Том очень сильно ругался, когда не обнаружил в своем тайнике писем от возлюбленной… Кристин тогда неделю следила за своим другом, чтобы найти этот тайник.
Нэл продолжал говорить ему о каком-то тайнике, о спрятанном в нём золоте, о подземелье, в котором этот тайник якобы находился, но онт уже ничего толком не слышал.
В общем, потратив час времени, я обнаружил, что валуны с тайниками расположены в определенной последовательности: от очередного валуна нужно идти полторы минуты на юго-запад, там оказывается еще один тайник с кастетом (но больше двух мне не нужно), а если от нового валуна идти строго на юг, через две минуты будет кое-что получше!
тайник – это… Что такое тайник?
Тайник — ? Тайник Тайник … Википедия
тайник — птицеловная сеть, на двух шестиках, а иногда на двух полотнах, накидываемых встречу друг другу; род большой мережи (Даль, таить) См … Словарь синонимов
ТАЙНИК — ТАЙНИК, тайника, муж. 1. Помещение с потайным в него доступом, служащее местом скрытного хранения чего нибудь или тайным убежищем. Сундук в тайнике. || перен., чего. То, куда нет доступа другим, самое сокровенное место. «Не допускал я никого в… … Толковый словарь Ушакова
ТАЙНИК — ТАЙНИК, а, муж. Помещение, место, служащее тайным убежищем или хранилищем. Тайники старинных крепостей. Т. под полом. В тайниках души (перен.: глубоко в себе, в душе). | прил. тайниковый, ая, ое. Толковый словарь Ожегова. С.И. Ожегов, Н.Ю.… … Толковый словарь Ожегова
тайник — (36) <пол. tajnik таємниця; [MО,VI] … Толковый украинский словарь
Тайник — специально подобранное, а иногда и оборудованное место, используемое для обмена секретной информацией и материалами между разведкой и агентами без вступления в личный контакт. Тайник подбирается или оборудуется так, чтобы его можно было легко… … Контрразведывательный словарь
тайник — slėptuvė statusas T sritis ekologija ir aplinkotyra apibrėžtis Uždaras statinys, specialiai statytas arba įrengtas žmonėms apsaugoti nuo visų naikinimo priemonių. Slėptuvės pagal paskirtį būna: karinės ir civilinės. atitikmenys: angl. burial… … Ekologijos terminų aiškinamasis žodynas
Тайник — или тайничок птицеловный то же, что понцы (см.), но только из одной сети, употребляется для ловли мелких птиц и притом в небольшом числе. Т. называются также сети для крытия голубей (см. Голубиная охота) … Энциклопедический словарь Ф.А. Брокгауза и И.А. Ефрона
Тайник — I м. Помещение с потайным входом, служащее для хранения чего либо или для укрытия кого либо. II м. разг. Место, куда нет доступа другим. Толковый словарь Ефремовой. Т. Ф. Ефремова. 2000 … Современный толковый словарь русского языка Ефремовой
тайник — тайник, тайники, тайника, тайников, тайнику, тайникам, тайник, тайники, тайником, тайниками, тайнике, тайниках (Источник: «Полная акцентуированная парадигма по А. А. Зализняку») … Формы слов
тайник — тайн ик, а … Русский орфографический словарь
ТАЙНИК – это… Что такое ТАЙНИК?
Тайник — ? Тайник Тайник … Википедия
тайник — птицеловная сеть, на двух шестиках, а иногда на двух полотнах, накидываемых встречу друг другу; род большой мережи (Даль, таить) См … Словарь синонимов
ТАЙНИК — ТАЙНИК, тайника, муж. 1. Помещение с потайным в него доступом, служащее местом скрытного хранения чего нибудь или тайным убежищем. Сундук в тайнике. || перен., чего. То, куда нет доступа другим, самое сокровенное место. «Не допускал я никого в… … Толковый словарь Ушакова
тайник — (36) <пол. tajnik таємниця; [MО,VI] … Толковый украинский словарь
Тайник — специально подобранное, а иногда и оборудованное место, используемое для обмена секретной информацией и материалами между разведкой и агентами без вступления в личный контакт. Тайник подбирается или оборудуется так, чтобы его можно было легко… … Контрразведывательный словарь
тайник — slėptuvė statusas T sritis ekologija ir aplinkotyra apibrėžtis Uždaras statinys, specialiai statytas arba įrengtas žmonėms apsaugoti nuo visų naikinimo priemonių. Slėptuvės pagal paskirtį būna: karinės ir civilinės. atitikmenys: angl. burial… … Ekologijos terminų aiškinamasis žodynas
Тайник — или тайничок птицеловный то же, что понцы (см.), но только из одной сети, употребляется для ловли мелких птиц и притом в небольшом числе. Т. называются также сети для крытия голубей (см. Голубиная охота) … Энциклопедический словарь Ф.А. Брокгауза и И.А. Ефрона
Тайник — I м. Помещение с потайным входом, служащее для хранения чего либо или для укрытия кого либо. II м. разг. Место, куда нет доступа другим. Толковый словарь Ефремовой. Т. Ф. Ефремова. 2000 … Современный толковый словарь русского языка Ефремовой
тайник — тайник, тайники, тайника, тайников, тайнику, тайникам, тайник, тайники, тайником, тайниками, тайнике, тайниках (Источник: «Полная акцентуированная парадигма по А. А. Зализняку») … Формы слов
тайник — тайн ик, а … Русский орфографический словарь
Тайник – это… Что такое Тайник?
Тайник — ? Тайник Тайник … Википедия
тайник — птицеловная сеть, на двух шестиках, а иногда на двух полотнах, накидываемых встречу друг другу; род большой мережи (Даль, таить) См … Словарь синонимов
ТАЙНИК — ТАЙНИК, тайника, муж. 1. Помещение с потайным в него доступом, служащее местом скрытного хранения чего нибудь или тайным убежищем. Сундук в тайнике. || перен., чего. То, куда нет доступа другим, самое сокровенное место. «Не допускал я никого в… … Толковый словарь Ушакова
ТАЙНИК — ТАЙНИК, а, муж. Помещение, место, служащее тайным убежищем или хранилищем. Тайники старинных крепостей. Т. под полом. В тайниках души (перен.: глубоко в себе, в душе). | прил. тайниковый, ая, ое. Толковый словарь Ожегова. С.И. Ожегов, Н.Ю.… … Толковый словарь Ожегова
тайник — (36) <пол. tajnik таємниця; [MО,VI] … Толковый украинский словарь
Тайник — специально подобранное, а иногда и оборудованное место, используемое для обмена секретной информацией и материалами между разведкой и агентами без вступления в личный контакт. Тайник подбирается или оборудуется так, чтобы его можно было легко… … Контрразведывательный словарь
тайник — slėptuvė statusas T sritis ekologija ir aplinkotyra apibrėžtis Uždaras statinys, specialiai statytas arba įrengtas žmonėms apsaugoti nuo visų naikinimo priemonių. Slėptuvės pagal paskirtį būna: karinės ir civilinės. atitikmenys: angl. burial… … Ekologijos terminų aiškinamasis žodynas
Тайник — или тайничок птицеловный то же, что понцы (см.), но только из одной сети, употребляется для ловли мелких птиц и притом в небольшом числе. Т. называются также сети для крытия голубей (см. Голубиная охота) … Энциклопедический словарь Ф.А. Брокгауза и И.А. Ефрона
Тайник — I м. Помещение с потайным входом, служащее для хранения чего либо или для укрытия кого либо. II м. разг. Место, куда нет доступа другим. Толковый словарь Ефремовой. Т. Ф. Ефремова. 2000 … Современный толковый словарь русского языка Ефремовой
тайник — тайник, тайники, тайника, тайников, тайнику, тайникам, тайник, тайники, тайником, тайниками, тайнике, тайниках (Источник: «Полная акцентуированная парадигма по А. А. Зализняку») … Формы слов
тайник — тайн ик, а … Русский орфографический словарь
Как использовать тайники Git в качестве временного хранилища
12 октября 2018
Допустим, вы пишете код в своей ветке разработки. И вы получите уведомление об ошибке в производственной ветви.
Вы хотите проверить наличие ошибки, но не хотите потерять работу, которую вы создали в ветке разработки. Вы также не хотите фиксировать то, что написали, потому что это еще не сделано.
Чем вы занимаетесь? Вы не можете совершать коммиты и не можете переключаться между ветвями.Если вы поменяете ветвь, вещи, которые не зафиксированы, перейдут в ветку, на которую вы переключились.
Что вы хотите сделать, так это временно сохранить изменения, пока вы переключаетесь на другую ветку. ** Тайник Git – это временное хранилище. **
Использование тайника с Git Fork
Чтобы использовать тайник, вам нужно начать с некоторого незафиксированного кода. В этом уроке мы будем использовать следующий фрагмент кода в качестве незафиксированных изменений:
<основной>
Новый абзац
Чтобы спрятать этот код, вы можете нажать на кнопку тайника.
Как только вы нажмете на кнопку тайника, Fork попросит вас оставить сообщение. Это сообщение указывает на то, о чем идет речь.
Так как тайники временные, вы можете использовать любое имя. Назовем это «временное хранилище».
После создания нового тайника вы найдете его в разделе Тайники на боковой панели.
Примечание. Вы не сможете увидеть изменения в этом тайнике, но это не проблема, потому что вам и не придется. Что вы хотите сделать, так это переключить свою ветку, закончить то, что вам нужно, и переключиться обратно.
В этом случае мы собираемся выполнить проверку в ветке master
. Когда вы это сделаете, обратите внимание, что вы не видите незафиксированный код, который мы написали выше, в ветвях master
и development
.
Применение сохраненных изменений
Вы можете вернуться в ветку, в которой были, затем щелкнуть правой кнопкой мыши по своему тайнику и выбрать «Применить тайник».
Fork спросит вас, удалять ли тайник, когда вы это сделаете. Обычно я удаляю тайник, потому что не хочу хранить больше одного тайника одновременно.
После применения тайника вы сможете увидеть внесенные вами изменения.
<основной>
Новый абзац
Завершение
Тайники – это временные хранилища, где вы можете хранить свой код.Когда вы сохранили свой код, вы можете перейти к другим ветвям, чтобы заняться чем-то еще.
Когда вы закончите, вы можете вернуть свой код из тайника.
С Git Stash вам не нужно беспокоиться о потере незафиксированных изменений!
Если вам понравилась эта статья, расскажите о ней другу! Поделитесь этим в Твиттере. Если вы заметили опечатку, я буду признателен, если вы сможете исправить ее на GitHub. Спасибо!
.git stash – Сохранение изменений
git stash
временно откладывает (или хранит ) изменения, которые вы внесли в свою рабочую копию, чтобы вы могли работать над чем-то еще, а затем вернуться и повторно применить их позже. Хранение удобно, если вам нужно быстро переключить контекст и поработать над чем-то другим, но вы находитесь на полпути к изменению кода и не совсем готовы к фиксации.
Спрятать свою работу
Команда git stash
берет ваши незафиксированные изменения (как поэтапные, так и неустановленные), сохраняет их для дальнейшего использования, а затем возвращает их из вашей рабочей копии.Например:
$ git status
О мастере филиала
Изменения, которые необходимо зафиксировать:
новый файл: style.css
Изменения, не предназначенные для фиксации:
изменено: index.html
$ git stash
Сохраненный рабочий каталог и состояние индекса WIP на главном сервере: 5002d47 наша новая домашняя страница
HEAD теперь на 5002d47 нашей новой домашней странице
$ git status
О мастере филиала
ничего не делать, рабочее дерево чистое
На этом этапе вы можете вносить изменения, создавать новые коммиты, переключать ветви и выполнять любые другие операции Git; затем вернитесь и снова примените свой тайник, когда будете готовы.
Обратите внимание, что тайник является локальным для вашего репозитория Git; тайники не передаются на сервер при нажатии.
Повторное применение сохраненных изменений
Вы можете повторно применить ранее сохраненные изменения с помощью git stash pop
:
$ git status
О мастере филиала
нечего делать, рабочее дерево чистое
$ git stash pop
О мастере филиала
Изменения, которые необходимо зафиксировать:
новый файл: style.css
Изменения, не предназначенные для фиксации:
изменено: index.html
Выпали ссылки / тайник @ {0} (32b3aa1d185dfe6d57b3c3cc3b32cbf3e380cc6a)
Выталкивание вашего тайника удаляет изменения из вашего тайника и повторно применяет их к вашей рабочей копии.
В качестве альтернативы вы можете повторно применить изменения к своей рабочей копии и , сохранить их в своем тайнике с помощью git stash apply
:
$ git stash применить
О мастере филиала
Изменения, которые необходимо зафиксировать:
новый файл: style.css
Изменения, не предназначенные для фиксации:
изменено: index.html
Это полезно, если вы хотите применить одни и те же сохраненные изменения к нескольким ветвям.
Теперь, когда вы знаете основы хранения, есть одно предостережение с git stash
, о котором вам нужно знать: по умолчанию Git не будет сохранять изменений, внесенных в неотслеживаемые или игнорируемые файлы.
Хранение неотслеживаемых или проигнорированных файлов
По умолчанию при запуске git stash
будет сохранено:
- изменение, которое было добавлено в ваш индекс (поэтапные изменения)
- изменения, внесенные в файлы, которые в настоящее время отслеживаются Git (неустановленные изменения)
Но это будет , а не тайник:
- новый файл в вашей рабочей копии, которые еще не были поставлены
- проигнорированные файлы
Итак, если мы добавим третий файл к нашему примеру выше, но не будем его обрабатывать (т.е.е. мы не запускаем git add
), git stash
не будет его прятать.
$ script.js
$ git status
О мастере филиала
Изменения, которые необходимо зафиксировать:
новый файл: style.css
Изменения, не предназначенные для фиксации:
изменено: index.html
Не отслеживаемые файлы:
script.js
$ git stash
Сохраненный рабочий каталог и состояние индекса WIP на главном сервере: 5002d47 наша новая домашняя страница
HEAD теперь на 5002d47 нашей новой домашней странице
$ git status
О мастере филиала
Не отслеживаемые файлы:
script.js
Добавление опции -u
(или --include-untracked
) сообщает git stash
, что нужно также хранить ваши неотслеживаемые файлы:
$ git status
О мастере филиала
Изменения, которые необходимо зафиксировать:
новый файл: style.css
Изменения, не предназначенные для фиксации:
изменено: index.html
Не отслеживаемые файлы:
script.js
$ git stash -u
Сохраненный рабочий каталог и состояние индекса WIP на главном сервере: 5002d47 наша новая домашняя страница
HEAD теперь на 5002d47 нашей новой домашней странице
$ git status
О мастере филиала
ничего не делать, рабочее дерево чистое
Вы также можете включить изменения в игнорируемые файлы, передав параметр -a
(или --all
) при запуске git stash
.
Управление несколькими тайниками
Вы не ограничены одним тайником.Вы можете запустить git stash
несколько раз, чтобы создать несколько тайников, а затем использовать git stash list
для их просмотра. По умолчанию тайники идентифицируются просто как «WIP» – незавершенная работа – поверх ветки и фиксации, из которой вы создали тайник. Через некоторое время может быть трудно вспомнить, что содержит каждый тайник:
$ список тайников git
stash @ {0}: WIP на главной странице: 5002d47 наша новая домашняя страница
stash @ {1}: WIP на главной странице: 5002d47 наша новая домашняя страница
stash @ {2}: WIP на главном сервере: 5002d47 наша новая домашняя страница
Чтобы предоставить немного больше контекста, рекомендуется аннотировать ваши тайники с описанием, используя git stash save "message"
:
$ git stash save "добавить стиль на наш сайт"
Сохраненный рабочий каталог и состояние индекса На мастере: добавить стиль на наш сайт
HEAD теперь на 5002d47 нашей новой домашней странице
список $ git stash
stash @ {0}: На мастере: добавьте стиль на наш сайт
stash @ {1}: WIP на главной странице: 5002d47 наша новая домашняя страница
stash @ {2}: WIP на главном сервере: 5002d47 наша новая домашняя страница
По умолчанию git stash pop
повторно применяет последний созданный тайник: stash @ {0}
Вы можете выбрать, какой тайник повторно применить, передав его идентификатор в качестве последнего аргумента, например:
$ git stash pop stash @ {2}
Просмотр различий в тайнике
Вы можете просмотреть сводку тайника с помощью git stash show
:
$ git stash показать
индекс.html | 1 +
style.css | 3 +++
2 файла изменено, 4 прошивки (+)
Или передайте опцию -p
(или --patch
), чтобы просмотреть полную разницу в тайнике:
$ git stash show -p
diff --git a / style.css b / style.css
новый файловый режим 100644
индекс 0000000..d92368b
--- / dev / null
+++ b / style.css
@@ -0,0 +1,3 @@
+ * {
+ текст-оформление: мигание;
+}
diff --git a / index.html b / index.html
индекс 9daeafb..ebdcbd2 100644
--- a / index.html
+++ b / index.html
@@ -1 +1,2 @@
+
Частичные тайники
Вы также можете спрятать только один файл, набор файлов или отдельные изменения внутри файлов. Если вы передадите опцию -p
(или --patch
) в git stash
, он будет перебирать каждый измененный «кусок» в вашей рабочей копии и спрашивать, хотите ли вы его спрятать:
$ git stash -p
diff --git a / style.css b / style.css
новый файловый режим 100644
индекс 0000000..d92368b
--- / dev / null
+++ b / style.css
@@ -0,0 +1,3 @@
+ * {
+ текст-оформление: мигание;
+}
Спрятать этот кусок [y, n, q, a, d, /, e ,?]? y
diff --git a / index.html b / index.html
индекс 9daeafb..ebdcbd2 100644
--- a / index.html
+++ b / index.html
@@ -1 +1,2 @@
+
Спрятать этот кусок [y, n, q, a, d, /, e ,?]? n
Можно ударить ? для получения полного списка команд Hunk.Обычно полезные:
Команда | Описание |
---|---|
/ | поиск фрагмента по регулярному выражению |
? | справка |
n | не прячьте этот кусок |
кв | выйти (любые уже выбранные фрагменты будут сохранены) |
с | разделить этот кусок на более мелкие фрагменты |
л | спрятать этот кусок |
Нет явной команды «abort», но нажатие CTRL-C
(SIGINT) прервет процесс хранения.
Создание ветки из вашего тайника
Если изменения в вашей ветке расходятся с изменениями в вашем тайнике, вы можете столкнуться с конфликтами при открытии или применении вашего тайника. Вместо этого вы можете использовать git stash branch
, чтобы создать новую ветку для применения ваших сохраненных изменений к:
$ git stash branch add-stylesheet stash @ {1}
Перешел на новую ветку add-stylesheet
В ветке добавить таблицу стилей
Изменения, которые необходимо зафиксировать:
новый файл: style.css
Изменения, не предназначенные для фиксации:
изменено: index.html
Выпавшие ссылки / тайник @ {1} (32b3aa1d185dfe6d57b3c3cc3b32cbf3e380cc6a)
Это проверяет новую ветку на основе коммита, из которого вы создали свой тайник, а затем помещает в него сохраненные изменения.
Очистка вашего тайника
Если вы решите, что вам больше не нужен конкретный тайник, вы можете удалить его с помощью git stash drop
:
$ git stash drop stash @ {1}
Сброшен тайник @ {1} (17e2697fd8251df6163117cb3d58c1f62a5e7cdb)
Или вы можете удалить все свои тайники с помощью:
$ git stash clear
Как работает git stash
Если вы просто хотели узнать, как использовать git stash
, вы можете прекратить читать здесь.Но если вам интересно, как Git (и git stash
) работает под капотом, читайте дальше!
Тайники фактически закодированы в вашем репозитории как объекты фиксации. Специальный ref в .git / refs / stash
указывает на ваш последний созданный тайник, а на ранее созданные тайники ссылается журнал reflog stash
ref. Вот почему вы ссылаетесь на тайники с помощью stash @ {n}:
на самом деле вы имеете в виду n-ю запись в журнале ссылок для stash
ref.Поскольку тайник – это просто фиксация, вы можете проверить его с помощью git log
:
$ git log --oneline --graph stash @ {0}
* -. 953ddde WIP на главном сервере: 5002d47 наша новая домашняя страница
| \ \
| | * 24b35a1 неотслеживаемые файлы на главном сервере: 5002d47 наша новая домашняя страница
| * 7023dd4 индекс на мастере: 5002d47 наша новая домашняя страница
| /
* 5002d47 наша новая домашняя страница
В зависимости от того, что вы спрятали, одна операция git stash
создает два или три новых коммита. На диаграмме выше коммиты:
-
stash @ {0}
, новый коммит для хранения отслеживаемых файлов, которые были в вашей рабочей копии, когда вы запускалиgit stash
-
stash @ {0} первый родительский элемент
, ранее существовавший коммит, который был в HEAD, когда вы запускалиgit stash
-
stash @ {0} второй родительский элемент
, новый коммит, представляющий индекс, когда вы запускалиgit stash
-
stash @ {0} третий родительский элемент
, новый коммит, представляющий неотслеживаемые файлы, которые были в вашей рабочей копии, когда вы запускалиgit stash
.Этот третий родитель создан, только если:- ваша рабочая копия действительно содержала неотслеживаемые файлы; и
- вы указали параметр
--include-untracked
или--all
при вызовеgit stash
.
Как git stash
кодирует ваше рабочее дерево и индекс как коммиты:
Перед хранением ваше рабочее дерево может содержать изменения в отслеживаемых, неотслеживаемых и игнорируемых файлах. Некоторые из этих изменений также могут быть внесены в индекс.
Вызов
git stash
кодирует любые изменения в отслеживаемых файлах как две новые фиксации в вашей группе DAG: одна для неустановленных изменений, а другая для изменений, размещенных в индексе. Специальная ссылкаrefs / stash
ref обновлена, чтобы указывать на них.Использование опции
--include-untracked
также кодирует любые изменения в неотслеживаемых файлах как дополнительную фиксацию.Использование параметра
--all
включает изменения любых игнорируемых файлов наряду с изменениями неотслеживаемых файлов в той же фиксации.
Когда вы запускаете git stash pop
, изменения из приведенных выше коммитов используются для обновления вашей рабочей копии и индекса, а журнал рефлогов тайника перетасовывается, чтобы удалить всплывающий коммит. Обратите внимание, что всплывающие коммиты не удаляются сразу, но становятся кандидатами на будущую сборку мусора.
Как использовать git stash (и когда его не использовать)
Фото NeONBRAND
Пример использования: вы хотите переключиться на другую ветку в том же проекте (скажем, с feature-branch
на staging
), но у вас есть незафиксированные изменения, и git настаивает на том, чтобы вы зафиксировали их перед переключением ветвей.
Использование git stash
действительно просто в большинстве случаев. Он включает git stash
, чтобы «спрятать» все незафиксированные изменения в вашей текущей ветке, и git stash pop
, чтобы восстановить эти изменения, когда вы вернетесь в ветку, где вы хотите применить эти изменения.
Для хранения незафиксированных изменений:
git stash
git checkout staging
Когда вы закончите работу над другой веткой, восстановите незафиксированные изменения:
git checkout функция-ветка
git stash pop
Еще один интересный факт о git stash
заключается в том, что он, по-видимому, поддерживается во всех ветках вашего репозитория git. Это означает, что если вы выполните git stash
в ветке feature-xyz, вы можете, например, запустить git stash pop
в основной ветке.Это может быть полезно, если вы случайно написали код не на той ветке.
Git stash – не всегда лучшее решение
Бывают случаи, когда неразумно использовать git stash
, чтобы сохранить незафиксированные изменения перед переключением ветвей. Я обнаружил, что когда я не уверен, как долго я буду работать над другой веткой , , а не , будет использовать git stash
.
Причина проста: вы можете забыть, что работали там.Это случалось со мной несколько раз, и когда я наконец вспомнил, что сделал работу и спрятал ее раньше, было уже слишком поздно. Я бы пошел дальше и переделал работу.
Итак, в ситуациях, когда вы не знаете, сколько времени вы потратите на работу над другой веткой в том же репозитории, вероятно, лучше всего сделать то, что я назвал (для себя) «неохотной фиксацией».
Неохотная фиксация (для обозначения этого я использую сокращение «RC» в сообщениях фиксации) – моя выдуманная альтернатива git stash
.(На самом деле я использовал его до того, как обнаружил git stash
.) Шаги:
- Зафиксируйте изменения в ветке, которую вы собираетесь оставить.
- Укажите в сообщении о фиксации, что это фиксация неохотно.
- Оформить заказ в другую ветку для работы
- Вернувшись на ветку, которую вы оставили, продолжайте работу, и когда закончите, сквош фиксирует
Преимущество этого RC-подхода заключается в том, что вам не нужно полагаться на собственную память, чтобы помнить, что вы уже начали работу над веткой – она уже совершена.Запустите git log
, чтобы проверить, что вы уже сделали, и продолжайте дальше.
git add.
git commit -m "RC: в процессе добавления API продукта"
git checkout feature-branch-2
Когда я закончил работу над этой веткой, я обычно очищал коммиты, сжимая их с помощью git rebase -i HEAD ~
(см. Руководство по коммитам git), так что неохотная фиксация сжимается в финальном, единственном совершить.
Вот и все о неохотных коммитах.
Обратите внимание, что в этом посте я просто описываю основной вариант использования git stash
и намеренно не упомянул сложные и мощные периферийные параметры. Например, git stash pop
фактически восстанавливает изменения и удаляет тайник в той же команде, которую можно разделить – например, git pull
представляет собой комбинацию git fetch
и git merge
.
Узнайте больше непосредственно от производителей в документации.
Другие короткие руководства, связанные с git:
.