Es ist eigentlich ein Befehl namens git cherry, dass jeder druckt verpflichten, dass nicht zwischen zwei Zweigen verschmolzen.
Für jedes gedruckte Commit bedeutet das "+" - Zeichen, dass Sie es zusammenführen können, das "-" - Zeichen bedeutet, dass Sie dieses Commit bereits auswählen.
Die Ausgabe ist alles andere als schön.
Für diejenigen, die aus dem SVN kam und an svnmerge.py verwendet, machte ich eine „svnmerge Erfolg -l“ Äquivalent für git Bash-Skript, das ich gitavail genannt:
#!/bin/bash
# get current branch
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
# get tracked branch (1st argument), if no arg or arguments are only options, assume master
if test -z $1 || grep -q '^-' <<< $1;
then TRACKED_BRANCH=master
else TRACKED_BRANCH=$1; shift
fi
# Log commits available for merge from tracked branch
LOG_OPTIONS=$*
for i in $(git cherry $CURRENT_BRANCH $TRACKED_BRANCH | egrep '^\+' | awk '{print $2}'); do git --no-pager log -n1 $i ${LOG_OPTIONS}; echo; done
Vorausgesetzt, dass Sie auf einem Zweig sind, und Sie möchten, Liste, was berechtigt ist, von der Master-Zweig zu verschmelzen, so laufen:
gitavail --name-status
und Sie werden eine Ausgabe sehr ähnlich „svnmerge Erfolg -l“ haben.
Ich denke, die Cherry-Pick-Commits müssen nicht manuell geändert werden (was ist mit Konflikten?), Wenn die patch id ändert, Git Kirsche wird nicht erkennen, die Commit wurde bereits ausgewählt Kirsche.
Während Sie wahrscheinlich einen guten Grund haben, dies zu tun, ist es normalerweise eine schlechte Idee, zu viele Commits in einen Zweig zu wählen. –