Existe-t-il un moyen d'utiliser ces trois commandes en une seule?
git add .
git commit -a -m "commit" (do not need commit message either)
git push
Parfois, je modifie une seule lettre, un remplissage CSS ou quelque chose. Pourtant, je dois écrire les trois commandes pour pousser les changements. Il y a beaucoup de projets où je ne suis qu'un pousseur, donc cette commande serait géniale!
Réponses:
S'appuyant sur la réponse de @ Gavin:
Faire de lazygit une fonction au lieu d'un alias vous permet de lui passer un argument. J'ai ajouté ce qui suit à mon .bashrc (ou .bash_profile si Mac):
Cela vous permet de fournir un message de validation, tel que
Vous pouvez bien sûr étoffer cela encore plus en acceptant encore plus d'arguments, tels que l'endroit éloigné vers lequel pousser ou la branche.
la source
$*
au lieu d'$1
enregistrer en tapant les guillemets:lazygit My commit msg
function dirtygit() { git add . git commit -a -m "$*" git push }
J'ai fini par ajouter un alias à mon
.gitconfig
fichier:Usage:
git cmp "Long commit message goes here"
Ajoute tous les fichiers, puis utilise le commentaire pour le message de validation et le pousse jusqu'à l'origine.
Je pense que c'est une meilleure solution car vous contrôlez le message de validation.
L'alias peut également être défini à partir de la ligne de commande, cela l'ajoute à votre
.gitconfig
:la source
!f() { ... }; f
exactement? Plus d'explications sur cette ligne rendraient la réponse encore meilleure.f
, puis l'appelle.git pull
au début pour que les fusions soient réduites.Bien que je sois d'accord avec Wayne Werner sur ses doutes, c'est techniquement une option:
Ce qui définit un alias qui s'exécute
commit
etpush
. Utilisez-le commegit acp
. Veuillez noter que de tels alias "shell" sont toujours exécutés à partir de la racine de votre référentiel git.Une autre option pourrait être d'écrire un hook post-commit qui fait le push.
Oh, au fait, vous pouvez en effet passer des arguments aux shell alias. Si vous souhaitez transmettre un message de validation personnalisé, utilisez plutôt:
(Bien sûr, maintenant, vous devrez donner un message de validation:
git acp "My message goes here!"
)la source
git
ajouté automatiquement les échappements (vérifié avecgit config -e
).Je pense que vous pourriez mal comprendre le workflow pour lequel git a été conçu. (Pour clarifier / corriger ce que je voulais dire dans le commentaire, vous n'avez pas besoin de le
git add .
, car ilcommit -a
sert généralement le même but - ajouter des modifications qui n'ont pas encore été mises en scène, si les fichiers ont déjà été ajoutés)En général, vous ferez quelque chose comme ceci:
laver, rincer, répéter jusqu'à ce que vous ayez terminé la fonction X, ou que vous soyez à un point d'arrêt, ou que vous vouliez simplement que d'autres personnes voient ce que vous avez fait. Alors tu fais
Git n'est pas SVN - mais il semble que vous essayez de l'utiliser en tant que tel. Vous trouverez peut-être certaines des ressources à la fin de l'article ici utiles.
la source
git add .
et cegit commit -a
n'est pas la même choseJ'utilise ceci dans mon .bash_profile
Il s'exécute comme
N'oubliez pas de courir
source ~/.bash_profile
après avoir enregistré l'alias.la source
Vous pouvez utiliser le script bash, définir un alias pour lancer n'importe quelle commande ou groupe de commandes
la source
Défini comme un alias dans bash:
Appeler:
(Pour rendre cet alias permanent, vous devez l'inclure dans votre .bashrc ou .bash_profile)
la source
La solution la plus simple serait de:
git add
est déjà contenu dans le paramètre -a de commit, mais si vous le souhaitez, vous pouvez tous les connecter:la source
Sous Linux / Mac, cette option très pratique devrait également fonctionner
Si vous travaillez sur une nouvelle branche créée localement, changez la
git push
pièce avecgit push -u origin branch_name
Si vous souhaitez modifier votre message de validation dans l'éditeur système,
ouvrira l'éditeur et une fois que vous aurez enregistré le message, il le poussera également.
la source
Vous pouvez essayer gitu .
Pour la première fois (le nœud js doit être installé):
Après ça:
Pour émettre ces trois commandes à la fois.
La bonne chose est que vous n'avez pas à vous inquiéter lorsque vous réinstallez votre système ou lorsque vous souhaitez le faire sur différents ordinateurs et aucune modification de fichier n'est nécessaire. Cela fonctionne également sur différentes plates-formes (pas seulement Linux et Mac, mais aussi Windows sous invite de commande comme
cmd
etpowershell
) juste que vous devez installernpm
etnodejs
(git
bien sûr).la source
Si le fichier est déjà suivi, vous n'avez pas besoin de l'exécuter
git add
, vous pouvez simplement écriregit commit -am 'your message'
Si vous ne voulez pas écrire de message de validation, vous pourriez envisager de faire quelque chose comme
git commit --allow-empty-message -am ''
la source
Ce résultat - Essayez ceci: Script simple une commande pour git add, git commit et git push
Ouvrez votre CMD sur Windows et collez cette réponse
git commit -m "your message" . && git push origin master
la source
Comme mentionné dans cette réponse, vous pouvez créer un alias git et lui affecter un ensemble de commandes. Dans ce cas, ce serait:
et l'utiliser avec
la source
Écrivez un petit script nommé gitpush.sh avec les lignes ci-dessous et ajoutez-le à votre répertoire ~.
Ajoutez maintenant un alias dans ~ / .bashrc comme ci-dessous:
Maintenant, à partir de n'importe quel dépôt git, écrivez simplement "message" gitpush.
la source
J'utilise un fichier batch:
la source
Il y a quelques problèmes avec les scripts ci-dessus:
shift "supprime" le paramètre $ 1, sinon, "push" le lira et "le comprendra mal".
Mon conseil:
la source
Lorsque vous voulez un comportement semblable à svn de git commit, utilisez-le dans vos alias git dans votre .gitconfig
commit = "!f() { git commit \"$@\" && git push; };f"
la source
Si vous utilisez une coquille de poisson (à partir de la réponse de btse):
Enregistrez ce fichier dans «~ / .config / fish / functions» sous «quickgit.fish». Créez le répertoire s'il n'existe pas. '--git-dir = $ PWD / .git' Garantit que nous exécutons les commandes git sur le projet git où nous avons appelé la fonction
Redémarrez le terminal, accédez au projet, apportez des modifications et vous pouvez maintenant appeler "quickgit" exemple de message "'. Les modifications seront désormais ajoutées, validées et poussées :).
Vous pouvez également trouver un Gist ici: https://gist.github.com/Abushawish/3440a6087c212bd67ce1e93f8d283a69
la source
Il existe déjà de nombreuses bonnes solutions, mais voici une solution que je trouve plus élégante pour la façon dont je veux travailler:
J'ai mis un script sur mon chemin appelé "git-put" qui contient:
Cela me permet de courir:
..pour ajouter tous les fichiers, les valider et les pousser.
(J'ai également ajouté le "-u" parce que j'aime le faire de toute façon, même s'il n'est pas lié à ce problème. Il garantit que la branche en amont est toujours configurée pour l'extraction.)
J'aime cette approche car elle permet également d'utiliser "git put" sans ajouter tous les fichiers (sauter le "-a"), ou avec toute autre option que je pourrais vouloir passer pour valider. De plus, "put" est un petit mot de "push" et "commit"
la source
Si vous utilisez VSCode, vous pouvez télécharger cette extension qui vous permettra de le faire dans un simple raccourci clavier.
la source
Si vous utilisez un Mac:
Démarrez Terminal Type "cd ~ /" pour accéder à votre dossier personnel
Tapez "touch .bash_profile" pour créer votre nouveau fichier.
Modifiez .bash_profile avec votre éditeur préféré (ou vous pouvez simplement taper "open -e .bash_profile" pour l'ouvrir dans TextEdit).
Copiez et collez ce qui suit dans le fichier:
Après cela, redémarrez votre terminal et ajoutez, validez et appuyez simplement sur une commande simple, par exemple:
la source
Pour les utilisateurs de MAC VSC, la meilleure configuration est:
1) appuyez sur 'shift + cmd + P' et tapez:
Appuyez sur ENTRÉE (cela installera la commande de code pour accéder facilement au bash_profile)
2) vous pouvez maintenant exécuter:
code ~/.bash_profile
pour ouvrir le bash_profile vide3) entrez une nouvelle fonction:
4) redémarrez maintenant VSC
5) Apportez une modification, enregistrez-la et tapez
lazygit message
pour exécuter les trois commandes simultanémentla source
Pour les utilisateurs de macOS:
Ouvrez votre terminal ou iTerm2 ou un autre terminal que vous utilisez.
Accédez à votre dossier de profil utilisateur avec la commande
~/
. C'est un dossier par défaut pour le.bash_profile
fichier:Tapez
nano .bash_profile
Cette commande ouvrira le.bash_profile
document (ou le créera s'il n'existe pas déjà) dans l'éditeur de texte le plus simple à utiliser pour le terminal -nano
.Vous pouvez maintenant apporter une modification simple au fichier. Collez ces lignes de code pour modifier votre invite de terminal:
Maintenant, enregistrez vos modifications en tapant
ctrl + o
et en appuyant sur Retour pour enregistrer. Quittez ensuitenano
en tapantctrl + x
.Nous devons maintenant activer vos modifications. Tapez
source .bash_profile
(ou. ~/.bash_profile
) et regardez votre changement rapide.Dans iTerm2,
Preferences/Profiles/General/Command
réglez surLogin Shell
etSend text at start
sursource ~/.bash_profile
. Vous n'avez donc pas besoin de le faire manuellement après chaque redémarrage de macOS.Informations d'identification: https://natelandau.com/my-mac-osx-bash_profile
la source
J'ai fait ce script .sh pour la commande
la source
Puisque la question ne spécifie pas quel shell, voici la version eshell basée sur les réponses précédentes. Cela va dans le fichier d'alias eshell, qui pourrait être dans ~ / .emacs.d / eshell / alias J'ai ajouté la première partie z https://github.com/rupa/z/ qui vous permet de cd rapidement dans un répertoire , afin que cela puisse être exécuté quel que soit votre répertoire actuel.
la source
Ajoutez
~/.bash_profile
pour ajouter, valider et pousser avec une seule commande:Usage:
Aucune citation n'est nécessaire, bien que vous ne puissiez pas utiliser de points-virgules ni de parenthèses dans vos messages de validation (les guillemets simples sont autorisés). Si vous le souhaitez, mettez simplement des guillemets doubles dans votre message, par exemple:
Pour créer un commentaire dans votre message, procédez comme suit:
Il existe également une fonction pour ajouter et valider de la même manière:
Fonctionne exactement de la même manière que la
g
fonction et a les mêmes contraintes. Mettez juste à lac
place. Par exempleVous pouvez également ajouter un alias pour pousser vers la télécommande:
Usage:
Cela équivaut à 2 lettres,
c
etp
vous utilisez tout en travaillant avec votre référentiel git. Ou vous pouvez utiliser à lag
place pour tout faire avec une seule lettre.Liste complète des alias et des fonctions: https://gist.github.com/matt360/0c5765d6f0579a5aa74641bc47ae50ac
la source
En s'appuyant sur la
lazygit
réponse, la solution suivante ajoute une vérification utilisateur pour vérifier les modifications avant de pousser. Il annulera les commandes en cas d'annulation. Et tout cela se produira si et seulement s'il y a des changements dans le référentiel local.la source
C'est parfait pour le regroupement de commandes.
Commandes de regroupement
la source
J'aime exécuter ce qui suit:
la source
;
devrait être remplacé par&&
dans votre commande, car le dernier n'exécutera lagit push
commande que s'il n'y a pas d'erreur sur la ou les commandes précédentes.J'ai trouvé cet
yolo
alias incroyable pour même soumettre un commentaire aléatoire au commit pendant que je suis paresseux. Cela fonctionne vraiment bien hors de la boîte, donc je fais justegit yolo
et toutes mes modifications sont poussées automatiquement.la source