мерзавец не работает - PullRequest
       32

мерзавец не работает

92 голосов
/ 16 августа 2011

Я пытаюсь выбрать коммит у мастера и перенести его в текущую производственную ветку.Однако, когда я выполняю git cherry-pick <SHA-hash>, я просто получаю это сообщение:

# On branch prod_20110801
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#   site/test-result/
 nothing added to commit but untracked files present (use "git add" to track)
 The previous cherry-pick is now empty, possibly due to conflict resolution.
If you wish to commit it anyway, use:

    git commit --allow-empty

Otherwise, please use 'git reset'

Примечание: я попытался выполнить сброс и сброс --hard HEAD ^, и ни один из них, похоже, ничего не изменил.

Я не понимаю, почему это не работает для меня.

Любые идеи, советы или идеи о том, как решить эту проблему, были бы полезны ~!

Ответы [ 4 ]

119 голосов
/ 16 августа 2011

Git разрешает "черри-пика" как запретную операцию - все изменения, внесенные этим коммитом, были внесены каким-то коммитом в вашу текущую ветку. (В любом случае, это то, что думает Git.) Убедитесь, что коммит, который вы выбираете из вишни, еще не был каким-либо образом объединен как надлежащее слияние, ребаз / выбор вишни или фрагментарный патч. (Используйте git show <commit-id> для просмотра различий.)

8 голосов
/ 15 апреля 2015

В моем случае это сводило меня с ума, поскольку было совершенно очевидно, что конкретный коммит, который я хотел выбрать из вишни, не был объединен с моей текущей веткой.

Оказывается, кто-то уже Черри выбрал коммит за неделю до этого. изменения , но не конкретный SHA, уже были в моей текущей ветке, и я их не заметил.

Проверьте файлы, которые вы пытаетесь выбрать. Если в них уже есть изменения, версия коммита уже была выбрана или добавлена ​​другим способом. Таким образом, нет необходимости снова собирать вишню.

4 голосов
/ 09 мая 2016

Также обратите внимание, что добавление в дерево пустого файла (например, .gitkeep) рассматривается cherry-pick как пустой коммит.

1 голос
/ 21 мая 2017

Итак, вот еще одна запутанная ситуация, когда это может произойти: у меня было следующее:

git log screenshot

Я пытался выбрать вишню 9a7b12e, котораяочевидно ничего - он даже попытался сказать мне в той строке в выводе журнала git, что 4497428 было тем, что я действительно хотел.(То, что я сделал, просто посмотрел на сообщение о коммите и взял первый хэш, который у меня был).В любом случае, просто хочу, чтобы люди знали, что есть еще один способ обмануть вас, пытаясь выбрать вишку без операции.

...