Ce qui est frustrant, c'est que cela était auparavant possible et que c'était la syntaxe standard pour valider et ajouter de nouveaux fichiers: git commit -a Mais fidèle à la forme, la syntaxe git a changé. Il a confondu les utilisateurs existants (et cassé leurs scripts), éliminé les fonctionnalités utiles et remplacé un indicateur inutile.
fijiaaron
1
Il y en a un double à git add -A, git commit dans une seule commande? . La réponse acceptée ici est similaire à la réponse acceptée ici, mais suggère de créer un alias git pour raccourcir la saisie impliquée (et montre comment le faire).
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).
@NarendraJaggi git add -A && git commit -m "Your Message"
Dr.jacky
1
on pourrait le mettre dans son propre fichier .sh ou .bat et simplement l'utiliser comme une seule commande. Le message peut être param1
BlueWizard
Et vous pouvez également ajouter des raccourcis pour les commandes git de base dans votre .bashrc: alias gpl = 'git pull' alias gps = 'git push' alias gc = 'git commit' alias gs = 'git status' alias gd = 'git diff' alias ga = 'git add' alias gck = 'git checkout' alias gb = 'git branch' alias gl = 'git log' alias lcp = 'git format-patch -1 HEAD' alias resetToMaster = 'git reset --hard origin / master '
ni3
3
Dans PowerShell, remplacez "&&" par ";" pour exécuter les deux commandes, comme ceci:git add -A ; git commit -m "Your Message"
Rafael Miceli
415
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.
Cela ne répond pas réellement à la question, en fait spécifiquement (en gras pas moins) exclut l'un des éléments clés de la solution recherchée.
Arunas
6
N'ajoute ni ne valide les fichiers non suivis.
b15
3
Mais cela couvre la situation la plus typique lorsque vous vous engagez après "git add -A" et remarquez que vous avez oublié de changer quelque chose de petit dans le code. Je déteste écrire plusieurs fois le même message de commit à partir de zéro
KorbenDallas
mais le thread starter dit TOUS LES FICHIERS, donc, je pense que celui-ci ne compte pas
Frederick G. Sandalo
Et vous pouvez également ajouter des raccourcis pour les commandes git de base dans votre .bashrc: alias gpl = 'git pull' alias gps = 'git push' alias gc = 'git commit' alias gs = 'git status' alias gd = 'git diff' alias ga = 'git add' alias gck = 'git checkout' alias gb = 'git branch' alias gl = 'git log' alias lcp = 'git format-patch -1 HEAD' alias resetToMaster = 'git reset --hard origin / master '
ni3
26
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.
Après avoir exécuté cette commande, vous pouvez simplement taper git temppour 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 --amendla validation " des modifications afin de pouvoir continuer à travailler dessus, ou pour ajouter d'autres modifications au commit et / ou lui donner un nom correct.
Je détesterais travailler avec un référentiel rempli de messages de validation disant «aucun», et je rejetterais également tout RP sur cette base. Malheureusement, la seule façon d'apprendre l'importance d'avoir de bons messages de validation est lorsque vous devez revenir pour auditer quelque chose écrit il y a longtemps ("cette ligne cause un bug ... pourquoi a-t-elle été ajoutée, et casser si je le change / le supprime? ").
gregmac
1
Les commits avec «aucun» ne sont jamais destinés à rester longtemps. Normalement, je démarre ma propre branche de fonctionnalités, fais des micro-commits et les écrase en quelque chose de plus raisonnable avant une fusion. De toute évidence, les personnes qui commettent pour chaque fonction modifiée et qui ne se soucient pas d'un journal git complet n'ont pas besoin de cela.
SystematicFrank du
1
J'utilise 'wip' (abréviation de "work in progress") au lieu de 'none' à cet effet et je ne pousse ces commits vers mes succursales privées.
Sergej Koščejev
Ce n'est toujours pas utile, car finalement ces validations "wip" ou "none" en feront une branche que les autres personnes verront et pollueront le journal des messages. Si vous écrasez tous vos commits avant de pousser, ce serait acceptable, mais c'est toujours ennuyeux pour l'équipe.
Jordan
C'est une idée de grille, et en la combinant avec la réponse suivante, vous pouvez réellement obtenir la réponse 100% précise pour l'OP. J'ai en fait décrit les étapes nécessaires (en utilisant git-bash) dans ma réponse. ( stackoverflow.com/a/43442269/869239 )
VeRo
3
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é,
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"
Vous pouvez écrire un petit script (regardez la réponse de Ian Clelland) appelé git-commitallqui 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)
Le fil entier est une bonne lecture ... c'est pourquoi je l'ai lié ^^
tanascius
@Dimitri - malheureusement, certains étudiants ont décidé de supprimer ce fil utile. Il est toujours visible avec une grande réputation, donc je garde le lien ici.
Réponses:
Est-ce que
compter comme une "commande unique"?
Modifier en fonction de la réponse de @ thefinnomenon ci - dessous :
Pour l'avoir comme un
git alias
, utilisez:et valider tous les fichiers, y compris les nouveaux fichiers, avec un message avec:
Explication (à partir de la
git add
documentation ):la source
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 .
De man git-commit:
la source
J'utilise cette fonction:
Dans mon fichier de configuration zsh, je peux donc simplement faire:
Pour mettre en scène et valider automatiquement tous les fichiers.
la source
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:
http://git-scm.com/docs/git-add
http://git-scm.com/docs/git-commit
la source
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:
Créez un alias:
Ajoutez tous les fichiers et validez avec le message:
REMARQUE:
coa
est l'abréviation de tout engager et peut être remplacé par tout ce que votre cœur désirela source
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.
ou
Après cela, vous pouvez utiliser valider tous les fichiers ajoutés
avec cela, vous devez ajouter le message pour ce commit.
la source
Si vous voulez juste un moyen "rapide et sale" de cacher les modifications sur la branche courante, vous pouvez utiliser l'alias suivant:
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 utilisergit reset HEAD~
plus tard pour "annulergit 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.la source
J'ai dans ma config deux alias:
si je suis trop paresseux, je commets simplement tous les changements avec
et juste pour faire un commit rapide
coa signifie "commit all"
la source
Exécutez la commande donnée
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 courirgit add .
etgit 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é,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"
la source
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.
la source
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 pargit commitall
... très pratique!Trouvé ici (question et toutes les réponses malheureusement supprimées, uniquement visible avec une grande réputation)
la source
essayez d'utiliser:
la source