Saya sangat sering mengerjakan beberapa fitur proyek saya sehingga saya perlu istirahat sebelum itu cukup baik untuk komit. Namun, saya menggunakan dua komputer berbeda setiap hari untuk membuat kode (laptop saya dan desktop lab penelitian saya). Misalnya: Saya sedang mengerjakan fitur di rumah, lalu saya berhenti dan pergi ke lab saya.
Saya tidak ingin mencampur sinkronisasi cloud (mis. Dropbox) dengan pelacakan jarak jauh GitHub.
Saya hanya melakukan kondisi kode saya yang belum selesai (dan berantakan) sebelumnya (dan mendorongnya) hanya untuk tujuan menariknya di komputer lain untuk melanjutkan pekerjaan. Saya cukup yakin ini praktik yang buruk.
Namun, hari ini, saya menemukan git stash
sedikit setelah Googling. Tampaknya sebagai solusi sempurna untuk apa yang saya butuhkan.
Namun, dokumentasi tidak mengatakan apakah itu masuk ke github setelah saya mendorong perubahan saya. Selain itu, saya ingin tahu apakah ada cara yang lebih efisien untuk mencapai mobilitas yang saya butuhkan.
Terima kasih sebelumnya!
Jawaban:
Tidak apa-apa untuk melakukan pekerjaan yang belum selesai berantakan. Lakukan pekerjaan Anda di cabang topik. Berkomitmen awal, dan komit sering. Baca di Kapan untuk mengkomit kode? untuk beberapa pedoman tentang kapan membuat komitmen. Khusus untuk Git, komit ke cabang topik dan dorong sesering yang Anda inginkan.
Jika cabang topik ini hanya diperuntukkan bagi Anda, komit dan dorong kode yang rusak. Anda hanya harus menunda mendorong kode yang rusak ke cabang yang digunakan oleh orang lain. Jangan ragu untuk memecahkan kode Anda sendiri.
sumber
Stash dimaksudkan untuk penggunaan lokal, sebagai tempat sementara untuk meletakkan barang saat Anda bermain-main dengan cabang.
Jika Anda satu-satunya yang bekerja pada cabang, tidak ada masalah dengan melakukan kode yang rusak. Apa yang saya lakukan ketika dalam situasi yang sama adalah melakukan komit yang rusak, kemudian setelah menariknya di lokasi lain, lakukan
git reset HEAD~1
untuk membatalkannya. Tentu saja, ini membutuhkan penggunaan--force
pada Andapulls
danpushes
ketika Anda mengubah lokasi.Atau saya hanya menunggu sampai komit pertama saya dan melakukan a
git commit --amend
. Atau saya hanya menghancurkan semua komit yang rusak saat saya melakukan cabang fitur. Atau saya hanya tidak khawatir tentang beberapa komitmen yang jelas-jelas rusak dalam sejarah saya, karena saya cenderung tidak pergi sampai saya berada di tempat pemberhentian yang bagus. Ada banyak pilihan.sumber
--amend
sehingga diperlukan--force
untuk dorongan, meskipun. Lebih baik komit hanya ke cabang yang dibuang.stash
tidak benar-benar memuaskan untuk apa pun selain membersihkan direktori kerja Anda untuk "membatalkan sambungan cabang Anda"; jika Anda tidak segerastash pop
menyatakan kembali maka hal-hal akan menjadi sangat membingungkan.Jika ada pekerjaan aktual untuk diselamatkan, bahkan jika itu tidak baik untuk entri repo permanen, itu masih harus komit. Bahkan, saya tidak pernah meninggalkan direktori kerja saya dalam keadaan yang tidak di bawah kontrol versi - saya menggunakan beberapa skrip Python yang sangat sederhana untuk menyimpan setiap perubahan sebagai komit sementara. Jika Anda ingin mencobanya, berikut ini yang harus dilakukan:
git-tmp-commit
. Secara otomatis akan melakukan semua perubahan ke cabang baru dan unik.ccd
skrip, yang benar-benar memeriksa semuanya dari awal ke folder sementara , secara otomatis memilih cabang terbaru ... tetapi Anda juga dapat secara manual mengambil dan checkout cabangtemporary-commits/original-branch/YYYY-MM-DD...
dari klon repo yang ada.git-tmp-commit -r
. Ini akan membawa Anda kembali ke cabang asli † (mis.master
) Dan meninggalkan perubahan komit sementara di direktori kerja, sehingga Anda dapat melanjutkan di sini sampai waktunya untuk komit yang tepat (atau sementara, jika Anda harus pergi lagi).† Cara penulisan skrip saat ini, ini hanya berfungsi jika tidak ada cabang
master
di repo checkout . Jadi ragu, Anda harusgit branch -d master
; ini jelas tidak benar-benar ideal ...sumber