Ich habe beruflich ca. 150 Git Projekte auf meiner Platte und immer mehr wechseln von master auf main. Ich habe keinen Überblick mehr, wie der jeweilige Default Branch in den Projekten heißt. Hat jemand zufällig das selbe Problem und dafür schon einen Alias geschrieben? Ich habe erst mal nichts im Netz dazu gefunden, das in plain git funktioniert.
Da bei mir fast alle Repos in Gitlab Instanzen sind, hatte ich schon überlegt, den Default Branch via API abzufragen. Aber eine universelle git Lösung wäre schon besser.
Ein andere Idee war die heads zu filtern ob entweder main oder master vorhanden ist und den jeweiligen auszuchecken und direkt zu pullen. Dann könnte ich mir auch wieder abgewöhnen, wenn ich auf Branches arbeite, den Default Branch zu löschen. Ich hatte damit angefangen, weil ich nach dem Mergen via Gitlab Merge-Request häufig vergessen hatte, nach dem lokalen checkout des Default Branch sofort ein git pull zu machen, um meine Änderungen vom Branch auf im lokalen Default Branch zu haben.
git alias: Automatisch Default Branch auschecken [gelöst]
-
- Beiträge: 939
- Registriert: 16.02.2009 09:35:10
git alias: Automatisch Default Branch auschecken [gelöst]
Zuletzt geändert von nudgegoonies am 11.01.2022 12:54:25, insgesamt 1-mal geändert.
Soft: Bullseye AMD64, MATE Desktop. Repo's: Backports, kein Proposed, eigene Backports. Grafik: Radeon R7 360 MESA.
Hardware: Thinkstation S20, Intel X58, 16GB, Xeon W3530, BCM5755 NIC, EMU10K1 SND, SATA SSD+HDS und DVD+RW.
Hardware: Thinkstation S20, Intel X58, 16GB, Xeon W3530, BCM5755 NIC, EMU10K1 SND, SATA SSD+HDS und DVD+RW.
Re: git alias: Automatisch Default Branch auschecken
Rein interessehalber: Was ist denn der Grund dafuer, dass man als Default-Branch nicht master sondern etwas anderes nimmt? Ich sehe keinen Nutzen dafuer und nur Probleme und Schwierigkeiten wie du sie nun hast.
Um aber auf deine Frage zurueckzukommen. Vielleicht kannst du einen Alias anlegen und dann mit `master' arbeiten, was intern automatisch auf `main' umgebogen wird. `git symbolic-ref' scheint sowas in der Art zu bieten. Aber das sagt nur das Internet. Ich habe keine Praxiserfahrung damit.
Um aber auf deine Frage zurueckzukommen. Vielleicht kannst du einen Alias anlegen und dann mit `master' arbeiten, was intern automatisch auf `main' umgebogen wird. `git symbolic-ref' scheint sowas in der Art zu bieten. Aber das sagt nur das Internet. Ich habe keine Praxiserfahrung damit.
Use ed once in a while!
-
- Beiträge: 939
- Registriert: 16.02.2009 09:35:10
Re: git alias: Automatisch Default Branch auschecken
Es sind sowohl interne als auch externe Projekte. Manche sind auf git flow umgestiegen. Andere haben master in main umbenannt wegen diskriminierender Sprache und neue Projekte haben als Default schon main.
Danke für den Tip mit symbolic-ref. Natürlich kann man lokale branches benennen wie man will. Dann heißt der lokale branch main und der remote master oder anders rum. Dafür müsste ich aber sehr viele Projekte einmal "anfassen".
Da bei uns aber auch ein paar andere "kreative" Namen für den Default Branch existieren ist für mich persönlich ein Alias, dass die Gitlab API abfragt, wohl das beste:
https://docs.gitlab.com/ee/api/branches.html
Ich werde mal schauen, wie ich das als Script verpacke und als alias eintrage.
Danke für den Tip mit symbolic-ref. Natürlich kann man lokale branches benennen wie man will. Dann heißt der lokale branch main und der remote master oder anders rum. Dafür müsste ich aber sehr viele Projekte einmal "anfassen".
Da bei uns aber auch ein paar andere "kreative" Namen für den Default Branch existieren ist für mich persönlich ein Alias, dass die Gitlab API abfragt, wohl das beste:
https://docs.gitlab.com/ee/api/branches.html
Ich werde mal schauen, wie ich das als Script verpacke und als alias eintrage.
Soft: Bullseye AMD64, MATE Desktop. Repo's: Backports, kein Proposed, eigene Backports. Grafik: Radeon R7 360 MESA.
Hardware: Thinkstation S20, Intel X58, 16GB, Xeon W3530, BCM5755 NIC, EMU10K1 SND, SATA SSD+HDS und DVD+RW.
Hardware: Thinkstation S20, Intel X58, 16GB, Xeon W3530, BCM5755 NIC, EMU10K1 SND, SATA SSD+HDS und DVD+RW.
Re: git alias: Automatisch Default Branch auschecken
Der Grund ist political Correctness (kein Scherz).Meillo hat geschrieben:10.01.2022 16:30:58Was ist denn der Grund dafuer, dass man als Default-Branch nicht master sondern etwas anderes nimmt?
Begriffe, die an die Sklaverei erinnern (z.B. Master, Slave, Server) werden im Land der begrenzten Unmöglichkeiten als beleidigend empfunden. Ist hier im Betrieb auch so, die wollen Weg von diesen Begriffen und das wird dann an allen möglichen und unmöglichen Stelle versucht, durchzusetzen.
-
- Beiträge: 939
- Registriert: 16.02.2009 09:35:10
Re: git alias: Automatisch Default Branch auschecken
Sieht man auch bei anderen Projekten. Der "Jenkins Master" heißt jetzt "Jenkins Server" und die "Jenkins Slaves" heißen jetzt "Jenkins Agents".
Aber wie gesagt, es gibt auch andere Gründe, weshalb der Name des Default Branch nicht immer master ist. Wir mussten schon viel früher in unseren Gitlab CI Skripten die Variable CI_DEFAULT_BRANCH nutzen.
Aber wie gesagt, es gibt auch andere Gründe, weshalb der Name des Default Branch nicht immer master ist. Wir mussten schon viel früher in unseren Gitlab CI Skripten die Variable CI_DEFAULT_BRANCH nutzen.
Soft: Bullseye AMD64, MATE Desktop. Repo's: Backports, kein Proposed, eigene Backports. Grafik: Radeon R7 360 MESA.
Hardware: Thinkstation S20, Intel X58, 16GB, Xeon W3530, BCM5755 NIC, EMU10K1 SND, SATA SSD+HDS und DVD+RW.
Hardware: Thinkstation S20, Intel X58, 16GB, Xeon W3530, BCM5755 NIC, EMU10K1 SND, SATA SSD+HDS und DVD+RW.
Re: git alias: Automatisch Default Branch auschecken
Danke fuer die Erklaerungen!
Agents ist ja auch nicht viel besser, nachdem in Russland, China, Indien und weiteren Laendern Personen und NGOs als westliche Agenten diskriminiert und aus politischen Gruenden verhaftet werden.nudgegoonies hat geschrieben:10.01.2022 18:09:09Sieht man auch bei anderen Projekten. Der "Jenkins Master" heißt jetzt "Jenkins Server" und die "Jenkins Slaves" heißen jetzt "Jenkins Agents".
Ich wollte auch nicht viel mehr von der technischen Frage ablenken.Aber wie gesagt, es gibt auch andere Gründe, weshalb der Name des Default Branch nicht immer master ist. Wir mussten schon viel früher in unseren Gitlab CI Skripten die Variable CI_DEFAULT_BRANCH nutzen.
Use ed once in a while!
-
- Beiträge: 939
- Registriert: 16.02.2009 09:35:10
Re: git alias: Automatisch Default Branch auschecken
Ich hatte schon eine funktionierende Lösung via Gitlab API. Aber mein Chef hatte noch den Tipp mit git ls-remote und dem HEAD. Diese 2 Zeilen tun es:
Habe mir dann einen alias erstellt, der "!git switch $(git_checkout_default_branch)" aufruft.
Code: Alles auswählen
#!/bin/bash
set -e
HEAD=$(git ls-remote -q | head -n1 | cut -f 1)
git ls-remote --heads -q | grep $HEAD | cut -d '/' -f3
Soft: Bullseye AMD64, MATE Desktop. Repo's: Backports, kein Proposed, eigene Backports. Grafik: Radeon R7 360 MESA.
Hardware: Thinkstation S20, Intel X58, 16GB, Xeon W3530, BCM5755 NIC, EMU10K1 SND, SATA SSD+HDS und DVD+RW.
Hardware: Thinkstation S20, Intel X58, 16GB, Xeon W3530, BCM5755 NIC, EMU10K1 SND, SATA SSD+HDS und DVD+RW.