Слился в ветку и потерял коммит при следующем нажатии - PullRequest
0 голосов
/ 19 октября 2018

Утро ТАК,

Моя проблема заключается в следующем:

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

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

При запуске git log я получаю следующее:

* f9f9137 (HEAD -> master, origin/master, origin/layout, origin/develop, develop) Version 3.1.73
*   f81b163 Merge branch 'master' into develop
|\  
| *   6c73f7b Merge branch 'feature/TimesheetReminder' into 'master'
| |\  
* | | 1a05d2f Revert "Timesheet reminder version 1"
| |/  
|/|   
* | 83d082a Timesheet reminder version 3
* | d22ed67 Timesheet reminder version 1
* |   4e71765 Merge branch 'feature/checkboxes' into 'develop'
|\ \  
| |/  
|/|   
| * 98c090b bugs fixed
| * bb3238c open tabs corrected
| * 4e5feb4 checkboxes + buttons added to homepage
|/  
* cf357ee Edited browser icon
* 84a9050 Version 3.1.72
* 5adf3c0 Modified resources and added logo with the GhostForce name
* ec2a99a Version 3.1.71
* 14b8626 Modified assets and changed KB link.

d22ed67 и 83d082a были 2 неправильными коммитами, я вернулся к d22ed67, так как у него было только одно небольшое дополнение, которое можно было сохранить, затем пользователь создал новую ветку и отправилзапрос на извлечение: 6c73f7b и я приступил к слиянию этого с моим мастером, затем я запустил git checkout develop && git merge master.

Теперь, если я иду в мастер, я не вижу дополнений из 1a05d2f, но еслиЯ просматриваюВ хранилище с этим идентификатором я вижу все правильные добавляемые файлы.

В чем здесь проблема, что я сделал не так?

1 Ответ

0 голосов
/ 19 октября 2018

Вы упомянули d22ed67 and 83d082a were the 2 wrong commits

Поскольку у вас очень мало коммитов выше этих коммитов, лучший способ (если проблема случится со мной, я бы предпочел это!)
*Требуется 1007 *

git log --oneline -20 
git reset --hard 4e71765
git cherry-pick 1a05d2f
git cherry-pick 6c73f7b
git cherry-pick f81b163
git cherry-pick f9f9137
git log --oneline -20 

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

Кроме того, если вы получаете какие-либо конфликты во время вишневого выбора -

  • Решите конфликты (могут быть способы решитьконфликты)
  • затем добавьте измененные файлы (даже если они уже добавлены)
  • сделайте коммит
  • , затем поставьте git cherry-pick --continue
  • После этого сохранитеВишня выбирает все остальные коммиты.

Примечание :
1. Пожалуйста, не используйте merge команду.Используйте rebase
2. Пожалуйста, не используйте команду pull.Используйте fetch, а затем rebase

Счастливое приветствие !!

...