גוגל מחויבת לקדם הון גזעי עבור קהילות שחורות. תראה איך.
דף זה תורגם על ידי Cloud Translation API.
Switch to English

זרימת עבודה של בקרת מקור

עבודה עם קוד אנדרואיד מחייבת שימוש ב- Git (מערכת בקרת גרסאות קוד פתוח) ו- Repo (כלי ניהול מאגרי בנוי של גוגל הפועל על גבי Git). עיין בכלי בקרת מקור להסבר על הקשר בין ריפו לגית וקישורים לתיעוד תומך לכל כלי.

זְרִימָה

פיתוח אנדרואיד כרוך בזרימת העבודה הבסיסית הבאה:

  1. התחל סניף נושא חדש באמצעות repo start .
  2. ערוך את הקבצים.
  3. שינויים במה באמצעות git add .
  4. בצע שינויים באמצעות git commit .
  5. העלה שינויים לשרת הביקורות באמצעות repo upload .

משימות

עבודה עם Git ו- Repo במאגרי הקוד של אנדרואיד כרוכה בביצוע המשימות הנפוצות הבאות.

פקודה תיאור
repo init מאתחל לקוח חדש.
repo sync מסנכרן את הלקוח למאגרים.
repo start מתחיל סניף חדש.
repo status מציג את הסטטוס של הסניף הנוכחי.
repo upload מעלה שינויים לשרת הביקורת.
git add מביים את הקבצים.
git commit מבצע את הקבצים המבוימים.
git branch מציג את הענפים הנוכחיים.
git branch [branch] יוצר ענף נושא חדש.
git checkout [branch] מעביר את HEAD לסניף שצוין.
git merge [branch] מתמזג [branch] לסניף הנוכחי.
git diff מופעים מבדלים מהשינויים הלא מבוימים.
git diff --cached מופעים מבדלים מהשינויים המבוימים.
git log מציג את ההיסטוריה של הסניף הנוכחי.
git log m/[codeline].. מציג את התחייבויות שלא נדחפות.

למידע על השימוש ב- Repo להורדת מקור, ראה הורדת המקור והתייחסות לפקודת Repo .

סנכרון לקוחות

כדי לסנכרן את הקבצים עבור כל הפרויקטים הזמינים:

repo sync

כדי לסנכרן את הקבצים עבור פרויקטים שנבחרו:

repo sync PROJECT0 PROJECT1 ... PROJECTN

יצירת סניפי נושא

התחל סניף נושא בסביבת העבודה המקומית שלך בכל פעם שתתחיל בשינוי, למשל כשאתה מתחיל לעבוד על באג או תכונה חדשה. ענף נושא אינו העתק של הקבצים המקוריים; זה מצביע להתחייבות מסוימת, מה שהופך את יצירת הסניפים המקומיים והמעבר ביניהם לפעולה קלה. באמצעות סניפים אתה יכול לבודד היבט אחד של העבודה שלך מהאחרים. למאמר מעניין אודות שימוש בסניפי נושא, עיין בהפרדת סניפי נושא .

כדי להתחיל סניף נושא באמצעות Repo, נווט לפרויקט והפעל:

repo start BRANCH_NAME .

תקופת העקירה (.) מייצגת את הפרויקט בספריית העבודה הנוכחית.

כדי לוודא שהסניף החדש נוצר:

repo status .

שימוש בסניפי נושא

כדי להקצות את הסניף לפרויקט ספציפי:

repo start BRANCH_NAME PROJECT_NAME

לקבלת רשימה של כל הפרויקטים, עיין ב- android.googlesource.com . אם כבר ניווטת לספריית הפרויקטים, פשוט השתמש בתקופה כדי לייצג את הפרויקט הנוכחי.

כדי לעבור לסניף אחר בסביבת העבודה המקומית שלך:

git checkout BRANCH_NAME

לצפייה ברשימת הסניפים הקיימים:

git branch

אוֹ

repo branches

שתי הפקודות מחזירות את רשימת הסניפים הקיימים עם שם הסניף הנוכחי שקדם לו כוכבית (*).

הצגת קבצים

כברירת מחדל, Git מבחין אך לא עוקב אחר השינויים שאתה מבצע בפרויקט. כדי לומר לגית לשמור על השינויים שלך, עליך לסמן או לביים שינויים אלה לצורך הכללה בהתחייבות.

לשינויי במה:

git add

פקודה זו מקבלת טיעונים עבור קבצים או ספריות בתוך ספריית הפרוייקט. למרות השם, git add לא רק מוסיף קבצים למאגר ה- Git; זה יכול לשמש גם לביצוע שינויים ומחיקות קבצים.

הצגת מצב לקוח

לרשימת מצב הקבצים:

repo status

כדי להציג עריכות מחויבות (ושינויים מקומיים שאינו מסומנים עבור להתחייב):

repo diff

לצפייה בעריכות מחויבות (עריכות שנמצאות מסומנות לצורך התחייבות), ודא שאתה נמצא בספריית הפרוייקט ואז הפעל git diff עם הארגומנט cached :

cd ~/WORKING_DIRECTORY/PROJECT
git diff --cached

מבצע שינויים

התחייבות היא היחידה הבסיסית של בקרת הגרסאות ב- Git והיא מורכבת מתמונת מצב של מבנה הספריה ותכני הקבצים עבור הפרויקט כולו. כדי ליצור התחייבות בגית:

git commit

כשתתבקש לקבל הודעת התחייבות, ספק הודעה קצרה (אך מועילה) לשינויים שהוגשו ל- AOSP. אם לא תוסיף הודעת התחייבות, ההתחייבות תבטל.

העלאת שינויים לחריט

עדכן למהדורה האחרונה והעלה את השינוי:

repo sync
repo upload

פקודות אלה מחזירות רשימת שינויים שביצעת ומבקשות ממך לבחור את הסניפים להעלאה לשרת הביקורת. אם יש סניף אחד בלבד, אתה רואה שורת y/n פשוטה.

פתרון התנגשויות סינכרון

אם פקודת repo sync ה- repo sync מחזירה התנגשויות סינכרון:

  1. צפו בקבצים שאינם חתומים (קוד מצב = U).
  2. ערוך את אזורי הסכסוך לפי הצורך.
  3. שנה לספריית הפרויקטים הרלוונטית. הוסף וקבץ את הקבצים המושפעים ואז מחדש את השינויים:
    git add .
    git commit
    git rebase --continue
    
  4. לאחר השלמת מחדש, התחל שוב את הסנכרון כולו:
    repo sync PROJECT0 PROJECT1 ... PROJECTN
    

ניקיון לקוחות

לאחר מיזוג שינויים לחריט, עדכן את ספריית העבודה המקומית שלך, ואז השתמש repo prune כדי להסיר בבטחה סניפי נושא מעופשים:

repo sync
repo prune

מוחק לקוחות

מכיוון שכל פרטי המצב מאוחסנים בלקוח שלך, עליך רק למחוק את הספרייה ממערכת הקבצים שלך:

rm -rf WORKING_DIRECTORY

מחיקת לקוח מוחקת לצמיתות את כל השינויים שלא העלית לבדיקה.