Gibt es einen einfachen Befehl zum konvertieren einer Filiale an einem tag?
Ich bin komplett ein langwieriger Prozess der Umwandlung von "dumm Schnappschüsse" zu git. Dieser Prozess geht schon sehr gut (Dank dieser Prozess umbenennen), aber jetzt bemerkte ich, dass einige der äste, die ich erstellt habe, nicht verdienen eine branch
sondern eine tag
.
Da ist noch alles lokale (nie geschoben, um einen repository), fand ich diese Frage (und zugehörige Antworten) etwas umständlicher als ich es vorziehen, so Frage ich mich, ob ich eine Abkürzung nehmen, über einige einfache "umwandeln-von-ast-zu-tag" - Befehl?
Gibt es so einen einfachen Befehl zum konvertieren einer Filiale an einem tag?
(Ich weiß, ich kann einfach lassen, wie es ist, aber ich mag die Art, wie gitk
- highlights-tags und mir helfen, leicht zu identifizieren).
UPDATE: Dank @Andy ' s Antwort unten, ich konnte ein shell-Skript, das macht alles bequem und schmerzlos. Ich bin teilen Sie dieses Skript zum Wohle aller und als besonderen Dank an diese tolle community, die aus sich zu bewegen, CVS zu git für mich möglich:
#!/bin/sh
BRANCHNAME=$1
TAGNAME=$2
echo "Request to convert the branch ${BRANCHNAME} to a tag with the same name accepted."
echo "Processing..."
echo " "
git show-ref --verify --quiet refs/heads/${BRANCHNAME}
# $? == 0 means local branch with <branch-name> exists.
if [ $? == 0 ]; then
git checkout ${BRANCHNAME}
git tag ${BRANCHNAME}
git checkout master
git branch ${BRANCHNAME} -d
echo " "
echo "Updated list branches, sorted chronologically: "
echo "---------------------------------------------- "
git log --no-walk --date-order --oneline --decorate $(git rev-list --branches --no-walk) | cut -d "(" -f 2 | cut -d ")" -f 1
else
echo "Sorry. The branch ${BRANCHNAME} does NOT seem to exist. Exiting."
fi
- Hier habe ich beschrieben, eine effektive Methode zum konvertieren von SVN-tag-branches git-tags
- "Gibt es einen einfachen Befehl..." - fast-nichts im Git ist einfach-oder entspricht grundlegenden Arbeitsabläufe, so dass man liikely einfach zu beantworten: NEIN. Was auch immer folgt einfach egal 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
War es separate Entwicklung auf diese Zweige? (der Beitrag, den Sie verlinkt sind, nicht angezeigt zu haben, die Entwicklung auf jene Zweige)
Wenn es keine Entwicklung, Sie könnte:
git checkout branchName
.git tag tagName
.git checkout master
.git branch branchName -d
.Dies kann auch durchgeführt werden, wenn es die Entwicklung auf dem ast, aber Sie brauchen, um
-D
statt-d
. Ich bin kein git-pro-obwohl, so dass nicht sicher, ob das ist eine "akzeptabel" Weg zu verlassen, ein Zweig.git checkout <branchName>
und die-d
im letzten Schritt sind das, was machte mir Angst, aber ich verstehe jetzt, dass es keine andere Möglichkeit gibt. So werde ich mit diesem experiment auf eine sichere Kopie des gesamten git (lokales) repository.git push --tags
Die gegebenen Antworten sind grundsätzlich richtig.
Wie tags und branches sind nur Namen für Objekte, gibt es eine einfachere Weise, ohne Sie zu berühren aktuellen Arbeitsbereich:
Oder sogar tun Sie es an remote-server, ohne diese zu berühren lokalen repository an alle:
Pro Andy ' s Antwort, die ich gemacht habe, ein alias kann auch verwendet werden, für die gleiche Sache:
Nutzung
Wenn Sie konvertieren möchten Zweig bug-2483 einem tag (während deiner main branch ist master) schreiben:
UPDATE 1
Geändert, entsprechend dem Vorschlag von kauppi.