Kedua-dua git fetch dan git pull boleh mengemas kini repositori jauh kepada yang tempatan Jadi apakah perbezaan di antara mereka. Terdapat beberapa konsep yang perlu disebutkan untuk menjelaskan isu ini.
FETCH_HEAD: Ia adalah pautan versi, direkodkan dalam fail tempatan, menunjuk ke versi akhir cawangan yang telah dikeluarkan dari gudang jauh.
commit-id: Selepas setiap kerja tempatan selesai, operasi git commit akan dilakukan untuk menyimpan kerja semasa ke repo tempatan Pada masa ini, commit-id akan dijana, iaitu nombor siri yang mengenal pasti secara unik versi. Selepas menggunakan git push, nombor siri ini juga akan disegerakkan ke gudang jauh.
Dengan konsep di atas, mari bercakap tentang git fetch
git fetch: Ini akan mengemas kini id komit terkini cawangan yang terkandung dalam semua repositori jauh dalam git remote, dan merekodkannya dalam fail .git/FETCH_HEAD
Cara git fetch mengemas kini repositori jauh adalah seperti berikut:
git fetch origin master:tmp <span class="hljs-comment"> //在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支</span> git diff tmp <span class="hljs-comment"> //来比较本地代码与刚刚从远程下载下来的代码的区别</span> git <span class="hljs-built_in">merge</span> tmp<span class="hljs-comment"> //合并temp分支到本地的master分支</span> git branch -d temp<span class="hljs-comment"> //如果不想保留temp分支 可以用这步删除</span>
(1) Jika anda menggunakan git fetch secara langsung, langkah-langkahnya adalah seperti berikut:
(2)git fetch origin
Hanya tentukan alat kawalan jauh secara manual untuk diambil. Apabila tiada cawangan ditentukan, ia biasanya lalai untuk menguasai
(3)git fetch origin dev
Tentukan jauh dan FETCH_HEAD, dan hanya tarik komit cawangan ini.
git pull: Pertama, berdasarkan rekod FETCH_HEAD setempat, bandingkan rekod FETCH_HEAD setempat dengan nombor versi gudang jauh, kemudian gunakan git fetch untuk mendapatkan data versi berikutnya bagi cawangan terpencil yang ditunjuk pada masa ini, dan kemudian gunakan git merge untuk menggabungkannya dengan Merge cawangan semasa tempatan. Jadi boleh dianggap bahawa git pull adalah gabungan dua langkah git fetch dan git merge.
Penggunaan git pull adalah seperti berikut:
git pull <span class="hljs-tag"><<span class="hljs-title">远程主机名</span>></span> <span class="hljs-tag"><<span class="hljs-title">远程分支名</span>></span>:<span class="hljs-tag"><<span class="hljs-title">本地分支名</span>></span> //取回远程主机某个分支的更新,再与本地的指定分支合并。
Oleh itu, berbanding dengan git pull, git fetch adalah bersamaan dengan mendapatkan versi terkini daripada alat kawalan jauh ke tempatan, tetapi ia tidak akan bergabung secara automatik. Jika anda perlu menggabungkan git fetch secara selektif adalah pilihan yang lebih baik. Apabila kesannya sama, git pull akan menjadi lebih cepat.
Atas ialah kandungan terperinci Ketahui lebih lanjut tentang perbezaan antara git fetch dan git pull. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!