Я повернув місцеву гілку, яка вже була натиснута.
Git радить, що моя філія та віддалений відділилися і що:
"і мають 109 та 73 різних передач відповідно"
Чи вирішить це натискання на мою гілку - тобто це варто очікувати після перезавантаження?
Я повернув місцеву гілку, яка вже була натиснута.
Git радить, що моя філія та віддалений відділилися і що:
"і мають 109 та 73 різних передач відповідно"
Чи вирішить це натискання на мою гілку - тобто це варто очікувати після перезавантаження?
Відповіді:
Коли ви перезавантажуєте філію, вам потрібно переписати комісії для будь-яких комісій, що знаходяться вище комітетів у гілці, на яку ви перезаписуєте. Це пов’язано з тим, що однією з властивостей комітету є його батько (або батьки). Під час повторної бази даних ви змінюєте батьківську найстарішу локальну комісію у своїй гілці - і, таким чином, змінюєте хеші фіксації всіх ваших локальних комісій, оскільки це змінює бульбашки вгору через коміти.
Оскільки ви вже натиснули гілку, вам слід було б об'єднатись у вихідну гілку, а не відмовлятися від неї. Можна "примусити" натиснути свою нову гілку (використовуючи -fпрапор), але звичайний поштовх не працюватиме, оскільки цілісність історії гілок буде порушена. Якщо ви співпрацюєте з іншими людьми на цій гілці, натискання - це погана ідея, оскільки це призведе до того, що інші співробітники дуже заплутаються, коли їх історія раптом не збігається.
TL; DR - Якщо ви не співпрацюєте, натисніть гілку за допомогою push -f. Якщо ви є, відновіть гілку до попереднього стану та замість неї з’єднайте джерельну гілку.
Всі ваші коммітов змінилися ідентифікатори, так що витоку не дійсно розходяться.
Щоб вирішити вашу проблему, вам потрібно перезаписати віддалену гілку:
git push -f origin experiment
http://git-scm.com/book/ch3-6.html
Пояснення:
Подивіться, як на цьому зображенні C3 ставиться не як C3 після перезавантаження, а як C3 '. Це тому, що це не зовсім C3, але він має всі свої зміни коду.

На цьому іншому зображенні ви отримуєте картину того, що бачить ребазація, коли задіяний пульт, і чому відбувається переадресація.

У будь-якому випадку, після того, як ви зробите примусовий натиск, він скаже вам, що він зробив (оновлення сили), ви повинні бути в порядку до цього моменту.
Перевірте посилання вгорі та знайдіть "git push --force". Ви побачите більш детальне пояснення.
Я мав успіх із розбігом баз даних для того, щоб натиснути, зробивши наступне:
git checkout mybranch
git pull
git push origin mybranch
Тяга вирішила розбіжність.
ДО ПЕРЕД тяг
Your branch and 'origin/mybranch' have diverged, and have 2 and 1 different commit(s) each, respectively.
PULL вихід
Злиття здійснюється рекурсивно. mypath / myfile.py | 12 +++++++++++ - 1 файл змінено, 11 вставок (+), 1 видалення (-)
ПІСЛЯ потягніть
Ваша філія випереджає "походження / мій галузь" на 3 коміти.
ПІСЛЯ ПУШКУ
mybranch 3 напередодні гілки, все ще є відкрите запит на злиття запиту на додавання до історії фіксації Об'єднання гілки mybranch віддаленого в mybranch
Я припускаю, що це, мабуть, те, що робить натиск сили, і я не підтвердив це.
Як уже говорили інші, уникайте перезавантаження, якщо у вас вже є запит на відкриту тягу. Я наводжу цей приклад як щось, що працювало на мене.
Це можна виправити без силового натискання, повернувши цільову гілку у вашу поточну локальну гілку, переключившись на вашу цільову гілку, а потім перезапустивши локальну гілку в ціль. Це не розходиться, оскільки комісії, які можуть бути відсутні, додані і більше не потрібно їх створювати. Приклад для більш легкого пояснення:
Якщо ви НЕ оновили свою галузь розробки, тоді "git checkout development" && "git rebase function / doing_stuff" буде працювати правильно, оскільки жодних комісій не додано з моменту оформлення замовлення. Однак, якщо ви перевірили розробку та зняли нову команду, ви побачите це розбіжність, якщо ви спробуєте перезавантажитись із-за того, що побачите нове зобов’язання. Легке виправлення без силових натискань (як правило, не є хорошою ідеєю в командному середовищі):
Поновлення з кроку 2 вносить відсутні функції для виконання у функцію / doing_stuff, тому коли крок 4 приходить разом із цим, він є актуальним і не потрібно створювати нову комісію для зміни.
Це рішення, яке я знаю, працює, тому що я просто зіткнувся з цим і зробив вищезазначені кроки, щоб успішно підштовхнути розвиток без примусу. Я працюю в команді з понад 50 розробників, тому забороняється змушувати натискати що-небудь, крім моїх власних тестових гілок, тому мені довелося знайти рішення.