Как я могу отправить свои коммиты обратно с изменениями вверх по течению? - PullRequest
0 голосов
/ 17 марта 2011

Это последовательность событий:

  1. принятие изменений

  2. git pull

  3. разрешать конфликты (что приводит к тому, что все файлы изменяют статус на измененные снова)

  4. фиксировать, исправлять все файлы (поэтому у меня будет 1 финальный коммит)

  5. git push (или upload), я получаю в ответ следующее сообщение:

    Невозможно выгрузить изменения, ваша ветка находится за origin / master.Пожалуйста, измените изменения перед загрузкой, чтобы избежать конфликтов слияния: git rebase origin / master

Если я сделаю git rebase origin/master, то потом это будет выглядеть, когда я git branch яни в одной ветке вообще.

Итак, после перебазирования все файлы снова модифицируются, поэтому я фиксирую снова.Затем я делаю git checkout master, а затем весь процесс начинается снова с 1.

Так раздражает.Любая идея, как нажать этот код?

Ответы [ 2 ]

2 голосов
/ 17 марта 2011

Когда вы исправили свои конфликты, вы правильно git add файлы, которые вы только что исправили, но тогда вам действительно нужны просто git commit, , а не git commit --amend.В этот момент вам нужно иметь коммит слияния, который представляет состояние дерева как с вашими изменениями с master, так и с удаленными изменениями с origin/master.В противном случае вы просто вносите изменения в коммит, в котором вы были ранее, и если вы попытаетесь передать его на удаленный компьютер, он не сможет увидеть из графика коммитов, что ваш коммит содержит историю, которая уже существует.(Другими словами, ваш коммит «перемотал бы вперед» удаленную ветвь.)

Если вы действительно хотите не делать коммитов слияния, вы можете сделать git pull --rebase вместо git pull.

0 голосов
/ 17 марта 2011
  • Зафиксируйте ваши изменения в другой ветке (topic)
  • Извлеките из центрального хранилища
  • Rebase, что будет включать исправление ваших конфликтов (rebase topic на master)
  • Сбросить master туда, где topic есть
  • Push master

Ваши изменения могут быть применены только после того, что уже было нажато, поэтому вы должны перенести ваши изменения на это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...