Mengapa saya harus mendorong jika saya bekerja sendirian di repositori lokal?

21

Saya berinteraksi dengan Git melalui GitHub untuk Windows , yang lucu karena saya tidak akan pernah mendorong repositori saya ke GitHub. Saya sedang mengerjakannya sendiri dan ini dimaksudkan untuk digunakan hanya oleh saya. Saya perhatikan bahwa komit saya terdaftar di bawah "komit yang tidak disinkronkan" dan di bawah "sejarah" dikatakan "tidak ada komit". Yang membawa saya ke pertanyaan, apa yang akan saya capai dengan mendorong kecuali komitmen saya yang tercantum di bawah "sejarah"?

Moshe Revah
sumber
14
Ada satu kekurangan yang signifikan dalam pertanyaan yang layak ditunjukkan: jika Anda belum mendorong apa pun dari jarak jauh, semua pekerjaan Anda ada di repositori pada disk lokal. Kehilangan mesin Anda, kehilangan semua yang pernah Anda lakukan.
Lars Viklund

Jawaban:

40

Secara teknis Anda benar - tidak perlu mendorong jika Anda tidak membagikan kode dengan siapa pun.

Kemudian lagi, laptop Anda memiliki hard drive yang dibuat oleh penawar terendah. Rumah Anda bisa terbakar sebelum hard drive gagal. Anda mungkin ingin melihat kode Anda dari jarak jauh. Atau bahkan membaginya dengan seseorang.

Sekarang, dengan Github, mereka membutuhkan semuanya untuk umum atau Anda harus membayar untuk repositori pribadi. Jadi jika Anda ingin menyimpannya sendiri, Anda mungkin ingin melihat bitbucket yang memungkinkan Anda melakukan git tetapi juga memiliki repo pribadi gratis.

Opsi lain adalah menyimpan repositori git Anda di suatu tempat yang didukung dari jarak jauh. Tetapi ada beberapa keuntungan melakukan ini daripada hanya menggunakan penyedia cloud SCM hari ini.

Wyatt Barnett
sumber
BitBucket menawarkan sejumlah repo pribadi yang tidak terbatas secara gratis .
Ada banyak alasan untuk mendorong. Alur kerja benar-benar tidak banyak berubah. Anda bekerja komit, komit, komit, selesaikan alur kerja dan tekan ...
Rig
7

Ada alasan lain Anda ingin mendorong ke repo (bahkan jika itu, dalam satu atau lain cara, lokal): workstation .

Saya tidak tahu tentang Anda, tetapi saya bekerja di 4 komputer berbeda (1 PC di rumah, 1 Laptop, 1 Office PC, dan 1 Office Laptop) dan mendorong perubahan ke server Git yang diatur dengan benar di server perusahaan saya membuat sinkronisasi cepat dan tanpa rasa sakit. Karena Git adalah DVCS, itulah yang memanfaatkannya: itu bukan hanya cadangan, tetapi semua basis kode berbeda yang saya kerjakan dapat dengan mudah digabungkan, diperiksa, dan dianalisis.

Ini bisa bersifat lokal jika, misalnya, PC di rumah Anda adalah "server" (atau asal) dan Anda memiliki laptop di rumah - dengan cara itu Anda dapat dengan mudah tetap melakukan sinkronisasi.

Sidenote : Orang sering mengatakan "Saya lebih suka menggunakan Dropbox (atau layanan sinkronisasi lainnya)". Sejumlah besar objek yang dimiliki repo Git membuatnya konyol menggunakan Dropbox seperti itu. Itu pilihan, tapi saya tidak akan mengatakan yang baik.

AeroCross
sumber
+1, saya pasti akan melakukan hal yang sama dalam kasus Anda. Apa yang Anda lakukan jika Anda lupa mendorong di rumah dan sekarang sedang bekerja?
Moshe Revah
2
@Zippoxer Fokus pada tugas lain dan bergabung nanti.
bytebuster
Persis, apa yang dikatakan @bytebuster. Itulah keindahan dari DVCS! (Meskipun, dengan latihan yang cukup, Anda tidak akan lupa lagi!)
AeroCross
Atau: Bekerjalah di proyek sampingan / hobi untuk bersantai atau mengeksplorasi ide-ide baru dll. :-)
johannes
6

Sebagai SCM terdistribusi, git membedakan antara konsep 'buat snapshot dari copy pekerjaan' (komit) dan 'sinkronkan repositori' (push / pull / fetch).

Jika Anda hanya memiliki satu klon lokal dari repositori Anda, maka tidak masuk akal untuk mendorong. Namun, dengan github, Anda memang memiliki klon lain (yang ada di github), dan mendorong perubahan Anda setidaknya memiliki satu keuntungan: cadangan. Jika komputer Anda mati, Anda masih memiliki semua yang didorong sejauh ini di github.

Tentu saja, itu bukan tujuan utama github; github dimaksudkan untuk berbagi kode, jadi jika proyek Anda menggunakan github, Anda dapat mengizinkan orang lain untuk menarik dari sana, mengkloning proyek Anda, bertindak atas permintaan tarik dari klon mereka, atau bahkan memberi orang lain tepercaya akses push ke repositori Anda.

Alasan lain untuk mendorong adalah jika Anda menggunakan beberapa klon lokal. Ini dapat berguna untuk berbagai hal: misalnya, Anda mungkin ingin bekerja pada dua cabang yang berbeda secara bersamaan, atau Anda mungkin ingin mencoba operasi yang mungkin merusak pada repositori Anda; jika semua berfungsi sebagaimana mestinya, Anda menyimpan klon yang dimodifikasi (atau mendorong perubahan Anda kembali ke repo asli), tetapi jika semuanya berjalan ke selatan, Anda bisa menghapus klon yang kacau dan kembali ke yang asli (yang masih tidak berubah) .

Beberapa orang bahkan menggunakan git untuk penyebaran: versi produksi juga merupakan repo git, dan memperbarui ke versi yang lebih baru adalah masalah mengambil dan checkout (jelas, ini hanya berfungsi jika Anda tidak memerlukan langkah pembangunan). Saya tidak akan merekomendasikan itu untuk hal-hal serius, tetapi untuk hal-hal kecil ini adalah solusi yang sederhana dan pragmatis.

tammmer
sumber