Apa perbedaan antara melakukan (setelah mkdir repo
dan cd repo
):
git init
git remote add origin git://github.com/cmcculloh/repo.git
git fetch --all
git pull origin master
dan
git clone git://github.com/cmcculloh/repo.git
Maksud saya, jelas satu lebih pendek, tetapi selain itu pada dasarnya mereka melakukan hal yang sama?
git clone
adalah cara Anda mendapatkan salinan lokal dari repositori yang ada untuk dikerjakan. Ini biasanya hanya digunakan sekali untuk repositori yang diberikan, kecuali jika Anda ingin memiliki beberapa salinan yang berfungsi. (Atau ingin mendapatkan salinan bersih setelah mengacaukan salinan lokal Anda ...)git pull
(ataugit fetch
+git merge
) adalah cara Anda memperbarui salinan lokal itu dengan komit baru dari repositori jarak jauh. Jika Anda berkolaborasi dengan orang lain, ini adalah perintah yang akan sering Anda jalankan.Seperti contoh pertama Anda menunjukkan, adalah mungkin untuk meniru
git clone
dengan bermacam-macam perintah git lain, tetapi sebenarnya tidak demikian halnya dengangit pull
melakukan "pada dasarnya hal yang sama" sepertigit clone
(atau sebaliknya).sumber
Dalam bahasa awam kita dapat mengatakan:
sumber
git clone
berarti Anda membuat salinan repositori di sistem Anda.git fork
berarti Anda menyalin repositori ke akun Github Anda.git pull
berarti Anda mengambil repositori yang dimodifikasi terakhir.git push
berarti Anda mengembalikan repositori setelah memodifikasinya.Dalam istilah awam:
git clone
sedang mengunduh dangit pull
menyegarkan.sumber
klon : menyalin repositori server jarak jauh ke mesin lokal Anda.
pull : dapatkan perubahan baru yang telah ditambahkan ke mesin lokal Anda.
Inilah bedanya.
Klon umumnya digunakan untuk mendapatkan salinan repo jarak jauh.
Tarik digunakan untuk melihat kode tim lain ditambahkan, jika Anda bekerja dalam tim.
sumber
git clone digunakan hanya untuk mengunduh apa yang saat ini bekerja pada repositori server jarak jauh dan menyimpannya di folder mesin Anda di mana proyek itu ditempatkan. Sebagian besar digunakan hanya ketika kami akan mengunggah proyek untuk pertama kalinya. Setelah itu tarik adalah pilihan yang lebih baik.
git pull pada dasarnya adalah operasi (klon (unduh) + gabungan) dan sebagian besar digunakan ketika Anda bekerja sebagai kerja tim. Dengan kata lain, ketika Anda menginginkan perubahan terbaru dalam proyek itu, Anda dapat menarik.
sumber
Miss Clone: Saya mendapatkan salinan baru untuk lokal.
Mr Pull: Saya sudah memilikinya secara lokal, saya baru saja memperbaruinya.
Nona Clone: Saya bisa melakukan apa yang Anda lakukan! Anda hanyalah himpunan bagian saya.
Tuan Tarik: Ditto!
Miss Clone: Tidak, Anda tidak membuat. Inilah yang saya lakukan:
Anda hanya melakukan # 3, dan kemudian Anda bergabung, yang tidak perlu saya lakukan (milik saya masih baru).
Mr Pull: Celana cerdas, bukan masalah besar, saya akan melakukan "git init" pertama! Lalu kita sama. Ditambah lagi, saya memiliki kemampuan 'menggabungkan' ekstra pada repo yang ada! Yang membuat saya perintah yang paling banyak digunakan di Git;)
Pembuat git: Pegang kudamu Tuan Tarik, jika --bare atau --mirror digunakan dengan klon atau init, penggabunganmu tidak akan terjadi. Tetap hanya-baca.
sumber
Hmm, apa yang hilang untuk melihat cabang jarak jauh "4.2" ketika saya menarik, seperti yang saya lakukan ketika saya mengkloning? Sesuatu jelas tidak identik.
vs.
sumber
URL git clone ---> Proyek lengkap atau repositori akan diunduh sebagai direktori terpisah. dan bukan hanya perubahan URL tarik git ---> fetch + merge -> Itu hanya akan mengambil perubahan yang telah dilakukan dan bukan keseluruhan proyek
sumber
Sementara
git fetch
perintah akan mencatat semua perubahan di server yang belum Anda miliki, itu tidak akan mengubah direktori kerja Anda sama sekali. Itu hanya akan mendapatkan data untuk Anda dan membiarkan Anda menggabungkannya sendiri. Namun, ada perintah yang disebutgit pull
yang pada dasarnyagit fetch
diikuti olehgit merge
dalam kebanyakan kasus.Baca selengkapnya: https://git-scm.com/book/en/v2/Git-Branching-Remote-Branches#Pulling
sumber
Klon -: Ini akan membuat duplikat persis dari proyek repositori jarak jauh Anda di mesin lokal Anda.
Tarik -: Misalkan dua atau lebih dari dua orang berbagi repositori yang sama. (Misalkan nama orang lain adalah Syam) (Repositori adalah tempat di mana proyek Anda ada di Github) Jadi jika Syam melakukan beberapa perubahan dalam proyek yang sama di lokalnya dan mendorongnya ke repositori jarak jauh Jadi apa pun perubahan yang dilakukan Syam, perubahan-perubahan itu akan tidak mencerminkan di lokal Anda. Jadi untuk mencerminkan perubahan baru di lokal Anda, Anda harus menggunakan git pull. Secara keseluruhan kami menggunakan git pull untuk memperbarui proyek.
Jadi pada dasarnya kami menggunakan git clone hanya sekali, sedangkan kami menggunakan git pull berkali-kali.
sumber