Comment puis-je mettre en scène et valider tous les fichiers, y compris les fichiers nouvellement ajoutés, à l'aide d'une seule commande?
Comment puis-je mettre en scène et valider tous les fichiers, y compris les fichiers nouvellement ajoutés, à l'aide d'une seule commande?
Réponses:
Est-ce que
git add -A && git commit -m "Your Message"
compter comme une "commande unique"?
Modifier en fonction de la réponse de @ thefinnomenon ci - dessous :
Pour l'avoir comme un git alias
, utilisez:
git config --global alias.coa '!git add -A && git commit -m'
et valider tous les fichiers, y compris les nouveaux fichiers, avec un message avec:
git coa "A bunch of horrible changes"
Explication (à partir de la git add
documentation ):
-A, --all, --no-ignore-removal
Mettez à jour l'index non seulement là où l'arborescence de travail a une correspondance de fichier, mais aussi là où l'index a déjà une entrée. Cela ajoute, modifie et supprime les entrées d'index pour correspondre à l'arborescence de travail.
Si non
<pathspec>
est donné lorsque l'option -A est utilisée, tous les fichiers de l'arborescence de travail entière sont mis à jour (les anciennes versions de Git étaient utilisées pour limiter la mise à jour au répertoire en cours et à ses sous-répertoires).
git add -A ; git commit -m "Your Message"
Cette commande ajoute et valide tous les fichiers modifiés, mais pas les fichiers nouvellement créés .
git commit -am "<commit message>"
De man 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.
J'utilise cette fonction:
gcaa() { git add --all && git commit -m "$*" }
Dans mon fichier de configuration zsh, je peux donc simplement faire:
> gcaa This is the commit message
Pour mettre en scène et valider automatiquement tous les fichiers.
function gcaa() { git add --all && git commit -m "$*" && git push }
gaa && gc -m "my commit"
mais c'est tellement plus agréable ... <se précipite pour changer bashrc ..>
One-liner pour mettre en scène TOUS les fichiers ( modifiés , supprimés et nouveaux ) et valider avec un commentaire:
git add --all && git commit -m "comment"
http://git-scm.com/docs/git-add
http://git-scm.com/docs/git-commit
Je ne sais pas pourquoi ces réponses dansent autour de ce que je pense être la bonne solution, mais pour ce que ça vaut ici, c'est ce que j'utilise:
git config --global alias.coa '!git add -A && git commit -m'
git coa "A bunch of horrible changes"
REMARQUE: coa
est l'abréviation de tout engager et peut être remplacé par tout ce que votre cœur désire
git alias
chemin, le reste est ennuyeux.
S'engager dans git peut être un processus en plusieurs étapes ou une étape selon la situation.
Cette situation est celle où vous avez plusieurs fichiers mis à jour et que vous souhaitez valider:
Vous devez ajouter tous les fichiers modifiés avant de valider quoi que ce soit.
git add -A
ou
git add --all
Après cela, vous pouvez utiliser valider tous les fichiers ajoutés
git commit
avec cela, vous devez ajouter le message pour ce commit.
Si vous voulez juste un moyen "rapide et sale" de cacher les modifications sur la branche courante, vous pouvez utiliser l'alias suivant:
git config --global alias.temp '!git add -A && git commit -m "Temp"'
Après avoir exécuté cette commande, vous pouvez simplement taper git temp
pour que git valide automatiquement toutes vos modifications dans la branche actuelle sous la forme d'un commit nommé "Temp". Ensuite, vous pouvez utiliser git reset HEAD~
plus tard pour "annuler git commit --amend
la validation " des modifications afin de pouvoir continuer à travailler dessus, ou pour ajouter d'autres modifications au commit et / ou lui donner un nom correct.
J'ai dans ma config deux alias:
alias.foo=commit -a -m 'none'
alias.coa=commit -a -m
si je suis trop paresseux, je commets simplement tous les changements avec
git foo
et juste pour faire un commit rapide
git coa "my changes are..."
coa signifie "commit all"
Exécutez la commande donnée
git add . && git commit -m "Changes Committed"
Cependant, même si cela semble être une seule commande, ce sont deux commandes distinctes qui s'exécutent une par une. Ici, nous venons &&
de les combiner. Ce n'est pas très différent de courir
git add .
et git commit -m "Changes Committed"
séparément. Vous pouvez exécuter plusieurs commandes ensemble, mais la séquence est importante ici. Comment si vous voulez pousser les modifications sur le serveur distant avec la mise en scène et la validation, vous pouvez le faire comme indiqué,
git add . && git commit -m "Changes Committed" && git push origin master
Au lieu de cela, si vous modifiez la séquence et placez le push
à la première, elle sera exécutée en premier et ne donnera pas le push souhaité après la mise en scène et la validation simplement parce qu'elle a déjà été exécutée en premier.
&&
exécute la deuxième commande sur la ligne lorsque la première commande revient avec succès, ou avec un niveau d'erreur de 0. L'opposé de &&
est||
, qui exécute la deuxième commande lorsque la première commande échoue, ou avec un niveau d'erreur de 1.
Vous pouvez également créer alise as git config --global alias.addcommit '!git add -a && git commit -m'
et l'utiliser commegit addcommit -m "Added and commited new files"
Excellentes réponses, mais si vous recherchez une ligne unique, faites tout, vous pouvez concaténer, alias et profiter de la commodité:
git add * && git commit -am "<commit message>"
Il s'agit d'une seule ligne mais de deux commandes, et comme mentionné, vous pouvez alias ces commandes:
alias git-aac="git add * && git commit -am "
(l'espace à la fin est important) car vous allez paramétrer la nouvelle commande main courte.
À partir de ce moment, vous utiliserez cet alias:
git-acc "<commit message>"
Vous dites essentiellement:
git, ajoutez pour moi tous les fichiers non suivis et validez-les avec ce message de validation donné.
J'espère que vous utilisez Linux, j'espère que cela vous aidera.
Vous pouvez écrire un petit script (regardez la réponse de Ian Clelland) appelé git-commitall
qui utilise plusieurs commandes git pour effectuer ce que vous voulez faire.
Placez ce script dans votre n'importe où dans votre $PATH
. Vous pouvez l'appeler par git commitall
... très pratique!
Trouvé ici (question et toutes les réponses malheureusement supprimées, uniquement visible avec une grande réputation)