Git's doch gar nicht.

Unter Windows werden überall[tm] Thumbs.db Dateien angelegt, auf dem Mac sind's die berühmt berüchtigten .DS_Store Dateien. Diese sollten nicht ins Git Repository commited werden.

Um diese Dateien für alle Repositories zentral zu ignorieren empfiehlt sich ein globales .gitignore file z.B. hier: ~/.gitignore

echo ".DS_Store" >> ~/.gitignore
git config --global core.excludesfile ~/.gitignore

Danach ist es nicht mehr nötig diese Dateien in jedem einzelnen Repository separat zu ignorieren.

Eine große Beispielsammlung für .gitignore Dateien findet sich übrigens unter https://github.com/github/gitignore.

Tag lokal und remote löschen

Ein versehentlich oder falsch gepushter Git-Tag ist nur schwer wieder loszuwerden. In der Praxis ist es häufig so, dass jemand anderes bereits den Tag zu sich lokal pulled hat und der Tag so immer wieder neu im zentralen Git-Repository auftaucht weil er nach dem Löschen von irgendwo unbewusst immer wieder mit pushed wird.

Einen Versuch ist es Wert: Bei kleinen Teams kann folgendes klappen, und bei großen Teams sind hoffentlich eingeschränkte Berechtigungen fürs Pushen von Tags vorgesehen so dass wieder von einem kleinen Team gesprochen werden kann ;-)

git tag --delete 1.34
git push --delete origin 1.34

Hier soll der fälschlicherweise angelegte Tag 1.34 gelöscht werden (sollte 1.3.4 heißen) – falls das nicht klappt muss man wohl oder übel mit einem Tag > 1.34.0 weitermachen…

GIT Hook nur für Push auf definierten Branch

Git Hook nur bei push auf bestimmten branch ausführen
Achtung: für /bin/bash! (/bin/sh hat andere syntax!)

#!/bin/bash
while read oldrev newrev refname do
     branch=$(git rev-parse --symbolic --abbrev-ref $refname)
     if [ "preview" == "$branch" ]; then
         # do something
     fi done
Feedback
Wir bearbeiten Dein Feedback aus diesem Formular über gitlab.com – Du kannst das E-Mail Feld leer lassen, falls Du keine Antwort von uns erwartest. Alternative Kontaktmöglichkeiten findest Du im Impressum.