Apakah ada jalan pintas untuk memberi tahu Git untuk mendorong cabang pelacakan saat ini ke asal?
Catatan: Saya tahu bahwa saya dapat mengubah perilaku push standar , tetapi saya mencari solusi ad-hoc yang tidak mengubah perilaku default.
Sebagai contoh, misalkan saya di cabang feature/123-sandbox-tests
saya akan menggunakan
git push origin feature/123-sandbox-tests
yang membosankan. Saya mencari jalan pintas, semacamnya
git push origin current
dimana git tahu arus itu feature/123-sandbox-tests
.
Sunting : Mulai dari versi 2.0, perilaku default git telah berubah menjadi perilaku yang lebih intuitif, yang ingin saya capai. Lihat pertanyaan SO ini untuk detailnya.
Sunting 2 : jawaban ceztko adalah jawaban terbaik karena memungkinkan untuk mendorong cabang saat ini, terlepas dari pengaturannya.
git push
hanya mendorong cabang saat ini, tetapi pada mesin lain, Anda mungkin secara tidak sengaja mendorong semua cabang yang cocok.co
, jadi jika saya mencoba bahkan menarik ke bawah dan kemudian memeriksa kode tanpa~/.gitconfig
file saya di VM itu, saya akan segera mengetahuinya. Itu membuat saya merasa cukup aman untuk mengubah push to defaultupstream
.@
, yang didokumentasikan sebagai alias yang valid untukHEAD
. (mis.git push -u origin @
)Anda dapat mengkonfigurasi git untuk mendorong ke cabang saat ini menggunakan perintah berikut
maka lakukan saja
ini akan mendorong kode ke cabang Anda saat ini.
sumber
push = refs/heads/current:refs/for/master/current
ke bagian 'remote' di .git / config? Artinya, apakah 'sekarang' adalah kata khusus di sini? Atau apakah ia akan mencari cabang yang disebut "saat ini"?git push -u origin feature_branch_name
untuk mengatur upstream / pelacakan! Jika Anda setidaknya menggunakan repositori jarak jauh.Anda harus melihat pertanyaan serupa di Perilaku default "git push" tanpa cabang yang ditentukan
Pada dasarnya ini menjelaskan cara mengatur perilaku default untuk mendorong cabang Anda saat ini hanya mengeksekusi
git push
. Mungkin yang Anda butuhkan adalah:git config --global push.default current
Pilihan lain:
sumber
Saya menggunakan alias seperti itu di config .bashrc saya
Pada perintah
$gpb
itu dibutuhkan nama cabang saat ini dan mendorongnya ke asal.Ini adalah alias saya yang lain:
sumber
Untuk apa nilainya, pintasan utama:
Di saya
.bash_profile
milikialias push="git push origin HEAD"
, jadi setiap kali saya mengetikpush
saya tahu saya mendorong ke cabang saat ini saya aktif.sumber
Jika Anda menggunakan git 1.7.x, Anda dapat menjalankan perintah berikut untuk mengatur cabang pelacakan jarak jauh.
Maka Anda cukup menggunakan
git push
untuk mendorong semua perubahan. Untuk jawaban yang lebih lengkap, silakan lihat jawaban yang diterima untuk pertanyaan serupa di sini.Jika Anda hanya ingin mendorong cabang saat ini dengan perintah push, maka Anda dapat mengubah perilaku push ke upstream:
sumber
git config --global push.default upstream
akan mengatur perilaku push untuk hanya mendorong cabang saat ini.Cara paling sederhana: jalankan
git push -u origin feature/123-sandbox-tests
sekali. Itu mendorong cabang seperti yang biasa Anda lakukan dan juga menyetel info pelacakan hulu di konfigurasi lokal Anda. Setelah itu, Anda bisagit push
mendorong cabang yang dilacak ke hulu jarak jauhnya.Anda juga dapat melakukan ini di konfigurasi sendiri dengan menetapkan
branch.<branch name>.merge
nama cabang jarak jauh (dalam kasus Anda sama dengan nama lokal) dan secara opsional,branch.<branch name>.remote
dengan nama jarak jauh yang ingin Anda dorong (default ke asal). Jika Anda melihat di konfigurasi Anda, kemungkinan besar sudah ada salah satu dari ini ditetapkanmaster
, sehingga Anda dapat mengikuti contoh itu.Akhirnya, pastikan Anda mempertimbangkan
push.default
pengaturannya. Ini default untuk "cocok", yang dapat memiliki hasil yang tidak diinginkan dan tidak terduga. Kebanyakan orang yang saya kenal menemukan "upstream" lebih intuitif, yang hanya mendorong cabang saat ini.Detail tentang masing-masing pengaturan ini dapat ditemukan di halaman manual git-config .
Setelah dipikir-pikir, saat membaca kembali pertanyaan Anda, saya pikir Anda tahu semua ini. Saya pikir apa yang sebenarnya Anda cari tidak ada. Bagaimana dengan fungsi bash, sesuatu seperti (belum diuji):
sumber
Dengan bantuan jawaban ceztko saya menulis fungsi pembantu kecil ini untuk membuat hidup saya lebih mudah:
Ini mendorong cabang saat ini ke asal dan juga mengatur cabang pelacakan jarak jauh jika belum diatur.
sumber