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

StackOverflow https://stackoverflow.com/questions/89487

  •  01-07-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

Как уже упоминалось, если вам нужен «запас для каждой ветки», вам действительно нужна новая ветка, ответвленная от существующей ветки.

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

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

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

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

Другие советы

Начиная с 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

Ссылка

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

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 — это самый простой способ переместить набор изменений в другую ветку.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top