Как избежать слияния коммитов из git pull при нажатии на remote
У меня есть репозиторий и некоторые локальные изменения для фиксации. Перед совершением я вытащил изменения на свой локальный, используя Egit в Eclipse.
Он создает фиксацию слияния, и я отправляю свою фиксацию над ней.
теперь, когда я пытаюсь нажать на origin, он показывает, что он будет толкать мою фиксацию, а также фиксацию слияния. Но в идеале фиксация слияния не должна быть частью удаленного репозитория.
Как избежать этого?
4 ответов
используйте опцию rebase всякий раз, когда вы вытаскиваете из удаленного репозитория. Пожалуйста, выполните следующие действия,
- Commit ваши изменения-это создаст новую фиксацию в вашем локальном.
- теперь
git pull --rebase <remote-name> <branch-name>
. - в основном rebase вынимают ваши коммиты, которые вы совершили на текущей головке ветви в качестве патча. Затем он применит все удаленные коммиты поверх головы, а затем применит ваши коммиты поверх нее.
- поэтому наилучшей практикой является фиксация изменений затем вытяните удаленные коммиты, используя опцию rebase.
когда у вас есть незафиксированные изменения, вы можете сделать,
git stash
git pull --rebase <remote> <branch>
git stash pop
обычная стратегия состоит в том, чтобы работать на ветке. Когда удаленный мастер изменяется, потяните изменения в master и вместо слияния,rebase филиала.
посмотреть Git Rebase в компании Atlassian.
Вы можете запустить
git config --global branch.autosetuprebase always
чтобы сделать git pull --rebase
поведение по умолчанию для git pull.