Git case sensitive workaround Webdevelopment

2
Blog is deprecated - Neu blog.nevercodealone.de

Ausführlicher Weg
mv README.MD readme-temp.md
git add -A
git commit -m „renaming readme“
mv readme-temp.md README.md
git add -A
git commit –amend -m „Renamed readme final“

Kurzer Weg
git mv README.MD temp.md
git mv temp.md README.md
git commit -m „Renamed readme“

Git case sensitive workaround

Git case sensitive workaround

Git case sensitive workaround

Bei der GIT Versionierung ist es vom Standard her so eingestellt, daß Dateien nicht als Casesensitive, also die Groß- und Kleinschreibung, bei einer Umbennennung nicht erkannt wird. Es macht keinen Sinn diese Einstellung für seinen Git Workspace oder gar Systemweit für seine Git Systemeinstellungen zu ändern. Das Problem liegt hier vor allem in dem Ärger, den man sich im Webdeveloper Team mit den Kollegen einfängt. Wenn es richtig schlimm kommt, können die ihre Arbeit komplett auslagern und müssen sehr viel Zeit investieren, damit sie wieder auf den aktuellen Stand kommen. Das kostet schon mehr als eine Haribo Box. Bei dem oben abgebildeten Beispiel einer falschen Datei einer Readme Datei ist das nicht tragisch. Bei einer systemweiten Anpassung von Controller Namen für die Verwendung eines Composer Autoloaders hingegen sieht das schon völlig anders aus.

Was passiert bei dem Git case sensitive workaround

Der oben dargestellte Workaround umgeht dieses Git Problem. Jetzt ist hier ja auch nur eine Datei betroffen, an der auch selten gearbeitet wird ;). Mir persönlich ist das in einen Symfony2 Projekt in einem Git Submodule Repository passiert. Hier arbeite ich auch als Hauptverantwortlicher Clean Code Developer. Eben aus diesen Grund habe ich dann auch mal eine Readme Datei angelegt und hier vergessen, die Dateiendung klein zu schreiben. Ein einfaches umbennen wurde von Git dann nicht als Änderung erkannt. Mit einem Git Force Befehl hätte ich mir unter Umständen sogar 2 Dateien auf dem Remote System eingefangen. Ich bin auch kein Freund von Force- und Hard-Befehlen. Lange Rede kurzer Sinne. Der Name des Files muß ebenfalls umbenannt werden und nicht nur dessen Schreibweise.

About Author

PHP Kurs und Inhouse Schulungen für Webdevelopment mit Continuous Integration - Clean Coder, Blogger, Autor, Dozent und Senior Webdeveloper www.rolandgolla.de

2 Kommentare

  1. Auf den Trick mit dem doppelten „git mv“ war ich auch gekommen. Das funktioniert ganz wunderbar.

    Allerdings reicht das ja noch nicht. Denn jetzt habe ich hier einen Release-Zweig, den ich nicht in „develop“ und „master“ zurück-mergen kann:

    > git flow release finish 703
    error: The following untracked working tree files would be overwritten by checkout:

    Please move or remove them before you switch branches.
    Aborting
    Could not check out master.

    Vielleicht finde ich ja noch eine Lösung …

Leave A Reply

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.