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!
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ă.
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'
Î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!"
)
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.
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.
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
Î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ă" cu
git 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ă.
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).
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 ''
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
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
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" .
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'
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
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"