Avatar ·

كيفية تحديث الحزم الخارجية في Go بشكل صحيح؟ (go get, go mod tidy)

مرحباً بالجميع! لقد بدأت للتو في تعلم Go وانتقلت من JavaScript، حيث نقوم فقط بكتابة `npm update` لتحديث الحزم. في Go، أنا مرتبك قليلاً. لدي مشروع أستخدم فيه عدة مكتبات خارجية، مثل `github.com/gorilla/mux` و `github.com/jmoiron/sqlx`. أضفتها عبر `go get`، وظهرت إدخالات مع الإصدارات في `go.mod`. الآن أريد تحديث هذه الحزم إلى أحدث الإصدارات، لكنني لا أفهم كيفية القيام بذلك بشكل صحيح. جربت كتابة `go get -u`، لكن يبدو أنه يحدث كل شيء بشكل عشوائي، وبدأت تواجهني مشاكل في التوافق. كما سمعت عن `go mod tidy`، لكنني لست متأكداً من الغرض منه - هل يقوم فقط بتنظيف القمامة أم يقوم بالتحديث أيضاً؟ بالإضافة إلى ذلك، يربكني وجود الكثير من التجزئات في `go.sum`، وأخشى أن أتلفها عن طريق الخطأ. من فضلك، أخبرني ما هو التسلسل الصحيح للإجراءات لتحديث حزمة معينة (مثل `gorilla/mux` فقط)، وليس كل شيء دفعة واحدة؟ وكيف يمكنني التراجع إذا حدث شيء ما بعد التحديث؟ مثال على ملف `go.mod` الخاص بي: