Из ветви A я создал новую локальную ветку B.
a--a--a (A)
\
b (B, origin/B, meaning this is the initial commit pushed to the remote repo)
Теперь, если я сделаю git push -f origin B
, мой код пойдет только в ветку B
или также в ветку A
.
Одна ветвь B, но эта ветвь B будет включать в себя фиксацию ветки A.
Это потому, что когда вы сделали:
git checkout B
git pull --rebase origin A
Вы вышли из
a--a--a--a--a--a (A)
\
b--B--B--B--B--B (local work B)
^
(origin/B)
Кому:
(A)
v
a--a--a--a--a--a--b'--B'--B'--B'--B'--B' (new rebased B work, on top of A)
\
b
(still origin/B)
Вот почему вы видите:
Your branch and 'origin/B' have diverged,
and have 7 and 1 different commits each, respectively.
В вашем случае, если git status
покажет, что вы работаете с B, вы можете сделать
git push --force
Затем вы получите:
a--a--a--a--a--a--b'--B'--B'--B'--B'--B' (B, origin/B)
Ваша ветка B теперь включает коммиты от A, но ветка A остается неизменной.