Opsi terbaik
Mungkin cara paling bersih, paling membingungkan, dan paling aman untuk mendorong ke repositori jarak jauh non-telanjang Anda, adalah mendorong ke cabang khusus di remote yang mewakili cabang laptop Anda.
Mari kita lihat kasus paling sederhana, dan anggap Anda hanya memiliki satu cabang di setiap repo: master. Saat Anda mendorong repo jarak jauh dari laptop Anda, alih-alih mendorong master -> master, push master -> laptop-master (atau nama yang serupa). Dengan cara ini, push tidak mempengaruhi cabang master yang saat ini sedang diperiksa di repo jarak jauh. Untuk melakukan ini dari laptop, perintahnya cukup sederhana:
git push origin master:laptop-master
Ini berarti bahwa cabang master lokal akan didorong ke cabang bernama "laptop-master" di repositori jarak jauh. Di repo jarak jauh Anda, Anda akan memiliki cabang baru bernama "laptop-master" yang kemudian dapat Anda gabungkan menjadi master jarak jauh saat Anda siap.
Opsi Alternatif
Mungkin juga untuk hanya mendorong master -> master, tetapi mendorong ke cabang repo non-telanjang yang saat ini check-out umumnya tidak disarankan, karena dapat membingungkan jika Anda tidak mengerti apa yang sedang terjadi. Ini karena mendorong ke cabang check-out tidak memperbarui pohon kerja, jadi memeriksa git status
di cabang check-out yang didorong ke dalam akan menunjukkan perbedaan yang berlawanan persis seperti apa yang baru-baru ini didorong. Terutama akan membingungkan jika pohon kerja kotor sebelum dorongan itu dilakukan, yang merupakan alasan besar mengapa ini tidak dianjurkan.
Jika Anda ingin mencoba hanya mendorong master -> master, maka perintahnya adalah:
git push origin
Tetapi ketika Anda kembali ke repo jarak jauh, kemungkinan besar Anda ingin melakukan suatu git reset --hard HEAD
untuk menyinkronkan pohon kerja dengan konten yang didorong. Ini bisa berbahaya , karena jika ada perubahan yang tidak dikomit di pohon kerja jarak jauh yang Anda ingin simpan akan menghapusnya. Pastikan Anda tahu apa konsekuensi dari ini sebelum Anda mencobanya, atau setidaknya buat cadangan terlebih dahulu!
EDIT Sejak Git 2.3, Anda dapat menggunakan "push-to-deploy" git push: https://github.com/blog/1957-git-2-3-has-been-released . Tetapi mendorong ke cabang terpisah dan kemudian menggabungkan biasanya lebih baik karena melakukan penggabungan aktual (karenanya bekerja dengan perubahan yang tidak dikomit seperti halnya penggabungan).