Rebase push перейдет в ветку A или ветку B

обновление1:

прямо сейчас я сталкиваюсь с конфликтами, когда я делаю перебазирование. после того, как я изменю код. Не могли бы вы сообщить мне, какую команду выполнить, чтобы устранить конфликты. Предоставление статуса ниже

sports/code/file (branchB)
$ git pull --rebase origin branchA
From https://gitlab.sports.com
 * branch            branchA -> FETCH_HEAD
First, rewinding head to replay your work on top of it...
Applying: wip html fixes
Using index info to reconstruct a base tree...
M       sports/ajax.js
Falling back to patching base and 3-way merge...
Auto-merging sports/ajax.js
CONFLICT (content): Merge conflict in sports/ajax.js
error: Failed to merge in the changes.
Patch failed at 0001 wip html fixes
The copy of the patch that failed is found in: .git/rebase-apply/patch

When you have resolved this problem, run "git rebase --continue".
If you prefer to skip this patch, run "git rebase --skip" instead.
To check out the original branch and stop rebasing, run "git rebase --abort".



sports/code/file (branchB|REBASE 1/2)
$ git status
rebase in progress; onto 89898989892323
You are currently rebasing branch 'branchB' on '89898989892323'.
  (fix conflicts and then run "git rebase --continue")
  (use "git rebase --skip" to skip this patch)
  (use "git rebase --abort" to check out the original branch)

Unmerged paths:
  (use "git reset HEAD <file>..." to unstage)
  (use "git add <file>..." to mark resolution)

        both modified:   sports/ajax.js

no changes added to commit (use "git add" and/or "git commit -a")
  • Я пытаюсь научиться перебазировать.
  • У меня есть ветка A, созданная из ветки разработки,
  • из ветки A я создал новую локальную ветку B.
  • я сделал git rebase с помощью этой команды git pull --rebase origin A
  • нет, если я это сделаю git push -f origin B, мой код попадет только в ветку B или он также попадет в ветку A.
  • если я наберу статус git в ветке B, я увижу сообщение ниже.
  • я перешел по этой средней ссылке https://medium.com/@gitaumoses4/git-rebase-a-tool-for-excellent-git-workflow-3aaa1bba40a4
  • подскажите, как это исправить, чтобы в будущем я мог сделать это сам
$ git status
On branch B
Your branch and 'origin/B' have diverged,
and have 7 and 1 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)
nothing to commit, working directory clean

@dota2pro эй, не могли бы вы сказать мне, в какую ветку это будет отправлено?

user10972884 18.05.2019 03:36

Используйте инструмент пользовательского интерфейса git, который поможет вам лучше, я использую идею Intellij, в которой есть вкладка VCS.

dota2pro 18.05.2019 04:28
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
143
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

From the branch A I created a new local branch B.

a--a--a (A)
       \
        b (B, origin/B, meaning this is the initial commit pushed to the remote repo)

Now, if I do git push -f origin B, will my code go into branch B alone or will it go into branch A also.

Только ветвь 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 остается неизменной.

эй у меня есть еще один вопрос, вместо git push -f origin почему вы делаете git push --force, в моей команде, почему они упоминают происхождение. Я думал, что происхождение означает начальную ветвь, и она получит ветвь A :(

user10972884 18.05.2019 13:44

@zizi «происхождение» не означает «начальная ветвь»: это означает только куда для отправки (URL-адрес удаленного репо). Он используется по умолчанию, поэтому git push --force совпадает с git push -f origin.

VonC 18.05.2019 15:08

@zizi Если вы извлекли ветку B перед принудительной отправкой, какие означает, что отправка будет только ветвью B из-за политики отправки по умолчанию (stackoverflow.com/a/948397/6309)

VonC 18.05.2019 15:11

эй, я сделал семь разных коммитов в своей ветке B, можно ли объединить все мои коммиты в один, так как я сделал перебазирование, будет ли это проблемой, можете ли вы сказать мне, как этого добиться?

user10972884 20.05.2019 22:13

@zizi После перебазирования вы все еще можете объединить свои последние n коммитов: stackoverflow.com/a/5201642/6309

VonC 20.05.2019 23:13

эй, мне нужно выполнить эти две команды git reset --soft HEAD~3 && git commit - m 'combine all

user10972884 21.05.2019 15:17

@zizi Да, но только после перебазирования и только в том случае, если последние 3 коммита — это тот, который вы хотите объединить в один.

VonC 21.05.2019 15:22

спасибо, не могли бы вы помочь мне и с этим stackoverflow.com/questions/56226829/…

user10972884 21.05.2019 15:53

@zizi Конечно, я опубликовал свой ответ.

VonC 21.05.2019 18:08

эй, после выполнения этих команд git reset --soft HEAD~3 && git commit - m 'combine all можно ли объединить код из ветки B в ветку A с помощью команд git

user10972884 22.05.2019 21:06

@zizi Да, с git checkout A и git merge B

VonC 23.05.2019 06:32

@zizi В код сливаться из ветки A в ветку B? Для этого и создан git merge. У вас есть какие-либо проблемы с этим?

VonC 23.05.2019 15:20

@zizi Это было бы по-другому и повторяло бы коммиты из A поверх B: atlassian.com/git/tutorials/merging-vs-rebasing В вашем случае это не рекомендуется.

VonC 23.05.2019 15:23

эй, теперь я сталкиваюсь с конфликтами, не могли бы вы помочь мне в устранении конфликтов :(

user10972884 23.05.2019 21:57

@zizi Не могли бы вы сделать этот новый обновленный случай отдельным новым вопросом? Мой ответ был в контексте вашего первоначального вопроса.

VonC 23.05.2019 23:58

здравствуйте, вы можете мне помочь stackoverflow.com/questions/56297314/…

user10972884 24.05.2019 19:41

Другие вопросы по теме