Добавленные изменения пропали после случайного "git push" - PullRequest
0 голосов
/ 18 мая 2018

Относительно плохо знаком с использованием GitHub и столкнулся с досадной проблемой.

Я создал новую ветку, добавил свои изменения и зафиксировал их.Затем я использовал git push вместо git push origin master и получил ошибку:

fatal: The current branch branch_name has no upstream branch.

Теперь, когда я печатаю git status, мои изменения исчезают, и когда я пытаюсь git push origin master это говорит мне, что все в курсе.Я проверил мастер и мою текущую рабочую ветку, и они все еще разные.Я не знаю, как вернуть мои изменения, чтобы я мог добавить ветку в GitHub.

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

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

Чтобы увидеть, сохраняются ли ваши изменения, вы должны использовать что-то вродеgit show (чтобы увидеть изменения текущего коммита относительно предыдущего коммита) или git log -p (чтобы увидеть текущую историю изменений в текущей истории).

Так что да, ваш первый толчок не удался, но это толькоозначает, что вам все еще нужно выполнить правильную команду push.Полное сообщение об ошибке из-за сбойной команды будет выглядеть следующим образом:

fatal: The current branch foo has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin <branch-name>

, где <branch-name> - имя вашей ветви.

Причина, по которой git push origin master говорит, что все обновлено, заключается в том, что выНе нужно вносить изменения в master.Если вы хотите добавить изменения в master, а затем отправить их на пульт на master, то самым простым способом будет объединить их с master локально, и тогда git push origin master будет работать.

Но если вы просто хотите, чтобы пульт ДУ узнал о вашей ветке (хотя он по-прежнему отделен от master), тогда вы можете использовать git push --set-upstream origin <branch-name>

0 голосов
/ 18 мая 2018

Вам необходимо recover использовать ваш последний коммит,

git reset --soft HEAD~1

Если вы сделали более одного коммита, замените 1 на # коммитов.

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