Как обновить разветвленное репо с непринятым запросом на вытягивание некоторых коммитов

Я следовал следующему руководству https://medium.com/@topspinj/how-to-git-rebase-into-a-forked-repo-c9f05e821c8a

это мое фактическое репо:

Статус моего фактического репо выглядит так

Как видите, в моем запросе на вытягивание есть два коммита и один коммит в исходном репозитории.

Я хочу обновить свой разветвленный репозиторий, чтобы внести изменения, внесенные в его последний коммит.

перед запуском команды git fetch, чтобы внести изменения, мой статус git скажите мне:

$ git status
En la rama 13.0
Tu rama está actualizada con 'origin/13.0'.

Затем я сделал git remote add upstream

git remote add upstream https://github.com/original-repo/goes-here.git

и все было Ок.

Затем я сделал git fetch вверх по течению, и я получил следующий результат

remote: Enumerating objects: 2556, done.
remote: Counting objects: 100% (2556/2556), done.
remote: Total 3297 (delta 2556), reused 2556 (delta 2556), pack-reused 741
Recibiendo objetos: 100% (3297/3297), 2.05 MiB | 4.76 MiB/s, listo.
Resolviendo deltas: 100% (2822/2822), completado con 1802 objetos locales.
Desde https://github.com/odoo/odoo
 * [nueva rama]              10.0              -> upstream/10.0
 * [nueva rama]              11.0              -> upstream/11.0
 * [nueva rama]              12.0              -> upstream/12.0
 * [nueva rama]              13.0              -> upstream/13.0
 * [nueva rama]              5.0               -> upstream/5.0
 * [nueva rama]              6.0               -> upstream/6.0
 * [nueva rama]              6.1               -> upstream/6.1
 * [nueva rama]              7.0               -> upstream/7.0
 * [nueva rama]              8.0               -> upstream/8.0
 * [nueva rama]              9.0               -> upstream/9.0
 * [nueva rama]              master            -> upstream/master
 * [nueva rama]              saas-1            -> upstream/saas-1
 * [nueva rama]              saas-10           -> upstream/saas-10
 * [nueva rama]              saas-11           -> upstream/saas-11
 * [nueva rama]              saas-11.1         -> upstream/saas-11.1
 * [nueva rama]              saas-11.2         -> upstream/saas-11.2
 * [nueva rama]              saas-11.3         -> upstream/saas-11.3
 * [nueva rama]              saas-11.4         -> upstream/saas-11.4
 * [nueva rama]              saas-11.5         -> upstream/saas-11.5
 * [nueva rama]              saas-12           -> upstream/saas-12
 * [nueva rama]              saas-12.1         -> upstream/saas-12.1
 * [nueva rama]              saas-12.2         -> upstream/saas-12.2
 * [nueva rama]              saas-12.3         -> upstream/saas-12.3
 * [nueva rama]              saas-12.4         -> upstream/saas-12.4
 * [nueva rama]              saas-12.5         -> upstream/saas-12.5
 * [nueva rama]              saas-13           -> upstream/saas-13
 * [nueva rama]              saas-13.1         -> upstream/saas-13.1
 * [nueva rama]              saas-13.2         -> upstream/saas-13.2
 * [nueva rama]              saas-13.3         -> upstream/saas-13.3
 * [nueva rama]              saas-14           -> upstream/saas-14
 * [nueva rama]              saas-15           -> upstream/saas-15
 * [nueva rama]              saas-16           -> upstream/saas-16
 * [nueva rama]              saas-17           -> upstream/saas-17
 * [nueva rama]              saas-18           -> upstream/saas-18
 * [nueva rama]              saas-2            -> upstream/saas-2
 * [nueva rama]              saas-3            -> upstream/saas-3
 * [nueva rama]              saas-4            -> upstream/saas-4
 * [nueva rama]              saas-5            -> upstream/saas-5
 * [nueva rama]              saas-6            -> upstream/saas-6
 * [nueva rama]              saas-7            -> upstream/saas-7
 * [nueva rama]              saas-8            -> upstream/saas-8
 * [nueva rama]              saas-9            -> upstream/saas-9
 * [nueva rama]              staging.10.0      -> upstream/staging.10.0
 * [nueva rama]              staging.11.0      -> upstream/staging.11.0
 * [nueva rama]              staging.12.0      -> upstream/staging.12.0
 * [nueva rama]              staging.13.0      -> upstream/staging.13.0
 * [nueva rama]              staging.master    -> upstream/staging.master
 * [nueva rama]              staging.saas-11.3 -> upstream/staging.saas-11.3
 * [nueva rama]              staging.saas-12.1 -> upstream/staging.saas-12.1
 * [nueva rama]              staging.saas-12.2 -> upstream/staging.saas-12.2
 * [nueva rama]              staging.saas-12.3 -> upstream/staging.saas-12.3
 * [nueva rama]              staging.saas-12.4 -> upstream/staging.saas-12.4
 * [nueva rama]              staging.saas-12.5 -> upstream/staging.saas-12.5
 * [nueva rama]              staging.saas-13.1 -> upstream/staging.saas-13.1
 * [nueva rama]              staging.saas-13.2 -> upstream/staging.saas-13.2
 * [nueva rama]              staging.saas-13.3 -> upstream/staging.saas-13.3
 * [nueva rama]              tmp.10.0          -> upstream/tmp.10.0
 * [nueva rama]              tmp.11.0          -> upstream/tmp.11.0
 * [nueva rama]              tmp.12.0          -> upstream/tmp.12.0
 * [nueva rama]              tmp.13.0          -> upstream/tmp.13.0
 * [nueva rama]              tmp.master        -> upstream/tmp.master
 * [nueva rama]              tmp.saas-11.3     -> upstream/tmp.saas-11.3
 * [nueva rama]              tmp.saas-12.1     -> upstream/tmp.saas-12.1
 * [nueva rama]              tmp.saas-12.2     -> upstream/tmp.saas-12.2
 * [nueva rama]              tmp.saas-12.3     -> upstream/tmp.saas-12.3
 * [nueva rama]              tmp.saas-12.4     -> upstream/tmp.saas-12.4
 * [nueva rama]              tmp.saas-12.5     -> upstream/tmp.saas-12.5
 * [nueva rama]              tmp.saas-13.1     -> upstream/tmp.saas-13.1
 * [nueva rama]              tmp.saas-13.2     -> upstream/tmp.saas-13.2
 * [nueva rama]              tmp.saas-13.3     -> upstream/tmp.saas-13.3

Ну, это не имеет значения, все эти изменения были изменениями, которые они сделали в своем последнем коммите.

git статус еще раз, чтобы проверить, что мое репо обновлено следующим выводом

$ git status
En la rama 13.0
Tu rama está actualizada con 'origin/13.0'.

git ветка, чтобы проверить, что я в правильной ветке.

$ git branch 
* 13.0

Хорошо, я в правильной ветке

Теперь самое сложное.

$ git rebase upstream/13.0
En primer lugar, rebobinando HEAD para después reproducir tus cambios encima de ésta...
Aplicando: Modificando la moneda oficial de Ecuador de sucre a dolar.
Aplicando: introducing Ecuadorian states

Оба Aplicando — это имена коммитов, которые я сделал для запроса на вытягивание, которые находятся в моем разветвленном репо.

Теперь, если я использую статус git, я получаю следующий результат

$ git status
En la rama 13.0
Tu rama y 'origin/13.0' han divergido,
y tienen 3 y 2 commits diferentes cada una respectivamente.
  (usa "git pull" para fusionar la rama remota en la tuya)

nada para hacer commit, el árbol de trabajo esta limpio

Я не понимаю сообщения о расхождении. Что git пытается сказать мне этим расхождением?? Это не должно означать, что рама 13.0 и origin/13.0 являются одной и той же веткой??

Если я запускаю git log, появляется следующий результат:

git log
commit 2aabc340fce82011c864b1ca0b5040add49d6ecd (HEAD -> 13.0)
Author: Osiris Roman <[email protected]>
Date:   Fri May 1 14:08:45 2020 -0500

    introducing Ecuadorian states

commit b1d38ab75af5203369f2b8917719623ff2db3e6c
Author: Osiris Roman <[email protected]>
Date:   Thu Apr 30 23:47:39 2020 -0500

    Modificando la moneda oficial de Ecuador de sucre a dolar.
    La moneda oficial del Ecuador cambió de sucre a dolar en el año 2000.

commit a164b01c1dd9d8612f89b36ad11002d67fca536f (upstream/13.0)
Author: Odoo Translation Bot <[email protected]>
Date:   Sun May 3 01:19:46 2020 +0200

    [I18N] Update translation terms from Transifex

commit cc47c76ee70ea684ab8352c47d1d06e7d8282b1b (upstream/tmp.13.0)
Author: std-odoo <[email protected]>
Date:   Wed Apr 22 09:15:44 2020 +0000

    [FIX] mass_mailing: escape the mailing list name

    Task-2241443

    closes odoo/odoo#50488

    X-original-commit: afa2153a24d495b863cd85febca3f96551d8cd56
    Signed-off-by: Thibault Delavallee (tde) <[email protected]>
    .
    .
    .
    .
    .

Первые два коммита — это коммиты из запроса на вытягивание, которые должны быть в моем разветвленном репозитории на github.

Третий — тот, который я извлек из исходного репозитория и хочу загрузить в свою разветвленную фиксацию.

Насколько я понимаю, Git предлагает мне заставить git pull присоединиться к удаленному репо с моим локальным.

но если я сделаю git pull, то при запуске git status появятся четыре неотправленных коммита, и я не понимаю, почему и откуда они берутся??

Кто-нибудь знает, как решить эту проблему??


person Osiris    schedule 04.05.2020    source источник


Ответы (1)


Я решил проблему, сделав

git push origin 13.0 --force

Команда rebase изменяет историю репозитория. Коммиты изменят хэш и потеряют узлы предков. Затем необходимо сделать push --force для замены истории сервера на вашу текущую.

Толчковая сила опасна только тогда, когда есть более одного человека с одной и той же кассой отделения. Кроме этого, должно быть в порядке.

person Osiris    schedule 04.05.2020