Sobes.tech
Senior

Оё фарқ байни git pull ва git fetch вуҷуд дорад?

sobes.tech AI

Ҷавоб аз AI

Бале, фарқ вуҷуд дорад:

  • git fetch — тағйиротҳоро аз репозитории дуркашӣ мегирад, ишораҳои маҳаллии шохаҳоро навсозӣ мекунад, аммо онҳоро бо шохаи ҳозираи шумо мепайвандад. Ин амалиёт бехатар аст, ки ба шумо имкон медиҳад, ки дар бораи он чӣ дар сервер тағйир ёфтааст, пеш аз ворид кардани тағйиротҳо, маълумот гиред.

  • git pull — ин командаест, ки аввал git fetch мекунад, ва сипас кӯшиш мекунад, ки ин тағйиротҳоро автоматӣ мепайвандад (merge) ё rebase кунад ба шохаи ҳозираи шумо. Ин роҳи бештар "автоматӣ" барои навсозии шохаи маҳаллии шумо мебошад.

Масалан:

# Актуализатсияҳоро гир, аммо шохаи ҳозираро тағйир надиҳ
git fetch origin

# Тағйиротҳоро бин,
git log HEAD..origin/main

# Тағйиротҳоро ба шохаи ҳозира мепайвандад
git merge origin/main

# Ё инро бо як амр иҷро кун
git pull origin main

Истифодаи git fetch муфид аст, вақте ки шумо мехоҳед, ки равандро назорат кунед ва аз муноқишаи ногаҳонӣ дурӣ кунед.