freeCodeCamp/guide/russian/git/git-stash/index.md

4.4 KiB
Raw Blame History

title localeTitle
Git Stash Git Stash

Git Stash

Git имеет область, называемую косой чертой, где вы можете временно сохранить моментальный снимок ваших изменений, не передавая их в репозиторий. Он отделен от рабочего каталога, промежуточной области или хранилища.

Эта функциональность полезна, когда вы вносили изменения в ветку, которую вы не готовы к фиксации, но вам нужно переключиться на другую ветку.

Изменения тарелки

Чтобы сохранить изменения в кошельке, выполните команду:

git stash save "optional message for yourself" 

Это экономит ваши изменения и возвращает рабочий каталог на то, что было похоже на последнюю фиксацию. Спрятанные изменения доступны из любой ветки в этом репозитории.

Обратите внимание, что изменения, которые вы хотите сохранить, должны находиться в отслеживаемых файлах. Если вы создали новый файл и попытаетесь скрыть ваши изменения, вы можете получить ошибку. No local changes to save .

Просмотр измененных изменений

Чтобы узнать, что находится в вашем тайнике, выполните команду:

git stash list 

Это возвращает список сохраненных снимков в формате stash@{0}: BRANCH-STASHED-CHANGES-ARE-FOR: MESSAGE . Часть stash@{0} - это имя кошелька, а число в фигурных скобках ( { } ) является индексом этого stash. Если у вас несколько сменных наборов изменений, каждый из них будет иметь другой индекс.

Если вы забыли, какие изменения были внесены в кошельке, вы можете увидеть сводку их с git stash show NAME-OF-STASH . Если вы хотите увидеть типичный макет патча diff-style (с изменениями + и s для линейных изменений), вы можете включить опцию -p (для патча). Вот пример:

git stash show -p stash@{0} 
 
 # Example result: 
 diff --git a/PathToFile/fileA b/PathToFile/fileA 
 index 2417dd9..b2c9092 100644 
 --- a/PathToFile/fileA 
 +++ b/PathToFile/fileA 
 @@ -1,4 +1,4 @@ 
 -What this line looks like on branch 
 +What this line looks like with stashed changes 

Получить спрятанные изменения

Чтобы извлечь изменения из кошелька и применить их к текущей ветке, в которой вы находитесь, у вас есть два варианта:

  1. git stash apply STASH-NAME применяет изменения и оставляет копию в тайнике
  2. git stash pop STASH-NAME применяет изменения и удаляет файлы из тайника

При внесении изменений могут возникнуть конфликты. Вы можете разрешить конфликты, подобные слиянию ( подробнее см. Git merge ).

Удалить отмеченные изменения

Если вы хотите удалить спрятанные изменения без их применения, запустите команду:

git stash drop STASH-NAME 

Чтобы очистить весь тайник, выполните команду:

git stash clear 

Дополнительная информация: