Цілком ймовірно, що хтось інший (наприклад, ваш колега) додав коміти origin/master
, які відсутні у вашій локальній master
гілці, і ви намагаєтесь перенести деякі коміти з вашої локальної гілки на сервер. У 99% випадків, припускаючи, що ви не хочете стирати їх роботуorigin
, у вас є два варіанти:
2) Об’єднайте їх зміни у свою локальну гілку, а потім натисніть об’єднаний результат.
git checkout master
git pull # resolve conflicts here
git push
(Зверніть увагу, що в даному випадку git pull
це, по суті, лише a git fetch
та a git merge
.)
1) Перебазуйте місцеве відділення, щоб було схоже, що ваш колега спочатку зробив свої комісії, а потім ви зробили свої комітети. Це зберігає історію комітів приємною та лінійною - і дозволяє уникнути "коміту злиття". Однак, якщо у вас виникають конфлікти зі змінами колеги, можливо, вам доведеться вирішити ці конфлікти для кожного з ваших комітів (а не лише один раз) у гіршому випадку. По суті, це приємніше для всіх інших, але більше зусиль для вас.
git pull --rebase # resolve conflicts here
git push
(Зверніть увагу, що git pull --rebase
це, по суті, a git fetch
та a git rebase origin/master
.)