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

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

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

Ответ 1

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

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

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

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

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

Ответ 2

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

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

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

Ответ 3

Как и в случае с Git 1.6, вы можете применить привязки к ветвям, используя

git stash branch name_of_new_branch

Git создаст для вас новую ветку и проверит ее! Для получения дополнительной информации см.

  • Git книга

  • info git-stash и поиск по опции = branch.

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

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

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

git stash list

Ссылка

Ответ 4

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

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