Подивіться на графік фіксування (за допомогою gitk або подібної програми). Ви побачите коміти з запиту на витяг, і ви побачите власні коміти та злиття (якщо це не було злиття вперед). Вам просто потрібно знайти останні власні зобов’язання перед об'єднанням і скинути гілку на цю комісію.
(Якщо у вас є релог філії, вам слід ще простіше знайти фіксацію перед об'єднанням.)
(Редагуйте після додаткової інформації в коментарях :)
Гаразд, давайте подивимось на графік:
Я припускаю, що останньою (правою) вправою було ваше неправильне злиття за допомогою запиту на витяг , який об'єднав синю лінію, проглянуту тут. Вашим останнім хорошим зобов’язанням буде попереднє на чорній лінії, тут позначене червоним кольором:
Скиньте це зобов’язання, і вам слід добре.
Це означає, що у вашій місцевій робочій копії зробіть це (після того, як переконайтеся, що у вас немає більше непосланих матеріалів, наприклад, git stash):
git checkout master
git reset --hard 7a62674ba3df0853c63539175197a16122a739ef
gitk
Тепер підтвердьте, що ви дійсно до того, що я там позначився, і ви не побачите жодного із потягнутих речей у його родоводі.
git push -f origin master
(якщо ваш пульт дистанційного управління github названий origin
- інакше змініть ім'я).
Тепер все має виглядати правильно і на github. Ці досі зберігатимуться у вашому сховищі, але вони не будуть доступні жодною гілкою, тому не повинно бути шкоди там. (Звичайно, вони все ще будуть у сховищі RogerPaladin.)
(Можливо, для Github існує певний спосіб зробити те саме, але я не надто знайомий з Github та його системою управління запитами на тягу.)
Примітка що якщо хтось уже, можливо, потягнув вашого господаря з неправильним зобов’язанням, у них виникають ті ж проблеми, що у вас зараз, і вони не можуть реально віддати свій внесок. перед перезавантаженням на нову головну версію.
Якщо ймовірно, що це сталося, або ви просто хочете уникнути будь-яких проблем, використовуйте git revert
команду замістьgit reset
, щоб повернути зміни за допомогою нового , , щоб повернути його до більш старого. (Деякі люди думають, що ніколи не слід скидати з опублікованих гілок.) Дивіться інші відповіді на це питання про те, як це зробити.
На майбутнє:
Якщо ви хочете лише деякі з філій філії RogerPaladin, подумайте про використання cherry-pick
замість merge
. Або зв’яжіться з RogerPaladin, щоб перемістити їх до окремої гілки та надіслати новий запит на виклик.