Git 2.3 ist erschienen

    Grüße, Kollegen! Heute Morgen hat der Github einen detaillierten Artikel über eine frisch veröffentlichte Version von Git veröffentlicht. Sie können es wie gewohnt auf der offiziellen Website abrufen und unter der Überschrift eine kurze Übersetzung dessen finden, was neu und interessant ist: Push-to-Deployment, manuelle Kontrolle der SSH-Parameter, eine Möglichkeit, das Hängen von Cron-Skripten mit dem Git-Client zu verhindern, und vieles mehr.



    Zum Bereitstellen drücken



    Die Möglichkeit, das Remote-Repository so zu konfigurieren, dass der empfangene Push automatisch ausgecheckt wird (vorausgesetzt, dass auf diesem Computer keine lokalen Änderungen vorgenommen wurden). Diese Funktion ist praktisch für den Test und die interne Bereitstellung: Es ist nicht erforderlich, zusätzliche Skripts zu installieren, auf den Server zu pushen, und die Dateien in der Arbeitskopie automatisch zu ändern und sie nicht nur dem Repository hinzuzufügen.

    Die Autoren warnen, dass es nicht empfohlen wird, diese Funktionalität für die Bereitstellung von Produktionsservern zu verwenden, da es eine Reihe von Nebenwirkungen gibt:
    • Neben den Dateien der Arbeitskopie befindet sich ein .git-Verzeichnis, das Sie separat vom Webserver verstecken müssen.
    • Arbeitskopiedateien werden nicht auf einmal in einer Transaktion, sondern nacheinander aktualisiert, sodass die Serverdateien für einen kurzen Zeitraum möglicherweise in einem inkonsistenten Zustand sind.
    • Wenn der Server nach dem Aktualisieren der Dateien eine Assembly benötigt, müssen Sie weiterhin Skripts verwenden.


    Schnelles Klonen basierend auf einem bereits geklonten lokalen Repository



    Mit dem neuen Schlüssel --dissociate können Sie die erforderlichen Dateien aus dem lokalen Repository abrufen, das beim Klonen mit --reference angegeben wurde. Dies kann die Klonzeit und die Netzwerklast erheblich verringern, wenn sich bereits eine Kopie des gewünschten Repository auf der Festplatte befindet:

    git clone --reference ../oldclone --dissociate https://github.com/gitster/git.git
    


    Konservativeres Standard-Git-Push-Verhalten



    Denken Sie daran, dass git kürzlich beim Pushen von Zweigen die Einstellung "push.default" empfohlen hat, was darauf hindeutet, dass sich das Standardverhalten bald ändern wird? Es hat sich geändert. Wenn sich der Name des lokalen Zweigs vom Namen des Upstream-Zweigs unterscheidet, weigert sich git zu pushen, ohne Remote zu benachrichtigen, um Sie vor dem Pushen des falschen Zweigs zu schützen:

    git checkout -b experimental origin/master
    git commit -a -m 'Experimental changes'
    git push # Вот это теперь не сработает - разработчик явно хочет сделать push в 'experimental', а не в 'master'.
    


    SSH-Verbindungsparameter können jetzt manuell eingestellt werden



    Mit der Umgebungsvariablen GIT_SSH_COMMAND können Sie jetzt genau konfigurieren, wie git ssh verwendet. Schließlich können Sie problemlos verschiedene private Schlüssel für verschiedene Repositorys erstellen, ohne das benutzerweite "~ / .ssh / config" zu ändern:

    GIT_SSH_COMMAND='ssh -i git_id' git clone host:repo.git
    


    Möglichkeit, Benutzereingaben während der Automatisierung zu deaktivieren



    Durch Setzen der Umgebungsvariablen GIT_TERMINAL_PROMPT auf 0 kann die Benutzereingabe deaktiviert werden. Dies ist nützlich, wenn git von einem Automatisierungsskript aus aufgerufen wird und keine Benutzereingaben impliziert werden. Bei Berechtigungsfehlern fragt git jetzt nicht nach einem Benutzernamen / Passwort und setzt dadurch das Cron-Skript aus.

    Über die kleinen Dinge


    • Reduziert unnötiges Neuschreiben von Dateien während des Auscheckens, sodass kleinere Arbeitskopiedateien beim Push-to-Deployment in einem inkonsistenten Zustand sind.
    • "Git Branch -d" (Entfernen von Zweigen) und "Git Branch -m" (Umbenennen von Zweigen) unterstützen jetzt den Schalter --force.


    Alle



    Wenn ich etwas verpasst, missverstanden oder falsch übersetzt habe - schreibe.

    Jetzt auch beliebt: