git-flow: Wie checke ich den Release-Zweig vom Ursprung aus?
-
27-10-2019 - |
Frage
Was ist der bevorzugte Workflow, um einen veröffentlichten Release-Zweig mithilfe von Git-Flow aus dem zentralen Repo zu ziehen?
zB:
Mike hat einen Release-Zweig erstellt und ihn über "git flow release publish 1.0" veröffentlicht
Jane möchte auch an diesem Release-Zweig arbeiten. Wie zieht sie ihn aus dem zentralen Repo, um mit dem Git-Flow an diesem bestimmten Zweig weiter zu arbeiten?
- Erstellen Sie den Zweig selbst lokal über
git flow release start 1.0
und danngit pull
? - Erstellen Sie einen Tracking-Zweig lokal über git mit
git checkout -b release/1.0 origin/release/1.0
und fahren Sie von dort fort (funktioniert der Git-Fluss auf diese Weise auf dem Zweig?)
Lösung
Sie müssen lediglich einen lokalen Tracking-Zweig einrichten. Es sind keine git-flow-spezifischen Befehle erforderlich.Git-flow kümmert sich anscheinend nur um den Namen des Zweigs und ob ihm die Zeichenfolge "release /" vorangestellt ist.
Das Einrichten eines lokalen Tracking-Zweigs wie git branch --track release/1.5 origin/release/1.5
ist also alles, was dazu gehört.
Andere Tipps
Git Flow Release (und Feature) haben einen "Track" -Befehl, um zu vereinfachen, was Sie versuchen zu tun.Gehen Sie folgendermaßen vor, um einen lokalen Verfolgungszweig für einen bereits veröffentlichten Zweig einzurichten und zu diesem zu wechseln:
git flow release track 1.0
oder
git flow feature track my-feature-branch
Hier ist der Code-Auszug aus der Gitflow-Quelle für den Release-Track"Befehl :
cmd_track() {
parse_args "$@"
require_version_arg
# sanity checks
require_clean_working_tree
require_branch_absent "$BRANCH"
git_do fetch -q "$ORIGIN"
require_branch "$ORIGIN/$BRANCH"
# create tracking branch
git_do checkout -b "$BRANCH" "$ORIGIN/$BRANCH"
echo
echo "Summary of actions:"
echo "- A new remote tracking branch '$BRANCH' was created"
echo "- You are now on branch '$BRANCH'"
echo
}
Sobald der git flow release publish
fertig ist, können Sie Folgendes tun:
git fetch -q “origin” “release1.0”
git branch –no-track “release1.0” FETCH_HEAD
git checkout -q “release1.0”
Und dann können Sie anfangen zu ziehen:
git pull “origin” “release1.0”