Apakah ada cara untuk menggunakan tiga perintah dalam satu?
git add .
git commit -a -m "commit" (do not need commit message either)
git push
Kadang-kadang saya'm hanya mengubah satu huruf, CSS padding atau sesuatu. Namun, saya harus menulis semua tiga perintah untuk mendorong perubahan. Ada banyak proyek-proyek di mana saya'm hanya satu pendorong, sehingga perintah ini akan mengagumkan!
Membangun off dari @Gavin's jawaban:
Membuat lazygit fungsi bukan alias memungkinkan anda untuk lulus argumen. Saya telah menambahkan baris berikut ke saya .bashrc (atau .bash_profile jika Mac):
function lazygit() {
git add .
git commit -a -m "$1"
git push
}
Hal ini memungkinkan anda untuk memberikan pesan komit, seperti
lazygit "My commit msg"
Anda tentu bisa daging sapi ini bahkan lebih dengan menerima bahkan lebih argumen, seperti yang tempat terpencil untuk mendorong, atau yang cabang.
Akhirnya saya menambahkan sebuah alias untuk saya `.gitconfig file:
[alias]
cmp = "!f() { git add -A && git commit -m \"[email protected]\" && git push; }; f"
Penggunaan: git cmp "Panjang pesan komit pergi di sini"
Menambahkan semua file, kemudian menggunakan komentar untuk pesan komit dan mendorong itu ke asal.
Saya pikir itu's solusi yang lebih baik karena anda memiliki kontrol atas apa yang komit pesan.
Alias dapat juga didefinisikan dari baris perintah, ini menambahkan untuk anda .gitconfig
:
git config --global alias.cmp '!f() { git add -A && git commit -m "[email protected]" && git push; }; f'
Sementara saya setuju dengan Wayne Werner pada-nya meragukan, secara teknis ini adalah sebuah pilihan:
git config alias.acp '! git commit -a -m "commit" && git push'
Yang mendefinisikan alias yang berjalan melakukan
dan push
. Menggunakannya sebagai git acp
. Perlu diketahui bahwa seperti "shell" alias selalu lari dari akar repositori git.
Pilihan lain mungkin untuk menulis posting-melakukan hook yang melakukan push.
Oh, by the way, kamu memang can melewati argumen untuk shell alias. Jika anda ingin lulus kustom pesan komit, bukan menggunakan:
git config alias.acp '! acp() { git commit -a -m "$1" && git push ; } ; acp'
(Tentu saja, sekarang, anda akan perlu untuk memberikan pesan commit: git acp "Saya pesan masuk di sini!"
)
Saya pikir anda mungkin salah paham alur kerja yang git dirancang untuk. (Untuk memperjelas/benar apa yang saya maksudkan dalam komentar, anda don't perlu git add .
, sejak commit
biasanya melayani tujuan yang sama - menambahkan setiap perubahan yang belum dipentaskan, jika file telah ditambahkan)
Biasanya anda'll melakukan sesuatu seperti ini:
# make some changes
$ git commit -a -m "Changed something"
# make some more changes
$ git commit -a -m "Changed something else"
cuci, bilas, ulangi, sampai anda've selesai fitur X, atau anda'kembali pada titik berhenti, atau anda hanya ingin orang lain untuk melihat apa yang anda've dilakukan. Kemudian anda lakukan
$ git push
Git adalah tidak SVN - tapi tampaknya bahwa anda're mencoba untuk menggunakannya seperti itu. Anda mungkin menemukan beberapa sumber daya di akhir artikel di sini untuk digunakan.
Saya menggunakan ini pada saya .bash_profile
gitpush() {
git add .
git commit -m "$*"
git push
}
alias gp=gitpush
Syaratnya, seperti
gp A really long commit message
Don't lupa untuk menjalankan source ~/.bash_profile
setelah menyimpan alias.
Di Linux/Mac, ini praktis banyak pilihan juga harus bekerja
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
Jika anda bekerja pada sebuah baru branch dibuat secara lokal, mengubah git push
potongan dengan git push-u origin branch_name
Jika anda ingin mengedit pesan komit dalam sistem editor lalu
git commit -a && git push
akan membuka editor dan setelah anda menyimpan pesan itu juga akan mendorong itu.
Anda dapat mencoba gitu.
Untuk pertama kalinya (node js harus diinstal):
npm install -g git-upload
Setelah itu:
gitu COMMIT_MSG
Untuk mengeluarkan tiga perintah sekaligus.
Hal yang baik adalah bahwa anda don't perlu khawatir ketika anda menginstal ulang sistem anda atau ketika anda ingin melakukan hal ini pada komputer yang berbeda dan Tidak ada modifikasi file yang dibutuhkan.
Ini juga bekerja pada platform yang berbeda (bukan hanya Linux dan Mac, tetapi juga Windows di bawah command prompt seperti cmd
dan powershell
) hanya bahwa anda harus menginstal npm
dan indonesia
(git
tentu saja).
Jika file sudah dilacak maka anda tidak perlu untuk menjalankan git add, anda hanya dapat menulis
git commit-am 'pesan'`
Jika anda tidak ingin menulis pesan commit anda mungkin mempertimbangkan untuk melakukan sesuatu seperti
git commit-izinkan-kosong-pesan -am ''
Seperti yang disebutkan dalam ini menjawab, anda bisa membuat git alias dan menetapkan satu set perintah untuk itu. Dalam kasus ini, itu akan menjadi:
git config --global alias.add-com-push '!git add . && git commit -a -m "commit" && git push'
dan menggunakannya dengan
git add-com-push
Buka CMD pada Windows dan paste jawaban ini
git commit-m "pesan anda" . && git push origin master`
Ini contoh gambar screenshot : https://i.stack.imgur.com/2IZDe.jpg
Menulis sebuah script kecil bernama gitpush.sh dengan di bawah garis dan menambahkan anda ~ direktori.
echo $1
git add .
git commit -m "$1"
git push
Sekarang tambahkan alias di ~/.bashrc seperti di bawah ini :
alias gitpush='~/gitpush'
Sekarang dari setiap repositori git hanya menulis gitpush "pesan" .
Ada beberapa masalah dengan script di atas:
shift "menghilangkan" parameter $1, jika tidak, "mendorong" akan membaca dan "salah paham itu".
Tip saya :
git config --global alias.acpp '!git add-A && branchatu="$(git simbolis-ref KEPALA 2>/dev/null)" && branchatu=${branchatu##ref/kepala/} && git commit-m "$1" && shift && git pull-u asal $branchatu && git push-u origin $branchatu'
Bila anda ingin svn-seperti perilaku git commit, menggunakan ini dalam git alias anda .gitconfig
komit = "!f() { git commit \"[email protected]\" && git push; };f"
Jika anda're menggunakan ikan shell (bangunan dari btse's jawaban):
Simpan file ini dalam '~/.config/ikan/fungsi' sebagai 'quickgit.ikan'. Membuat direktori jika itu tidak ada. '--git-dir=$PWD/.git' Memastikan bahwa kita menjalankan perintah git terhadap git proyek di mana kita disebut fungsi
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
Me-Restart terminal, arahkan ke proyek, membuat perubahan, dan sekarang anda dapat memanggil 'quickgit "contoh pesan",'. Perubahan sekarang akan ditambahkan, berkomitmen, dan push :).
Juga dapat ditemukan sebagai Inti berikut: https://gist.github.com/Abushawish/3440a6087c212bd67ce1e93f8d283a69
Ada banyak solusi yang baik sudah, tapi di sini's solusi yang saya temukan lebih elegan untuk cara yang saya inginkan untuk bekerja:
Aku meletakkan script di jalan saya disebut "git-masukan" yang berisi:
#!/bin/bash
git commit "[email protected]" && git push -u
Yang memungkinkan saya untuk menjalankan:
git put-am"saya pesan commit"
..untuk menambahkan semua file, komit mereka, dan mendorong mereka.
(Saya juga menambahkan "-u" karena aku ingin melakukan ini lagi pula, meskipun itu's tidak terkait dengan masalah ini. Hal ini memastikan bahwa hulu cabang selalu diatur untuk menarik.)
Saya menyukai pendekatan ini karena hal ini juga memungkinkan untuk menggunakan "git menempatkan" tanpa menambahkan semua file (melewatkan "-"), atau dengan pilihan lain yang mungkin ingin saya lulus untuk melakukan. Juga, "menempatkan" adalah portmanteau dari "mendorong" dan "melakukan"