Git adalah sistem kontrol versi terdistribusi , sedangkan Subversion adalah sistem kontrol versi terpusat (client-server). Mereka bekerja secara berbeda; terbiasa dengan itu. Harap baca jawaban saya yang menjelaskan konsekuensi dari perbedaan itu dengan pertanyaan yang setarasvn status -u di StackOverflow.
Mengulangi diri sendiri sedikit: dalam sistem kontrol versi terpusat (seperti CVS atau Subversion) hampir semua perintah diproses di server , dan melibatkan jaringan. Sangat sedikit perintah yang dijalankan secara lokal. Perhatikan bahwa untuk memiliki kinerja yang baik dari "status svn" dan "svn diff" Subversion menyimpan 'salinan asli' dari versi check-out pada klien, tidak perlu melibatkan transfer jaringan untuk operasi umum tersebut (ini berarti bahwa Subversion checkout = 2 x ukuran direktori kerja setidaknya).
Dalam sistem kontrol versi terdistribusi (seperti Git, Mercurial atau Bazaar), di mana Anda memiliki salinan lokal (klon) dari seluruh repositori, hampir semua perintah dilakukan pada klien . Sangat sedikit perintah yang memerlukan koneksi jaringan ke repositori lain (ke server).
Jumlah perintah yang dapat Anda lakukan di server terbatas.
- Anda dapat membuat daftar semua referensi pada remote dengan " git ls-remote <URL>".
- Anda bisa mendapatkan snapshot dari (bagian) repositori (jika server jarak jauh mengaktifkannya) dengan
" git archive --remote = <URL> HEAD".
- Anda hanya dapat mengkloning beberapa commit terakhir (disebut "clone dangkal") dengan
" git clone --depth = 1 <URL>".
- Jika server menyediakan antarmuka web git ke repositori, Anda dapat menggunakannya untuk menjelajah.
git cloneadalah mengambil hanya satu revisi dengan meneruskan--depth 1. Hal ini untuk menghindari kemungkinan pengambilan histori dalam jumlah besar, dan akan cukup untuk menjawab pertanyaan seperti "file mana yang ada dalam revisiabcdef1234567890?"