Я встановив віддалений не голий "основний" репо і клонував його до свого комп'ютера. Я вніс декілька локальних змін, оновив своє місцеве сховище та перемістив зміни назад до віддаленого репорту. До цього моменту все було добре.
Тепер мені довелося щось змінити у віддаленому репо. Потім я щось змінив у своєму місцевому репо. Я зрозумів, що зміни на віддалений репо не потрібні. Тож я спробував перейти git push
з місцевого репо до мого віддаленого репо, але у мене виникла помилка на зразок:
Щоб не втратити історію, відхилені нешвидкісні оновлення назад Об’єднайте віддалені зміни, перш ніж натиснути знову.
git push --help
Деталі див. У розділі "Примітка про швидку перемотку" .
Я думав, що, ймовірно, a
git push --force
змусить мою локальну копію натиснути зміни на віддалений і зробити їх такими ж. Це примушує оновлення , але коли я повертаюся до віддаленого репо і приймаю зобов’язання, я помічаю, що файли містять застарілі зміни (ті, які раніше мали головне віддалене репо).
Як я вже згадував у коментарях до однієї з відповідей :
[Я] спробував примусити, але, повертаючись на головний сервер, щоб зберегти зміни, я отримую застарілі постановки. Таким чином, коли я здійснюю сховища, то схожі. І коли я знову намагаюся використовувати git push, я отримую ту ж помилку.
Як я можу виправити це питання?
git push --force
це дійсно ще один вірний спосіб примусити натиснути, і він буде натискати гілки так само, як git push origin master --force
і за замовчуванням Git push.default config settings
, хоча які гілки спеціально натиснуті відрізняються між версіями Git до 2.0 проти 2.0.
git push --force
працює чудово в ці дні, FWIW ...
git push --force-with-lease
працює навіть краще :), він відмовиться оновлювати філію, якщо це не такий стан, якого ви очікуєте. (див. developer.atlassian.com/blog/2015/04/force-with-lease )
git push -force
більш ретельно .