LINUX.ORG.RU

История изменений

Исправление intelfx, (текущая версия) :

Тогда это не решается средствами Git как такового. Вот тебе bash-скрипт, который, надеюсь, делает то, что нужно.

#!/bin/bash

set -e

git checkout "$1"
shift

for arg; do
	git cherry-pick "$(git log --pretty=format:%H --date-order --merges -1 "$arg")..$arg"
done

Первым аргументом — целевая ветка, дальше — откуда черри-пикать (порядок, естественно, имеет значение).

Исправление intelfx, :

Тогда это не решается средствами Git как такового. Вот тебе bash-скрипт, который, надеюсь, делает то, что нужно.

#!/bin/bash

function last_merge() {
	git log "$1" --pretty=format:%H --date-order --merges -1
}

set -e

DEST_BRANCH="$1"
shift

git checkout "$DEST_BRANCH"

for arg; do
	git cherry-pick "$(last_merge "$arg")..$arg"
done

Первым аргументом — целевая ветка, дальше — откуда черри-пикать (порядок, естественно, имеет значение).

Исправление intelfx, :

Тогда это не решается средствами Git как такового. Вот тебе bash-скрипт, который, надеюсь, делает то, что нужно.

#!/bin/bash

function git_log_hash() {
	git log --pretty=format:%H "$@"
}

function last_merge() {
	git_log_hash "$1" --date-order --merges -1
}

set -e

DEST_BRANCH="$1"
shift

git checkout "$DEST_BRANCH"

for arg; do
	git cherry-pick "$(last_merge "$arg")..$arg"
done

Первым аргументом — целевая ветка, дальше — откуда черри-пикать (порядок, естественно, имеет значение).

Исправление intelfx, :

Тогда это не решается средствами Git как такового. Вот тебе bash-скрипт, который, надеюсь, делает то, что нужно.

#!/bin/bash

function git_log_hash() {
	git log --pretty=format:%H "$@"
}

function last_merge() {
	git_log_hash "$1" --date-order --merges -1
}

set -e

DEST_BRANCH="$1"
shift

git checkout "$DEST_BRANCH"

for arg; do
	git cherry-pick "$(last_merge "$arg")".."$arg"
done

Первым аргументом — целевая ветка, дальше — откуда черри-пикать (порядок, естественно, имеет значение).

Исправление intelfx, :

Тогда это не решается средствами Git как такового. Вот тебе bash-скрипт, который, надеюсь, делает то, что нужно.

#!/bin/bash

function git_log_hash() {
	git log --pretty=format:%H "$@"
}

function last_merge() {
	git_log_hash "$1" --date-order --merges -1
}

function since_last_merge() {
	git_log_hash "$(last_merge "$1")..$1"
}

set -e

DEST_BRANCH="$1"
shift

git checkout "$DEST_BRANCH"

for arg; do
	git cherry-pick $(since_last_merge "$arg")
done

Первым аргументом — целевая ветка, дальше — откуда черри-пикать (порядок, естественно, имеет значение).

Исходная версия intelfx, :

Тогда это не решается средствами Git как такового. Вот тебе bash-скрипт, который, надеюсь, делает то, что нужно.

#!/bin/bash

function git_log_hash() {
	git log --pretty=format:%H "$@"
}

function last_merge() {
	git_log_hash "$1" --date-order --merges -1
}

function since_last_merge() {
	git_log_hash "$(last_merge "$1")..$1"
}

set -e

DEST_BRANCH="$1"
shift

git checkout "$DEST_BRANCH"

for arg; do
	git cherry-pick $(since_last_merge "$arg")
done

Целевая ветка — первым аргументом, дальше — откуда черри-пикать (порядок, естественно, имеет значение).