Почему git stash не является уникальным для каждой ветви?



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



Я иногда применял неправильный тайник в неправильной ветке, что заставило меня задуматься об этом вопросе.

635   4  

4 ответов:

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

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

F. ex., время работая над веткой функций, я часто замечаю незначительные ошибки или косметические примеси в коде, которые не имеют отношения к этой ветви. Ну, я просто исправлю их прямо сейчас. Когда приходит время совершить, я выборочно совершаю соответствующие изменения, но не исправления и косметику. Вместо этого я прячу их, что позволяет мне переключиться на мою ветку minor-fixes-on-stable, где я могу применить тайник и зафиксировать каждое незначительное исправление отдельно. (В зависимости от изменений, о которых идет речь, я также буду прятать некоторые из них еще опять же, чтобы переключиться на другую ветку, где я применяю те.)

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

Если бы тайник не был глобальным, этот тип рабочего процесса было бы гораздо сложнее сделать.

начиная с Git 1.6, теперь вы можете применять тайники к ветвям с помощью

git stash branch name_of_new_branch

Git создаст новую ветку для вас,и проверить его! Дополнительные сведения см. В разделе

Я предполагаю, что вы можете перемещать тайники с помощью

git stash branch <branch | new_branch> [<stash>]

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

git stash list

ссылка

если вы хотите, чтобы "тайник", который работает с веткой, сделал что-то вроде этого, чтобы сохранить ваши изменения на новой ветке с вашей текущей ветки.

git checkout -b new_stash
git commit -a -m "stashed changes"

чтобы отменить заначку

git reset HEAD^
git branch -d new_stash

git stash особенно полезен, потому что вы можете вытащить изменения в грязное дерево, т. е. если у вас есть выдающиеся изменения и вы хотите сделать

git pull

и вы не можете, вы можете спрятать свои изменения, потянуть, а затем применить тайник

git stash
git pull
git stash apply
git stash clear

надеюсь, что это помогло!

git-stash наиболее полезен для меня, чтобы переместить еще не зарегистрированные изменения в другую ветку, чем та, которая в настоящее время проверена.

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

Comments

    Ничего не найдено.