git add, comite și împingeți comenzi într-o singură?

Există vreo modalitate de a folosi aceste trei comenzi într-o singură?

git add .
git commit -a -m "commit" (do not need commit message either)
git push

Uneori am'm schimbarea doar o scrisoare, CSS padding sau ceva. Totuși, trebuie să scrie toate cele trei comenzi pentru a împinge modificări. Există multe proiecte în cazul în care nu'm numai un împingător, astfel încât această comandă ar fi minunat!

Comentarii la întrebare (7)

Clădirea de pe @Gavin's răspuns:

Face lazygit o funcție în loc de un nume fals vă permite să-l treacă un argument. Am adăugat următoarele meu .bashrc (sau .bash_profile dacă Mac):

function lazygit() {
    git add .
    git commit -a -m "$1"
    git push
}

Acest lucru vă permite pentru a oferi o comite mesaj, cum ar fi

lazygit "My commit msg"

Ai putea, desigur, carne de vită acest lucru chiar și mai mult, prin acceptarea chiar mai multe argumente, cum ar fi loc de la distanță pentru a împinge, sau care ramură.

Comentarii (15)

Am sfârșit prin a adăuga un alias pentru a mea .gitconfig fișier:

[alias]
    cmp = "!f() { git add -A && git commit -m \"$@\" && git push; }; f"

Utilizare: git cmp "Lung comite mesajul merge aici"

Adaugă toate fișierele, apoi foloseste un comentariu pentru comiterea mesaj și-l împinge până la origine.

Cred că's o soluție mai bună pentru că aveți control asupra a ceea ce comite e mesajul.

Aliasul poate fi definit, de asemenea, de la linia de comandă, aceasta adaugă-l la dumneavoastră.gitconfig`:

git config --global alias.cmp '!f() { git add -A && git commit -m "$@" && git push; }; f'
Comentarii (9)

În timp ce sunt de acord cu Wayne Werner privire la îndoielile sale, acest lucru este punct de vedere tehnic o opțiune:

git config alias.acp '! git commit -a -m "commit" && git push'

Care definește un alias care ruleaza comit și "push". Folositi-l ca `git acp. Vă rugăm să fiți conștienți de faptul că astfel de "shell" alias-uri sunt întotdeauna rula de la rădăcina depozit git.

O altă opțiune ar putea fi pentru a scrie un post-comite cârlig care face push.

Oh, apropo, ai într-adevăr can trece argumente pentru a plăti pseudonime. Dacă vrei să treci la un custom comite mesaj, utilizați în loc de:

git config alias.acp '! acp() { git commit -a -m "$1" && git push ; } ; acp'

(Desigur, acum, va trebui să dea o comite mesaj: git acp "mesajul Meu merge aici!")

Comentarii (3)

Cred că s-ar putea înțelege greșit flux de lucru care git a fost proiectat pentru. (Pentru a clarifica/corect ce am vrut sa spun in comentariul, nu't nevoie de git add ., din comis -o, de obicei, servește același scop - de a adăuga orice modificări care nu au fost încă pus în scenă, dacă fișierele au fost adăugate deja)

De obicei te'll face ceva de genul asta:

# make some changes
$ git commit -a -m "Changed something"
# make some more changes
$ git commit -a -m "Changed something else"

spălare, clătire, repet, până nu'am terminat caracteristică X, sau're la un punct de oprire, sau doar doriți alte persoane pentru a vedea ce ai de'am făcut. Apoi faci

$ git push

Git nu este SVN - dar se pare că te're încercarea de a utiliza ca atare. S-ar putea găsi unele dintre resursele de la sfârșitul articolului aici a fi de folos.

Comentarii (12)

Eu folosesc acest lucru în mea .bash_profile

gitpush() {
    git add .
    git commit -m "$*"
    git push
}
alias gp=gitpush

Se execută ca

gp A really long commit message

Don't uita pentru a rula source ~/.bash_profile după salvarea alias.

Comentarii (1)

Puteți folosi script bash , alias set pentru a lansa orice comanda sau un grup de comenzi

git commit -am "your message" && git push 
Comentarii (2)

Configurat ca un alias în bash:

$ alias lazygit="git add .; git commit -a -m '...'; git push;";

Spune:

$ lazygit

(Pentru a face acest alias permanent, ai'd avea să-l includă în dumneavoastră .bashrc sau .bash_profile)

Comentarii (3)

Simpla solutie ar fi sa:

git commit -a -m "commit" && git push

git add este deja conținută într -un parametru de comis-o, dar dacă doriți puteți să vă conectați-le pe toate:

git add . && git commit -a -m "commit" && git push
Comentarii (0)

În Linux/Mac, acest lucru mult mai practică opțiune ar trebui să funcționeze, de asemenea,

git commit -am "IssueNumberIAmWorkingOn --hit Enter key
> A detail here --Enter
> Another detail here --Enter
> Third line here" && git push --last Enter and it will be there

Dacă sunteți de lucru pe un nou ramură a creat la nivel local, schimba git push "bucățică" cugit push-u originea branch_name`

Dacă doriți să editați comite mesaj în sistemul de editor atunci

git commit -a && git push 

se va deschide editorul și după ce salvați mesajul pe care-l va împinge, de asemenea, că.

Comentarii (0)

Puteți încerca gitu.

Pentru prima dată (node js trebuie să fie instalat):

npm install -g git-upload

După care:

gitu COMMIT_MSG

La problema celor trei comenzi la o dată.

Partea buna este ca ai don't trebuie să vă faceți griji atunci când reinstalați sistemul dvs. sau atunci când doriți pentru a face acest lucru pe calculatoare diferite și Nu modificarea fișierului este necesar. Acest lucru, de asemenea, de lucru pe diferite platforme (nu doar Linux și Mac, dar, de asemenea, sub Windows command prompt ca cmd " și "powershell) doar că trebuie să instalați npm" și " nodejs (git, desigur).

Comentarii (0)

Dacă fișierul este deja urmărită, atunci nu aveți nevoie pentru a rula git add, puteți scrie pur și simplu git commit -am 'mesajul'

Dacă nu doriți să scrie o comite mesaj s-ar putea lua în considerare a face ceva de genul

git commit-permite-gol-mesaj -am ''

Comentarii (0)

După cum sa menționat în acest răspunsul, puteți crea un git alias și atribui un set de comenzi pentru el. În acest caz, ar fi:

git config --global alias.add-com-push '!git add . && git commit -a -m "commit" && git push'

și să-l utilizați cu

git add-com-push
Comentarii (2)

Acest Rezultat

  • Încercați acest lucru: script Simplu o comandă pentru git add, git commit și git push

Deschizi CMD-ul pe Windows și inserați acest răspuns

`git commit -m "mesajul" . && git push origin master

Acest exemplu poza mea screenshot : https://i.stack.imgur.com/2IZDe.jpg

Comentarii (0)

Eu folosesc un fișier batch:

@ECHO OFF
SET /p comment=Comment:
git add *
git commit -a -m "%comment%"
git push
Comentarii (1)

Scrie un mic script numit gitpush.sh cu liniile de mai jos si adauga ~ director.

echo $1
git add .
git commit -m "$1"
git push

Acum, adăugați un alias în ~/.bashrc ca mai jos :

alias gitpush='~/gitpush'

Acum la orice depozit git scrie doar gitpush "mesaj" .

Comentarii (0)

Dacă utilizați VSCode, puteți descărca acest extensie care vă va permite să o facă într-o simplă comandă rapidă de la tastatură.

Comentarii (0)

Există unele probleme cu script-uri de mai sus:

shift "elimină" parametru $1, în caz contrar, "push" vor citi și "înțelege greșit".

Sfat meu :

git config --global alias.acpp '!git add-O && branchatu="$(git simbolic-ref CAP 2>/dev/null)" && branchatu=${branchatu##ref/capete/} && git commit -m "$1" && tura && git pull-u originea $branchatu && git push-u originea $branchatu'

Comentarii (0)

Atunci când doriți svn-comportament de git commit, folosi acest lucru în git pseudonime în dumneavoastră .gitconfig

comite = "!f() { git commit \"$@\" && git apăsare; };f"

Comentarii (0)

Daca're folosind pește coajă (clădire de pe btse's de răspuns):

Salvați acest fișier în termen de '~/.config/pește/funcții' ca 'quickgit.pește'. Creați directorul cu firme dacă aceasta nu există. '--git-dir=$PWD/.git' Asigură că vom rula git comenzi împotriva git proiect în care am sunat la funcția de

function quickgit # This is the function name and command we call
    git --git-dir=$PWD/.git add . # Stage all unstaged files
    git --git-dir=$PWD/.git commit -a -m $argv # Commit files with the given argument as the commit message
    git --git-dir=$PWD/.git push # Push to remote
end

Reporniți terminal, navigați la proiect, de a face modificări, și acum puteți apela 'quickgit "exemplu mesaj"'. Modificările vor fi acum adăugate, comise, și împingeți :).

De asemenea, poate fi găsit ca un rezumat aici: https://gist.github.com/Abushawish/3440a6087c212bd67ce1e93f8d283a69

Comentarii (0)

Există o mulțime de soluții bune deja, dar aici's o soluție care mi se pare mai elegant pentru modul în care vreau să lucrez:

Am pus un script în calea mea numit "git-a pus", care conține:

#!/bin/bash
git commit "$@" && git push -u

Care-mi permite să rulați:

git pus -am"mea comite mesaj"

..pentru a adăuga toate fișierele, le comit, și împingeți-le.

(Am adăugat, de asemenea, " u" pentru că îmi place să fac asta oricum, chiar dacă-l's nu se referă la acest subiect. Se asigură că în amonte de ramură este întotdeauna configurat pentru a trage.)

Îmi place această abordare, deoarece, de asemenea, vă permite să utilizați "git pune", fără a adăuga toate fișierele (skip " o"), sau cu orice alte opțiuni s-ar putea doresc să treacă pentru a comite. De asemenea, "pus" este un scurt geamantan de "push" și "comit"

Comentarii (0)