Git вишня не работает
Я пытаюсь сделать вишневый захват с хозяина и получить его в текущую производственную ветвь. Однако, когда я выполняю 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'
Примечание. Я пробовал делать reset и reset --hard HEAD ^, и ничто не изменило ничего.
Я смущен, почему это не работает для меня.
Любое понимание, советы или идеи о том, как разрешить это, будут полезны ~!
Ответы
Ответ 1
Git разрешает выбор вишни как no-op - все изменения, внесенные этим фиксацией, были введены некоторыми фиксаторами в вашей текущей ветке. (Или то, что думает Git). Убедитесь, что комманда, которую вы выбрали для вишни, еще не была объединена, как либо правильное слияние, так и переформатирование, черемуха или поэтапный патч. (Используйте git show <commit-id>
, чтобы увидеть diff.)
Ответ 2
В моем случае это приводило меня в бешенство, так как было совершенно очевидно, что конкретный коммит, который я хотел выбрать для вишневого выбора, в мою текущую ветвь был объединен не.
Оказывается, кто-то уже вишневый взял фиксацию за неделю до этого. изменения, но не конкретные SHA, были уже в моей текущей ветке, и я не заметил их.
Проверьте файлы (ы), которые вы пытаетесь выбрать. Если они уже имеют изменения, версия фиксации уже выбрана или добавлена вишней другим способом. Таким образом, нет необходимости, чтобы вишня снова выбрала его.
Ответ 3
Также обратите внимание, что добавление пустого файла (например, .gitkeep
) в дерево рассматривается с помощью вишневого выбора как пустой фиксации.
Ответ 4
Итак, здесь еще одна странная ситуация, когда это может возникнуть: у меня было следующее:
![git скриншот журнала]()
Я пытался выбрать cherry pick 9a7b12e, который, по-видимому, ничего, - он даже попытался рассказать мне об этой строке в выходе журнала git, что 4497428 было тем, что я действительно хотел. (То, что я сделал, просто искал сообщение фиксации и схватил первый хеш, который я видел, когда он был). Во всяком случае, просто хочу сообщить людям, что есть другой способ, которым вы можете обмануть попытку вишни выбрать no op.