لدينا نسخة احترافية، سير العمل موجود في git في الفرع الرئيسي. أجريت بعض التغييرات الخارجية على الفرع عبر كود Claude والآن أحاول إدخالها إلى مثيل n8n staging لدينا.
ضغطت على pull لكنها تقول “No workflow changes to pull from Git”.
يحدث خطأ “No workflow changes to pull from Git” لأن n8n يتوقع هيكل ملفات محدد جدًا وتنسيقًا دقيقًا واتفاقية تسمية نادرًا ما تُنشئها أدوات خارجية مثل Claude Code بشكل صحيح افتراضيًا. إذا انحرفت ملفاتك حتى قليلًا عما يتوقعه Source Control في n8n، فسيتجاهل n8n تمامًا أثناء عملية السحب.
لإصلاح هذه المشكلة، تابع قائمة التحقق التالية للتأكد من أن تغييرات Git الخاصة بك تطابق متطلبات n8n.
التحقق من هيكل الملفات والتسمية:
يبحث n8n عن سير العمل في دليل محدد في جذر مستودع Git الخاص بك.
موقع المجلد: يجب وضع سير العمل داخل مجلد باسم workflows/ تمامًا في جذر مستودع Git الخاص بك.
تسمية الملفات: يجب تسمية الملف باستخدام معرّف فريد له متبوعًا بامتداد .json (على سبيل المثال، workflows/12345.json أو workflows/aBc12D3e.json).
مخطط JSON: إذا عدّل Claude Code JSON سير العمل، فقد يكون قد أدخل تغييرات في المخطط يرفضها n8n أو لا يعترف بها.
تأكد من وجود id وname وnodes وconnections على مستوى الجذر من JSON. إذا قام Claude بتغليف الكود داخل كتلة إضافية أو فقد حقل id، فسيفشل n8n في قراءته.
مطابقة إعدادات الدليل الفرعي:
إذا قمت بتكوين دليل فرعي مخصص في إعدادات Source Control الخاصة بـ n8n (على سبيل المثال، n8n-config/)، يجب أن يكون سير العمل داخل <your-custom-folder>/workflows/. تأكد من تكوين بيئة التقديم المستهدفة لتقرأ من الدليل الفرعي الدقيق حيث قام Claude Code بدفع التغييرات.
إذا كانت نسختك من n8n مكونة للسحب من main، لكن تغييرات Claude Code الخاصة بك موجودة على فرع مختلف (على سبيل المثال، feature-branch)، فسيتحقق n8n من main، ويرى أن main لم يتغير، وسيرفع تقريرا بأنه لا يوجد شيء لسحبه.
كيفية تصحيح الأخطاء:
تحقق من إعدادات Git في n8n: انتقل إلى إعدادات n8n الخاصة بك وتحقق من الفرع المحدد في إعدادات Git.
تحقق من الأصل البعيد: تحقق من مزود Git الخاص بك (GitHub/GitLab) لترى ما إذا كانت التغييرات موجودة على الفرع الذي يراقبه n8n.
الحل: ربما تحتاج إلى دمج فرعك في main (أو أي فرع يتابعه n8n) قبل أن يتمكن n8n من “رؤيتها” عبر أمر Pull.
نظرا لأنك تقوم بتشغيل n8n عبر Docker، فإن وصول n8n إلى مستودع Git يعتمد بالكامل على كيفية تثبيت مجلداتك.
كيفية تصحيح الأخطاء:
تحقق من docker-compose.yml أو أمر docker run: تأكد من أن المجلد الذي يحتوي على مستودع Git الخاص بك مثبت بشكل صحيح كمجلد في حاوية n8n.
تحقق داخل الحاوية: قم بتشغيل هذا الأمر لترى ما تراه حاوية n8n بالفعل:
docker exec -it <n8n-container-name> ls -la /path/to/your/git/repo
(استبدل /path/to/your/git/repo بالمسار داخل الحاوية حيث يتم تخزين مسارات العمل الخاصة بك).
من المحتمل أنك تحتاج إلى دفع التغييرات المحلية إلى Git قبل السحب.
دعنا أولاً نتحقق من أن فرع المسار البعيد يحتوي على الالتزامات الجديدة (من الحاوية، إذا لم يظهر شيء فإن الالتزامات الخاصة بك لا تتوجد في فرع المسار البعيد): git fetch origin git log --oneline HEAD..origin/main
تحقق من الالتزام الذي يعمل عليه n8n حالياً (إذا كانت التجزئات متطابقة فإن n8n في أحدث التزام): git rev-parse HEAD git rev-parse origin/main
فحص حالة المستودع (إذا كانت هناك تغييرات محلية قد يتجنب n8n السحب التلقائي) git status git branch -vv git remote -v
تأكد من أن كود Claude تم دفعه إلى الفرع الحالي
انظر إلى سجلات n8n أثناء السحب: docker logs -f <n8n-container>
أو إذا كنت تستخدم docker compose: docker compose logs -f n8n