Как найти ветку git, к которой я случайно присоединился после переключения на master - PullRequest
0 голосов
/ 07 марта 2012

Я работал над веткой git, кроме master. Я не помню его имени. Когда я закончил, я сделал

git add .
git commit -am "foo"

Я не выдвигал коммиты.

Я переключился на мастера git co master. Я не знаю, как вернуться в свою ветку и зафиксировать изменения ...

Ответы [ 4 ]

2 голосов
/ 08 марта 2012

Если вы запустите git log -g, вы должны увидеть что-то вроде:

commit <commit-id>
Reflog: HEAD@{0} (My Name <me@somehwere>)
Reflog message: checkout: moving from forgot-this-branch to master

В нем будет указано название ветви, которую вы недавно удалили.

2 голосов
/ 07 марта 2012

Выполнение git branch перечислит все ваши местные филиалы. Тогда вы можете проверить нужную вам ветку:

git branch
git checkout branch-name

После того, как все правильно зафиксировано в ветке, вы можете объединить его с мастером:

# while on your feature branch
git commit -m "Finishing my feature"
git checkout master
git merge branch-name
git push origin master

Обратите внимание, что вы не выдвигаете из своей ветви функций , а скорее объединяете свою ветвь функций с master и затем нажимаете master. Ветви объектов обычно не отслеживают удаленный репозиторий, поэтому им некуда деться.

1 голос
/ 08 марта 2012

Вы можете использовать reflog, чтобы показать, где вы были:

git reflog show HEAD

Это даст историю HEAD и покажет что-то вроде:

9c4d528 HEAD@{0}: checkout: moving from tooling to master

вместе с более ранними изменениями, влияющими на ГОЛОВУ

0 голосов
/ 07 марта 2012

Используйте git branch, чтобы перечислить все ваши ветви. Надеюсь, это пробудит вашу память: -)

Ветвь обязательно должна появиться в этом списке, если только вы не использовали git branch -d (или git branch -D) для удаления ветки.

Затем используйте git checkout, чтобы переключиться обратно на эту ветку, как обычно.

<ч />

Вы подразумевали, что у вас могут быть некоторые незафиксированные изменения master, которые вы хотите зафиксировать в другой ветке. Если это так, git checkout не будет работать с грязным рабочим деревом. В этом случае используйте git stash save, чтобы сохранить изменения во временном стеке изменений, git checkout, чтобы переключить ветви, а затем git stash pop, чтобы избавиться от тайника и вернуть изменения в рабочее дерево. Тогда вы можете использовать git commit как обычно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...