Archiv der Kategorie: git

Git: Deploy Key für Github Repo erstellen

Github erlaubt das Hinterlegen von Deploy Keys, um sich die Eingabe von Username und Password zu ersparen. Allerdings müssen die Keys unique sein. Ein Key, der zB an den User gebunden ist (~/.ssh/id_rsa.pub) kann nicht auch noch Deploy Key für ein Repository sein.

Das kann man umgehen, indem man einen Key mit einer Fake-Domain für Github anlegt (simple-budget.github.com). In der ~/.ssh/config wird dann der Fake-Host wieder dem korrekten Host (github.com) zugeordnet.

Szenario:
Wir haben als User „medianetix“ ein Github-Repo „simple-budget“ unter „github.com/medianetix/simple-budget“.
Zu diesem wollen wir jetzt einen (neuen) Deploy-Key anlegen.

Zuerst wird der remote angezeigt:

git remote -v

Damit wird der origin für fetch und pull angezeigt.

Danach ändern wir den remote origin, was einfacher ist, als ihn zu löschen und neu anzulegen.
(hier: simple-budget.github.com für das Repo github.com/medianetix/simple-budget):

git remote set-url origin git@simple-budget.github.com:medianetix/simple-budget.git 
git remote -v

Weiterlesen

Git: Merge Strategie – alle fremden Änderungen übernehmen

git merge -s recursive -X theirs develop

oder

git merge --strategy=recursive --strategy-option=theirs develop

merged in den Branch „develop“ in den aktuellen Branch. Dabei werden bei Konflikten immer die Änderungen des develop-Branches (theirs) übernommen.
Sollte ein Merge-Versuch fehlschlagen, so kann man mit

git merge --abort

den Merge abbrechen und mit

git reset --hard

den Branch wieder in den Ausgangszustand zurücksetzen

git: Commits reverse auflisten und formatieren

git log --reverse --date=iso --stat --pretty=tformat:"%cd %H %an%n%s" > commit.txt

–reverse Ändert die Listreihenfolge von alt zu neu
–date=iso Legt Datumsformat fest
–stat Zeigt Dateinamen und Anzahl Änderung an
–pretty= Anzeigeformat
tformat:“%cd %H %an%n%s“ –> cd=Commiter Date, H=Hash, an=Author Name, n=Newline %s= Subject

Das Ergebnis wird in eine Datei ausgeben (commit.txt).

git: git diff zum letzten Commit ohne Hashes

Um nach einem Commit sich noch einmal die Änderungen ansehen:

git diff HEAD^

Um sich gezielt die Änderungen bis zur n-ten Änderung anzeigen zu lassen:

git diff HEAD~n

Wobei „n“ der Schritt ist (1 = Vorletzte Änderunge, 2= Änderung davor, …). git diff HEAD^ == git diff HEAD~1
Will man den das Repo resetten kann man auch den HEAD nehmen:

git reset HEAD^

Stellt den Stand vor dem letzten Commit wieder her.