Git "уже в курсе" после возврата, но это не так - PullRequest
0 голосов
/ 06 апреля 2020

Мой друг и я работаем над одной веткой. Я работал на моей стороне проекта, зафиксировал и извлек обновленную ветку.

Обновленная версия не компилировалась, но мне пришлось продолжить работу на моей стороне, поэтому я отменил изменения:

git revert -m 1 8fc8e4ddd2823e789b09af633115eae5f4997e5c 

Я продолжил работать, зафиксировал свои изменения, и когда я пытаюсь вытащить его, он говорит Already up-to-date.

Я не думаю, что мне нужно что-либо сбрасывать, я хочу сохранить все файлы, с которыми работал и получите последнюю ветку от github.

1 Ответ

1 голос
/ 06 апреля 2020

Вы использовали git revert, возможно, вы хотели использовать git reset.


Ваша история должна выглядеть следующим образом:

# from branch my/current/branch :
$ git log --oneline --graph
* eacf304  more of my work
* eacf302  some of my work
* eacf301  reverted faulty commit
* eacf300  my friend's version
* eacf299  last working version
...

Вот способ переписать историю вашей локальной ветки, чтобы «забыть» о eacf300 и eacf301:

$ git rebase --onto eacf299 eacf301 my/current/branch

Это воспроизведет все коммиты, начиная с eacf301 (не в комплекте) поверх eacf299.

Ваша история теперь будет выглядеть так:

$ git log --oneline --graph my/current/branch origin/my/current/branch
* eacf304  (my/current/branch) more of my work
* eacf302  some of my work
| * eacf300  (origin/my/current/branch) my friend's version
|/
* eacf299  last working version
...

Ваш следующий git pull объединит работу вашего друга с вашей веткой.

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