Как сделать проверенную ветку, чтобы стать мастером - PullRequest
0 голосов
/ 23 февраля 2019

Я выполнил команду git checkout {previousCommit} и продолжаю работать оттуда.Причина - что-то перепутанное с версией HEAD, и я хотел вернуться к более раннему состоянию и сделать заново.

Итак, теперь, когда я создал ветку previousCommit и завершил обновление, я хочу снова перенести все в master.Находясь на ветке previousCommit, я набрал 2 commit.

И теперь, когда я выполнил команду git checkout master, я получил сообщение ниже и не уверен, что делать

git checkout master
Warning: you are leaving 2 commits behind, not connected to
any of your branches:

  70a95ef someCommitMessage
  05ebd0f someCommitMessage

If you want to keep them by creating a new branch, this may be a good time
to do so with:

 git branch <new-branch-name> 70a95ef

Switched to branch 'master'
Your branch is up to date with 'origin/master'.

Вероятно, я должен дать более ясную картину:

В основном у меня есть 10 коммитов в общей сложности на главной ветке, давайте назовем это commit 1 ... commit 10

Теперь мастер последний сcommit 10, и я выполнил команду git checkout commit 7, и поэтому git создал для меня ветку commit 7, и я продолжил свою работу с commit 7 и сделал 2 коммита на этой ветке.

Теперьмоя цель состоит в том, чтобы эти 2 коммита заменили commit 8,9,10 на мастере, это возможно?

Я знаю, что должен был git reset hard commit 7 раньше, но мне интересно все, что я могу сделать в текущем состоянии?

Ответы [ 2 ]

0 голосов
/ 23 февраля 2019

Если вы делаете git checkout {previousCommit}, вы находитесь в состоянии отсоединенной головы.Это означает, что вы не находитесь ни на одной ветви в то время.Таким образом, сделанные вами коммиты находятся не в какой-либо ветви и не могут быть достигнуты после того, как вы переключились на основную ветку.

Git фактически говорит вам, как создать ветку, которая включает в себя эти коммиты:

git branch <new-branch-name> 70a95ef

Затем вы можете использовать новую ветку и продолжить работу в ней позже, или объединить ее с master.

Обратите внимание, что коммиты, которые вообще недоступны (потому что они не являются частью какой-либо ветви / тега), вероятныбыть удаленным сборщиком мусора через некоторое время.Вы можете решить проблему сегодня, но это может быть невозможно для этого случая (например) в течение одного месяца.Лучше всего создать ветку сейчас, вы всегда можете удалить ветку позже, если решите, что она вам не нужна.

0 голосов
/ 23 февраля 2019

на мастере, сделайте:

git rebase 70a95ef

это будет cherry-pick для вас коммиты мастера выше 70a95ef

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

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