мерзавец оторван от мастера - PullRequest
0 голосов
/ 20 октября 2018

Это действительно сбивает с толку, я пытаюсь выдвинуть все свои коммиты на производство.Но когда я нажимаю на сервер 8840f9e, нажимая на это.

Моя цель отправить все мои коммиты в производство.

commit d06a8c7(HEAD)

commit e1467b4

commit 0ed15e7

commit 5886ab9

commit 0f8ee01

commit 8840f9e (production/master, master)

Ответы [ 2 ]

0 голосов
/ 21 октября 2018
  • Создать новую временную ветку, скажем, tempcommit
  • Оформить новую ветку
  • добавить коммит в новую ветку
  • объединить новую ветку с мастером

Все в одной команде, как это

git branch tempcommit <commit id> && git checkout master && git merge tempbranch
0 голосов
/ 20 октября 2018

tl; dr
Вы можете попробовать git branch tempbranch d06a8c7d9a && git checkout master && git merge tempbranch, чтобы получить коммит в вашу основную ветвь, а затем сделать толчок к производству.


Обычно gitкоммиты находятся на какой-то ветке.Может быть, для нескольких, но это не имеет отношения к делу.
Когда вы обычно работаете, у вас должна быть проверена какая-то ветка - ваша называется master.
Но может случиться так, что вы покинете ветку и создадитефиксирует ваши новые изменения, не сообщая git, к какой ветке они принадлежат.В этом случае, git войдет во что-то, называемое «состояние оторванной головы».

Например:

git init
touch file.txt
git add file.txt
git commit -m "initial commit"

Создает файл и фиксирует его.Давайте изменим файл и сделаем коммит снова, чтобы у нас было два коммита.Если вы теперь явно git checkout HEAD~, то есть, если вы проверяете первый коммит, вы больше не находитесь в ветви master.Это только один пример того, как добраться до этого состояния.

Если вы сейчас создадите новый коммит, git предупредит вас:

$ git checkout HEAD^
Note: checking out 'HEAD^'.

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 24ebade initial commit

Чтобы получитьКоммит new возвращает обратно в какую-то ветку, вы можете делать то, что он вам рекомендует.
Создать новую ветку, которая указывает на ваш последний коммит, используя, например, git checkout -b tempBranch.

Возможно, что у вас есть какие-то коммиты на master, которые противоречат вашим изменениям, произошедшим в отключенном состоянии HEAD, которое сейчас находится на tempBranch.По этой причине вам может потребоваться разрешить конфликты слияния.

git checkout master
git merge tempbranch

гарантирует, что обе ваши истории фиксации будут объединены в вашу ветку master.После разрешения конфликтов слияния вы вернулись в состояние, к которому вы привыкли, и можете нажать как обычно.
Для очистки, поскольку вам больше не нужна временная ветвь tempBranch, вы можете удалить ее с помощью git branch -d tempbBranch.

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