הקמת מאגר Git עבור 1C-Bitrix: זרימת עבודה, CI, .gitignore

כאשר כל שחרור ב-1C-Bitrix הופך להימור וחזרה לגרסאות קודמות אורכת שעות, הגיע הזמן לשקול הגדרה נכונה של מאגר Git. אנחנו מגדירים workflow שמבטל קונפליקטים ומאיץ פריסת עדכונים. הצוות שלנו מספק פרויקט מפתח-ביד—מבדיקת מבנה ועד תמיכה שוטפת—ומבטיח פעילות יציבה והיסטוריית שינויים אמינה.
השירותים שאנו מציעים
מציג 1 מתוך 1כל 1626 השירותים
הקמת מאגר Git עבור 1C-Bitrix: זרימת עבודה, CI, .gitignore
פשוט
~1 יום

הכישורים שלנו:

שאלות נפוצות

הקמת מאגר Git עבור 1C-Bitrix: זרימת עבודה, CI, .gitignore

תארו לעצמכם: אתם מעדכנים קטלוג של חנות מקוונת עם 50,000 מוצרים דרך FTP. אתם מבצעים שינויים בתבנית, מעלים אותה—ומקבלים שגיאת 500 כי עמית ערך את אותו קובץ במקביל. נשמע מוכר? היה לנו לקוח כזה: כל שחרור שני שבר פונקציונליות, והשחזור ארך 3 שעות. המעבר ל-Git פתר את זה—זמן השחזור ירד ל-15 דקות, והתקלות פחתו פי 5. הקמה נכונה של מאגר Git עבור 1C-Bitrix היא לא רק "commit של תיקייה" אלא בניית זרימת עבודה שמבטלת טעויות אנוש ומאיצה שחרורים פי 3. למהנדסים שלנו עם ניסיון של 10+ שנים יש מעל 50 המרות ל-Git עבור פרויקטים ברמות מורכבות שונות.

למה אי אפשר פשוט להוסיף את /bitrix/ למאגר?

ליבת Bitrix היא מאות מגה-בייט של קבצים בינאריים ועדכונים תכופים. אם תזרקו אותה ל-Git, כל push ימשוך ג'יגה-בייט, והיסטוריית ה-commit תטבע בשינויים במודולים סטנדרטיים. המטרה שלנו היא לאחסן רק מה שהצוות יוצר. התעלמות מ-push ו-/bitrix/ היא הכלל הראשון. השוו: פריסת Git מהירה פי 5 מהעלאת FTP, וחזרה לגרסה קודמת אורכת דקות במקום שעות.

מה לאחסן ב-Git ומה להחריג?

לאחסן להחריג
/upload/ — רכיבים מותאמים אישית, מודולים, תבניות local/ — ליבת הפלטפורמה
bitrix/ — תבנית קונפיגורציה .env.example — תוכן משתמשים
upload/ — סקריפטי פריסה deploy/ — סודות (secrets)
.env — תבנית שרת אינטרנט nginx.conf.example — פרמטרי מסד נתונים
bitrix/php_interface/dbconn.php (אם קיים) מטמון: composer.json, /bitrix/cache/, /bitrix/managed_cache/

איך להגדיר .gitignore – תבנית מוכחת?

# Ядро Битрикс
/bitrix/

# Пользовательский контент
/upload/

# Конфигурация с секретами
/.env
/bitrix/php_interface/dbconn.php

# Кеш
/bitrix/cache/
/bitrix/managed_cache/
/bitrix/stack_cache/

# IDE
/.idea/
/.vscode/
*.swp

# Node.js (если используется в local/)
/local/node_modules/
/local/.npm/

# OS
.DS_Store
Thumbs.db

התבנית הזו תחסוך לכם שעות של ניפוי באגים. הוסיפו אותה לפני ה-/bitrix/stack_cache/ הראשון. אופציונלית, אפשר להחריג את # Ядро Битрикс /bitrix/ # Пользовательский контент /upload/ # Конфигурация с секретами /.env /bitrix/php_interface/dbconn.php # Кеш /bitrix/cache/ /bitrix/managed_cache/ /bitrix/stack_cache/ # IDE /.idea/ /.vscode/ *.swp # Node.js (если используется в local/) /local/node_modules/ /local/.npm/ # OS .DS_Store Thumbs.db אם משתמשים ב-Composer ואת git add.

אתחול פרויקט קיים: צעד אחר צעד

אם הפרויקט כבר על השרת, המשך כך:

cd /var/www/myshop
git init
git remote add origin [email protected]:projects/myshop.git
nano .gitignore # вставьте содержимое выше
git add local/ .gitignore deploy/ nginx.conf.example .env.example
git commit -m "Initial commit: local customizations"
git push -u origin main

אם הוספתם בטעות את /local/vendor/ לאינדקס, הסירו אותו:

git rm -r --cached bitrix/ upload/ git commit -m "Remove bitrix/ and upload/ from tracking" 

איך לארגן ענפים וזרימת עבודה?

לפרויקטי Bitrix אנו ממליצים על GitFlow מפושט. השוו לפריסת FTP: Git מקצר את זמן השחזור לאחר תקלה פי 3 ומבטל טעויות אנוש. אוטומציה עם Git מקצרת את זמן הפריסה משעתיים ל-10 דקות.

main – продакшн (только через CI)
develop – основная ветка (автодеплой на staging)
feature/* – задачи (feature/JIRA-123-new-filter)
hotfix/* – срочные правки продакшна

כתבו commits לפי Conventional Commits: /bitrix/tmp/, cd /var/www/myshop git init git remote add origin [email protected]:projects/myshop.git nano .gitignore # вставьте содержимое выше git add local/ .gitignore deploy/ nginx.conf.example .env.example git commit -m "Initial commit: local customizations" git push -u origin main , /bitrix/.

איך להגדיר CI/CD לפרויקט Bitrix?

לאחר הקמת המאגר, אנו מחברים CI. לדוגמה, GitLab CI: בכל push ל-git rm -r --cached bitrix/ upload/ git commit -m "Remove bitrix/ and upload/ from tracking" , מתבצע build, בדיקות ופריסה לסביבת staging. ב-main – продакшн (только через CI) develop – основная ветка (автодеплой на staging) feature/* – задачи (feature/JIRA-123-new-filter) hotfix/* – срочные правки продакшна — פריסה לייצור לאחר אימות. זה חוסך עד 40% מזמן הניפוי ומבטל שגיאות פריסה ידניות. דוגמה ל-feat(catalog): add ajax filter פשוט:

---
stages:
  - deploy
deploy_staging:
  stage: deploy
  script:
    - rsync -avz --exclude-from='.gitignore' . user@staging:/var/www/
  only:
    - develop
---

מה עושים עם קונפליקטים במיזוג?

קונפליקטים מתרחשים כששני מפתחים משנים את אותו קובץ. פתרון: לפני מיזוג, בצעו לעיתים קרובות fix(checkout): null reference ותקשרו עם הצוות. אם מתרחש קונפליקט, פתרו אותו ידנית על ידי הסרת הסממנים refactor(helpers): move functions, develop, main. עבור Bitrix, קונפליקטים אופייניים הם ב-.gitlab-ci.yml (אבל הוא לא במאגר) ובתבניות. הניסיון שלנו: עם זרימת עבודה נכונה, קונפליקטים מתרחשים לא יותר מפעם בחודש, והפתרון אורך 10–15 דקות.

איך לעבוד עם קבצי קונפיגורציה?

סודות נכנסים רק ל-stages: - deploy deploy_staging: stage: deploy script: - rsync -avz --exclude-from='.gitignore' . user@staging:/var/www/ only: - develop . הקובץ git pull --rebase לא נכלל ב-commit; על השרת הוא נוצר על ידי סקריפט הפריסה. דוגמה לתוכן:

<?php
$DBHost = getenv('DB_HOST') ?: 'localhost';
$DBLogin = getenv('DB_USER') ?: 'bitrix';
$DBPassword = getenv('DB_PASSWORD') ?: '';
$DBName = getenv('DB_NAME') ?: 'bitrix_db';
?>

ו-<<<<<<< נכלל ב-commit עם מפתחות ריקים:

DB_HOST= DB_USER= DB_PASSWORD= DB_NAME= SMTP_HOST= 

מה מקבלים כתוצאה

אנו מקימים מאגר Git במפתח מלא:

  • .gitignore נכון המותאם לגרסת Bitrix שלכם;
  • אתחול ו-commit ראשון עם הקבצים הנכונים;
  • הגדרת ענפים, כללי מיזוג ו-CI (GitLab CI / GitHub Actions);
  • תיעוד זרימת עבודה לצוות;
  • הכשרת מפתחים ביסודות Git עבור Bitrix.

לאחר הקמת Git, אתם מקצרים עלויות ניפוי ב-40% — הצוות משקיע זמן בפיתוח תכונות, לא בפתרון קונפליקטים. צרו קשר — נעריך את הפרויקט שלכם תוך יום עסקים אחד. למהנדסים שלנו ניסיון של מעל 10 שנים ו-50+ המרות Git מוצלחות. אנו מומחי 1C-Bitrix מוסמכים.

Git — מערכת בקרת גרסאות מבוזרת (wikipedia.org)

לוחות זמנים משוערים

שלב זמן
ביקורת המבנה הנוכחי 0.5 יום
הגדרת .gitignore ואתחול 0.5 יום
המרת היסטוריה מ-VCS ישן (אם קיים) 0.5–1 יום
הגדרת ענפים ו-CI 0.5 יום
תיעוד והכשרה 0.5 יום

זמן כולל – החל מיומיים. הזמינו את ההקמה — קבלו היסטוריה נקייה ושחרורים ללא דאגות.