Wie kann ich alle Dateien, einschließlich neu hinzugefügter Dateien, mit einem einzigen Befehl bereitstellen und festschreiben?
Wie kann ich alle Dateien, einschließlich neu hinzugefügter Dateien, mit einem einzigen Befehl bereitstellen und festschreiben?
Antworten:
Tut
git add -A && git commit -m "Your Message"
als "Einzelbefehl" zählen?
Bearbeiten Sie basierend auf der Antwort von @ thefinnomenon unten :
Um es als zu haben git alias
, verwenden Sie:
git config --global alias.coa '!git add -A && git commit -m'
und schreiben Sie alle Dateien, einschließlich neuer Dateien, mit einer Nachricht fest mit:
git coa "A bunch of horrible changes"
Erklärung (aus der git add
Dokumentation ):
-A, --all, --no-ignore-remove
Aktualisieren Sie den Index nicht nur dort, wo der Arbeitsbaum eine übereinstimmende Datei aufweist, sondern auch dort, wo der Index bereits einen Eintrag enthält. Dadurch werden Indexeinträge hinzugefügt, geändert und entfernt, um sie an den Arbeitsbaum anzupassen.
Wenn
<pathspec>
bei Verwendung der Option -A kein angegeben wird, werden alle Dateien im gesamten Arbeitsbaum aktualisiert (alte Versionen von Git beschränken die Aktualisierung auf das aktuelle Verzeichnis und seine Unterverzeichnisse).
git add -A ; git commit -m "Your Message"
Dieser Befehl fügt alle geänderten Dateien hinzu und schreibt sie fest, jedoch keine neu erstellten Dateien .
git commit -am "<commit message>"
Vom Menschen git-commit:
-a, --all
Tell the command to automatically stage files that have been modified
and deleted, but new files you have not told Git about are not
affected.
Ich benutze diese Funktion:
gcaa() { git add --all && git commit -m "$*" }
In meiner zsh-Konfigurationsdatei kann ich also einfach Folgendes tun:
> gcaa This is the commit message
Automatisches Bereitstellen und Festschreiben aller Dateien.
function gcaa() { git add --all && git commit -m "$*" && git push }
gaa && gc -m "my commit"
aber das ist so viel schöner ... <eilt davon, um bashrc zu ändern ..>
Einzeiler zum Bereitstellen ALLER Dateien ( geändert , gelöscht und neu ) und Festschreiben mit Kommentar:
git add --all && git commit -m "comment"
http://git-scm.com/docs/git-add
http://git-scm.com/docs/git-commit
Ich bin mir nicht sicher, warum diese Antworten alle um das herum tanzen, was ich für die richtige Lösung halte, aber für das, was es hier wert ist, verwende ich Folgendes:
git config --global alias.coa '!git add -A && git commit -m'
git coa "A bunch of horrible changes"
HINWEIS: coa
steht für Commit All und kann durch alles ersetzt werden, was Ihr Herz begehrt
git alias
Weg gesucht , der Rest ist langweilig.
Das Festschreiben in git kann je nach Situation ein mehrstufiger Prozess oder ein Schritt sein.
In dieser Situation haben Sie mehrere Dateien aktualisiert und möchten Folgendes festschreiben:
Sie müssen alle geänderten Dateien hinzufügen, bevor Sie etwas festschreiben.
git add -A
oder
git add --all
Danach können Sie alle hinzugefügten Dateien festschreiben
git commit
Dazu müssen Sie die Nachricht für dieses Commit hinzufügen.
Wenn Sie nur eine "schnelle und schmutzige" Methode zum Speichern von Änderungen im aktuellen Zweig wünschen, können Sie den folgenden Alias verwenden:
git config --global alias.temp '!git add -A && git commit -m "Temp"'
Nachdem Sie diesen Befehl ausgeführt haben, können Sie einfach eingeben git temp
, damit git alle Ihre Änderungen automatisch als Commit mit dem Namen "Temp" in den aktuellen Zweig festschreibt. Anschließend können Sie git reset HEAD~
die Änderungen später "aufheben", damit Sie weiter daran arbeiten können, oder git commit --amend
dem Festschreiben weitere Änderungen hinzufügen und / oder ihm einen richtigen Namen geben.
Ich habe in meiner Konfiguration zwei Aliase:
alias.foo=commit -a -m 'none'
alias.coa=commit -a -m
Wenn ich zu faul bin, begebe ich einfach alle Änderungen mit
git foo
und nur um ein schnelles Commit zu machen
git coa "my changes are..."
coa steht für "alles begehen"
Führen Sie den angegebenen Befehl aus
git add . && git commit -m "Changes Committed"
Selbst wenn es sich um einen einzelnen Befehl handelt, werden zwei separate Befehle nacheinander ausgeführt. Hier haben wir sie nur &&
kombiniert. Es ist nicht viel anders als laufen
git add .
und git commit -m "Changes Committed"
separat. Sie können mehrere Befehle gleichzeitig ausführen, aber die Reihenfolge spielt hier eine Rolle. Wenn Sie die Änderungen zusammen mit Staging und Commit auf den Remote-Server übertragen möchten, können Sie dies wie angegeben tun.
git add . && git commit -m "Changes Committed" && git push origin master
Wenn Sie stattdessen die Reihenfolge ändern und die push
erste setzen, wird sie zuerst ausgeführt und gibt nach dem Staging und Commit nicht den gewünschten Push aus, nur weil sie bereits zuerst ausgeführt wurde.
&&
führt den zweiten Befehl in der Zeile aus, wenn der erste Befehl erfolgreich zurückkommt, oder mit einer Fehlerstufe von 0. Das Gegenteil von &&
ist ||
, das den zweiten Befehl ausführt, wenn der erste Befehl nicht erfolgreich ist, oder mit einer Fehlerstufe von 1.
Alternativ können Sie alise as erstellen git config --global alias.addcommit '!git add -a && git commit -m'
und als verwendengit addcommit -m "Added and commited new files"
Tolle Antworten, aber wenn Sie nach einer einzigen Zeile suchen, können Sie alles verketten, aliasisieren und die Bequemlichkeit genießen:
git add * && git commit -am "<commit message>"
Es ist eine einzelne Zeile, aber zwei Befehle, und wie bereits erwähnt, können Sie diese Befehle als Alias verwenden:
alias git-aac="git add * && git commit -am "
(Das Leerzeichen am Ende ist wichtig), da Sie den neuen Kurzhandbefehl parametrieren werden.
Von diesem Moment an verwenden Sie diesen Alias:
git-acc "<commit message>"
Sie sagen im Grunde:
git, füge für mich alle nicht verfolgten Dateien hinzu und schreibe sie mit dieser gegebenen Festschreibungsnachricht fest.
Hoffe du benutzt Linux, hoffe das hilft.
Sie können ein kleines Skript schreiben (siehe Ian Clellands Antwort), git-commitall
das mehrere Git-Befehle verwendet, um das auszuführen, was Sie tun möchten.
Platzieren Sie dieses Skript an einer beliebigen Stelle in Ihrem $PATH
. Sie können es so nennen git commitall
... sehr praktisch!
Gefunden hier (Frage und alle Antworten leider gelöscht, nur mit hohem Ansehen sichtbar)