Seperti yang dijawab orang lain, dengan Git Anda tidak perlu peduli dengan kode yang belum selesai di cabang pribadi Anda. Namun, jika karena alasan tertentu, Anda benar-benar benar-benar tidak ingin pekerjaan Anda yang belum selesai menyentuh repo utama, Anda dapat memanfaatkan sifat terdistribusi Git!
Ada alat sederhana bernama git bundle
yang dapat membantu Anda dengan mudah melewati perubahan tanpa repositori pusat. Pertama, klon repo:
git clone https://github.com/octocat/Spoon-Knife.git working_copy_1
cd working_copy_1
buat beberapa perubahan dan komit ke cabang sementara:
git checkout -b tmp_branch
git commit -a -m "temporary changes"
Sekarang, bundel perubahan itu:
git bundle create ../tmp.bundle tmp_branch
Sekarang Anda memiliki file bundel yang dapat Anda kirim ke mesin baru Anda. Bagaimana Anda menggunakannya di sana? Mari kita membuat copy pekerjaan baru:
cd ..
git clone https://github.com/octocat/Spoon-Knife.git working_copy_2
cd working_copy_2
kita perlu memperlakukan bundel kita sebagai remote lain, sehingga kita dapat mengambil perubahan darinya
git remote add tmp ../tmp.bundle
git fetch tmp
karena intinya adalah untuk mentransfer perubahan tanpa meninggalkan jejak, kami ingin memasukkannya ke dalam copy pekerjaan untuk kehilangan komit temp:
git merge tmp/tmp_branch --squash
dan yang tersisa adalah menghapus remote sementara:
git remote remove tmp
BIOLA! Perubahan ditransfer ke copy pekerjaan baru tanpa meninggalkan jejak cabang atau komit!
Tapi sungguh - proses ini cukup panjang dan rumit. Ini Git, bukan SVN - seharusnya tidak ada alasan untuk tidak mendorong cabang pribadi Anda ke repo pusat.