git cherry-pick не работает
Я пытаюсь вишневый выбор фиксации от мастера и получить его в текущей производственной отрасли. Однако, когда я выполняю 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 ответов:
Git разрешает вишневый выбор как no-op - все изменения, внесенные этой фиксацией, были введены некоторыми фиксациями в вашей текущей ветке. (Во всяком случае, так думает ГИТ.) Убедитесь, что фиксация, которую вы собираете вишни, еще не была объединена каким-либо образом, как правильное слияние, перебазирование/выбор вишни или фрагментарный патч. (Используйте
git show <commit-id>чтобы увидеть разницу.)
в моем случае это сводило меня с ума, так как было совершенно очевидно, что конкретный коммит, который я хотел вишневый выбор, имел не были объединены в мою текущую ветку.
получается, у кого-то уже черри выбрал фиксацию за неделю до этого. Элемент изменения, но не конкретный SHA, уже были в моей текущей ветке, и я их не заметил.
проверить файл(ы), что вы пытаетесь гадать. Если они уже есть изменения, версия фиксации уже была выбрана или добавлена другим способом. Таким образом, нет необходимости снова собирать вишню.
Также обратите внимание, что добавление пустого файла (например,
.gitkeep) к дереву рассматривается cherry-pick как пустой фиксатор.
Итак, вот еще одна запутанная ситуация, когда это может возникнуть: у меня было следующее:
Я пытался вишневый выбор 9a7b12e, который, по-видимому, ничего-он даже пытался сказать мне на этой строке в выводе журнала git, что 4497428 было то, что я действительно хотел. (То, что я сделал, просто искал сообщение о фиксации и схватил первый хэш, который я видел, у которого он был). В любом случае, просто хочу, чтобы люди знали, что есть другой способ получить обманом пытаются подбирают не ОП.

Comments