Помощь в перебазировании и слиянии - PullRequest
0 голосов
/ 10 июля 2019

Я перешел с development на <working-branch>, внес некоторые изменения и зафиксировал все обратно на <working-branch> на GitHub.Сделал запрос на GitHub, код проверен, одобрен, все это джаз.Теперь по какой-то причине, которую я слишком младший, чтобы можно было задавать вопросы, они не хотят использовать GitHub для выполнения слияния, вместо этого они хотят использовать git в командной строке и делают что-то вроде этого:

  • все коммиты объединены в один "чистый" коммит
  • убедитесь, что коммит помечен как <working-branch> (я думаю, что в настоящее время он "сделал запрошенные исправления.")
  • слияния, которые фиксируются в development

Я SSHed в моем рабочем хранилище и выполнил следующее, включая вывод git.Мне пришлось анонимизировать любую идентифицирующую информацию.

Сразу же, я не уверен, правильно ли то, что я сделал.Это мое лучшее предположение, основанное на противоречивой документации, которую мне дали.

Когда я сделал git rebase -i origin/<working-branch>, это просто дало мне одну строку без комментариев noop, что я не ожидал.Я ожидал список всех коммитов, которые я сделал.Я хотел остановиться на этом, но когда я сделал :q в редакторе, он просто продолжал и перезагружался, и не давал мне возможность прервать.

$ git checkout origin/<working-branch>
Note: checking out 'origin/<working-branch>'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at <hash> Made requested fixes.

$ git rebase -i origin/<working-branch>
Successfully rebased and updated detached HEAD.

$ git merge
fatal: No current branch.

$ git status
HEAD detached at origin/<working-branch>
nothing to commit, working tree clean

Последние два результата с "роковой »,« ГОЛОВА оторвана »и« нечего делать »выглядят страшно.Я не знаю, что они имеют в виду, и я надеюсь, что я не испортил хранилище.Кто-нибудь может помочь исправить этот беспорядок?

1 Ответ

1 голос
/ 10 июля 2019

Чтобы отсоединить:

git checkout working-branch

noop был из-за того, что вы сделали перебаз в своей собственной ветке. Чтобы отменить разрабатываемую ветку:

git fetch
git rebase -i origin/develop

Это даст вам текстовый редактор просмотра ваших коммитов. Если вы хотите раздавить их в один чистый коммит, измените pick на s для всех, кроме первой строки. Сохраните и закройте файл, и вам будет предоставлен экран текстового редактора для записи сообщения о коммите (для каждого коммита). Сохраните и выйдите, и перебазирование закончено.

Если перебазирование говорит о наличии конфликтов, вы можете отменить его:

git rebase --abort

Тогда гугл как разрешать конфликты:)

Если это сработало, вам придется нажать:

git push --force

Предупреждение: принудительное нажатие перезаписывает то, что находится на удаленном сервере, это разрушительная операция. Убедитесь, что вы точно в своей рабочей ветке.

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