2015-08-26 1 views
0

Итак, когда я git stash, он упакует мои изменения со времени последнего фиксации в список, однако это их способ, который мне не нужно совершать, но все равно и сохранить незафиксированные изменения, или их любая другая команда git для этого?git stash, но сохраните что-то в тайнике вместо возврата к последнему совершенному изменению.

+0

Непонятно, что вы хотите сделать. 'stash' [принимает грязное состояние вашего рабочего каталога, то есть ваши измененные отслеживаемые файлы и поэтапные изменения), и сохраняет его в стеке незавершенных изменений, которые вы можете повторно применить в любое время.] (https: // git-scm .com/book/ru/v1/Git-Tools-Stashing) –

+1

Не забывайте, что вы можете назвать свой кошелек, чтобы легче получить его позже, с помощью 'git stash save 'thenameyouwant". Затем вы можете перечислить все ваши штампы с помощью 'git stash list' (он отобразит имя, если вы его дали) .. тогда вы можете« git stash apply »использовать stash, который вы хотите – arnaudbey

ответ

2

Вы с одной командой вы не можете. Но вы можете занести изменения, а затем применить их обратно, удерживая их в тайнике. Для получения дополнительной информации см. stash docs.

git stash 
git stash apply 

Если вы хотите, вы можете создать псевдоним в своем файле .gitconfig. Вы можете проверить, как создать псевдоним here.

[alias] 
stash-save = !git stash && git stash apply 
+0

, в псевдониме можно передать необязательный флаг, который должен также делать «список закладок»? –

+0

просто введите другую команду: stash-save =! Git stash && git stash apply && git stash list –

+0

, если вы не хотите, вы должны создать скрипт, но затем создать сценарий stash-save.sh и поместите его на свой путь. –

0

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

Таким образом, процедура будет:

# do some work 
# realize you want to go in another direction but keep your changes somewhere 
git checkout -b topicName 
git add . 
git commit -m "useful description" 
git checkout - # go back to previous branch 

Затем, когда вы хотите, вы можете объединить или вишневые выбрать «спрятанные» Прочь изменения в этой теме ответвлении на ветку вы работаете ,

git merge topicName 
+0

Как правило, причина, по которой требуется, чтобы diff зависал как кошелек, а не как фиксация, заключается в том, что требуется временно интегрировать или реализовать функцию, ожидая члена команды, чтобы завершить параллельную работу. Вы хотите, чтобы это было как кошелек, потому что вы можете переключать ветви здесь и там; вы не хотите его на ветке, потому что уже работаете над веткой. И вы не хотите изменений в истории, потому что они эфемерны и предназначены для выброса. –