Я подозреваю, что git rebase ... --dry-run
не представляется возможным, по следующей причине.
Когда вы делаете git rebase
, git откатится к исходной точке, а затем поэтапно применяет исправления для каждой фиксации, чтобы обновить ветвь. Если он столкнется с конфликтом, он остановится & ждет вас, чтобы разрешить конфликт, прежде чем продолжить. Путь, который ребаза берет после этого конфликта, зависит от того, как вы разрешаете конфликт - если вы разрешите его определенным образом, который может ввести (или устранить) более поздние конфликты.
Таким образом, git rebase ... --dry-run
сможет дать вам первый конфликт - отчеты о последующих конфликтах будут зависеть от того, как будет разрешен этот первый конфликт.
Единственный способ, которым я могу думать, это сделать через git diff
между текущей позицией и последней фиксацией в ветке, в которую вы перегружаете. Но это на самом деле не даст вам то, что вы ищете - вам действительно нужен список конфликтующих изменений между двумя точками. Там может быть способом сделать это с git diff
, но это не нормальный патч.
Какая форма команды 'git rebase' вы используете? Используете ли вы какие-либо необязательные флаги? И какой язык сценариев вы используете? Оболочка? – Jubobs
Если вы запустите 'git rebase' и попадете в конфликт слиянием, процесс остановится и завершится с ненулевым статусом. Вы можете проверить статус выхода операции переадресации, и, если он отличен от нуля, запустите 'git rebase -abort', чтобы отменить операцию. – Jubobs
Вы нашли способ сделать это? – crmpicco