Git diff против тайника - PullRequest
       20

Git diff против тайника

1170 голосов
/ 06 октября 2011

Как я могу увидеть, какие изменения будут сделаны без сохранения в текущем рабочем дереве?Я хотел бы знать, какие изменения будут внесены, прежде чем их применять!

Ответы [ 12 ]

1 голос
/ 20 октября 2015

Объединяя то, что я узнал в этой теме и в этой , когда я хочу увидеть «что находится в тайнике», я сначала запускаю:

git stash show stash@{0}

Это покажеткакие файлы были изменены.Затем, чтобы получить хороший визуальный diff в difftool, я делаю:

git difftool --dir-diff stash@{0} stash@{0}^

Это покажет все различия сразу данного тайника относительно его родителя.

Вы можете настроитьинструмент сравнения в ~/.gitconfig, например, с Meld :

...
[diff]
    tool = meld
0 голосов
/ 08 сентября 2018

Она в списке заначки

git stash list 
stash@{0}: WIP on feature/blabla: 830335224fa Name Commit
stash@{1}: WIP on feature/blabla2: 830335224fa Name Commit 2

Получите номер тайника и сделайте:

Вы можете сделать:

 git stash show -p stash@{1}

Но если вам нужен diff (это другое, чтобы показать тайник, поэтому я пишу этот ответ. Diff рассмотрите текущий код в вашей ветке, а show просто покажите, что вы будете применять )

Вы можете использовать:

git diff stash@{0}

или

git diff stash@{0} <branch name>

Еще одна интересная вещь:

git stash apply
git stash apply stash@{10}

Примените тайник, не удаляя его из списка, вы можете git checkout . удалить эти изменения или, если вы счастливы git stash drop stash@{10}, удалить тайник из списка.

Здесь я никогда не рекомендую использовать git stash pop и использовать комбинацию git stash apply и git stash drop Если вы примените тайник в неправильной ветке ... ну, иногда трудно восстановить ваш код.

...