Git – failed to push some refs

Wenn Git eine Fehlermeldung ausgibt, die dieser ähnelt:

Push: failed to push some refs to ’ssh://gituser@angelcode.de:22/~/repos/primatrainer-android.git‘ refusing to update checked out branch: refs/heads/master. By default, updating the current branch in a non-bare repository is denied, because it will make the index and work tree inconsistent with what you pushed, and will require ‚git reset –hard‘ to match the work tree to HEAD. You can set ‚receive.denyCurrentBranch‘ configuration variable to ‚ignore‘ or ‚warn‘ in the remote repository to allow pushing into its current branch; however, this is not recommended unless you arranged to update its work tree to match what you pushed in some other way. To squelch this message and still keep the default behaviour, set ‚receive.denyCurrentBranch‘ configuration variable to ‚refuse‘.

Dann hilft folgender Handgriff:

  1. Am Terminal anmelden
  2. Ins betroffene Git-Repository wechseln
  3. Die Zeile git config receive.denycurrentbranch ignore eingeben

Atlassian FishEye 2.4.3 installieren

Atlassian FishEye ist ein besonders cooles Tool, um seinen Projekt-Sourcecode direkt in seinen JIRA-Projekten angezeigt zu bekommen. Völlig faszinierend finde ich, das man eine wunderbare Diff-Übersicht hat und Links zu einzelnen Codezeilen verschicken kann. Aus diesem Grund habe ich mich dafür entschieden, selbst FishEye für meine Git-Repositories in Zusammenhang mit JIRA einzusetzen. Wie ich es installiert habe, erfahrt ihr hier.
Atlassian FishEye 2.4.3 installieren weiterlesen

Git – project description file hasn’t been set

Der Fehler: „project description file hasn’t been set“ wird einem bei der Verwendung von Git angezeigt, wenn im Git-Repository im Ordner „.git“ in der Datei „description“ keine Beschreibung gesetzt wurde. Der Fehler kann unter besonderen Umständen aber auch durch vorinstallierte Git-Hooks entstehen.

Bei der Initialisierung eines Repositorys werden im Ordner „.git/hooks“ ein paar Beispieldateien angelegt. Diese sind standardmäßig nicht ausführbar (durch chmod-geregelt). Hat man versehentlicherweise diese Dateien aber ausführbar gemacht, so können sie diesen Fehler hervorrufen. In neueren Git-Versionen haben die entsprechenden Dateien die Endung „.sample“, um auch bei falschem chmods nicht sofort aktiviert zu werden.

Wer den genannten Fehler trotzdem hat, der sollte in seinem Git-Repository serverseitig alle Beispiel-Hooks löschen und erst danach das Repository clonen.

fatal: This operation must be run in a work tree

Die Fehlermeldung: „fatal: This operation must be run in a work tree“ kann bei der Versionsverwaltung mit Git auftreten, wenn man sein Git-Repository mit git init --bare anstatt mit git init initialisiert hat. Nackte (engl. bare) Repositories haben keinen Arbeitsbaum, weshalb die gewünschte Operation nicht ausgeführt werden kann. Man sollte daher sein Repository mit git init initialisieren.

.htaccess Schutz mit .htaccess Generator

Webseiten können über eine .htaccess Datei geschützt werden. Dafür muss eine .htaccess und eine .htpasswd-Datei in den zu schützenden Ordner abgelegt werden. Der Inhalt dieser Dateien lässt sich mit einem htaccess Generator erstellen. Den Pfad zur AuthUserFile sollte man jedoch absolut angeben.

Der absolute Dateipfad lässt sich mit einem Stückchen PHP ermitteln:

absolute_path.php

1
2
3
<?php
	echo dirname($_SERVER['SCRIPT_FILENAME']);
?>

DocumentRoot mit .htaccess ändern

Der DocumentRoot eines VirtualHost lässt sich in der Apache2 Webserver-Konfiguration einrichten. Bei Webhosting-Anbietern hat man darauf verständlicherweise aus Sicherheitsgründen keinen Zugriff. Möchte man trotzdem sein Hauptverzeichnis auf einen darin befindlichen Ordner umleiten, so kann eine RewriteRule behilflich sein, sofern mod_rewrite geladen wurde.
DocumentRoot mit .htaccess ändern weiterlesen