הפניה לפיקוד ריפו

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

השימוש ב- repo לובש את הטופס הבא:

repo command options

אלמנטים אופציונליים מוצגים בסוגריים []. לדוגמא, פקודות רבות לקחת project-list כטיעון. אתה יכול לציין project-list כרשימה של שמות או רשימת המסלולים למדריכי מקור מקומיים עבור פרויקטים:

repo sync [project0 project1 ... projectn]
repo sync [/path/to/project0 ... /path/to/projectn]

עֶזרָה

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

repo help

אתה יכול לראות מידע מפורט על כל פקודה על ידי הפעלת זה בתוך עץ Repo:

repo help command

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

repo help init

או כדי לראות רק את רשימת האפשרויות הזמינות, הפעל:

repo command --help
לדוגמה:
repo init --help

init

repo init -u url [options]

מתקין את Repo בספרייה הנוכחית. זה יוצר .repo/ ספרייה עם מאגרי Git עבור קוד המקור ריפה ו קבצי מניפסט אנדרואיד הסטנדרטיים.

אפשרויות:

  • -u : מציין כתובת שממנו ניתן לאחזר מאגר מניפסט. המניפסט המשותף נמצא בבית https://android.googlesource.com/platform/manifest .
  • -m : בחר קובץ מניפסט בתוך המאגר. אם אין שם מניפסט נבחר, ברירת המחדל היא default.xml .
  • -b : לציין גרסה, כלומר, בפרט manifest-branch .

הערה: כל הפקודות ריפו הנותרים, ספריית העבודה הנוכחית או חייב להיות בספריית האב של .repo/ או בספריית משנה של מדריך להורה.

סינכרון

repo sync [project-list]

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

בעת הפעלת repo sync , זה מה שקורה:

  • אם הפרויקט מעולם לא מסונכרן, ואז repo sync שווה git clone . כל הסניפים במאגר המרוחק מועתקים לספריית הפרויקטים המקומית.

  • במידה והפרויקט כבר מסונכרן לפני, אז repo sync שווה:

    git remote update
    git rebase origin/branch
    

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

  • אם Git rebase תוצאות ניתוח בסכסוכי מיזוג, להשתמש בפקוד Git הרגילות (למשל, git rebase --continue ) כדי לפתור את הסכסוכים.

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

להלן אפשרויות מפתח. ראה repo help sync יותר:

  • -c : אחזור בלבד הסניף הגלוי הנוכחי מהשרת.

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

  • -f : להמשיך עם סינכרון פרויקטים אחרים גם אם פרויקט מצליח לסנכרן.

  • -j threadcount : פיצול המסונכרן בין נושאים להשלמה מהירה. הקפד לא להציף את המכונה שלך - השאר כמה מעבד שמור למשימות אחרות. כדי לראות את מספר המעבדים הזמינים, ראשון בטווח: nproc --all

  • -q : הפעל בשקט תוך כדי דיכוי הודעות מצב.

  • -s : Sync כדי לבנות ידוע טוב כפי שצוין על ידי manifest-server היסוד במניפסט הנוכחי.

להעלות

repo upload [project-list]

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

כל ההתחייבויות בענפים שנבחרו מועברות לגריט באמצעות חיבור HTTPS. עליך להגדיר סיסמת HTTPS כדי לאפשר הרשאת העלאה. בקר סיסמה Generator ליצור זוג שם המשתמש / סיסמה חדשה כדי להשתמש בפרוטוקול HTTPS.

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

אם אתה מפעיל repo upload בלי ויכוחים, הוא יחפש את כל הפרויקטים לשינויים להעלות.

כדי לערוך שינויים לאחר העלאתן, להשתמש בכלי כמו git rebase -i או git commit --amend לעדכן יתחייב המקומי. לאחר השלמת העריכות שלך:

  • ודא שהסניף המעודכן הוא הענף שהוצא כעת.
  • עבור כל התחייבות בסדרה, הזן את מזהה השינוי של חריט בתוך הסוגריים:
    # Replacing from branch foo
    [ 3021 ] 35f2596c Refactor part of GetUploadableBranches to lookup one specific...
    [ 2829 ] ec18b4ba Update proto client to support patch set replacments
    # Insert change numbers in the brackets to add a new patch set.
    # To create a new change record, leave the brackets empty.
    

לאחר השלמת ההעלאה, מערכת השינויים כוללת מערכת תיקון נוספת.

אם אתה רוצה להעלות רק את הנבדק כעת את סניף Git, השתמש בדגל --current-branch (או --cbr בקיצור).

diff

repo diff [project-list]

מופעי שינויים בולטים בין להתחייב ואת העץ עובד באמצעות git diff .

הורד

repo download target change

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

לדוגמה, כדי להוריד השינוי 23,823 לתוך ספריית פלטפורמה / לבנות שלך:

repo download platform/build 23823

Running repo sync מסירה את כל יתחייב לאחזר עם repo download . או שאתה יכול לבדוק את הסניף מרחוק באמצעות git checkout m/master .

הערה: ישנם שכפול עיכובים לכל השרתים בעולם, כך שיש פער שיקוף קל בין השעה שבה שינוי גלוי באינטרנט ב גריט וכאשר repo download יכול למצוא את השינוי עבור כל המשתמשים.

לכולם

repo forall [project-list] -c command

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

  • REPO_PROJECT מוגדר השם הייחודי של הפרויקט.

  • REPO_PATH הוא נתיב יחסי אל השורש של הלקוח.

  • REPO_REMOTE הוא שמו של המערכת מרחוק מהמניפסט.

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

  • REPO_RREV הוא שמו של התיקון מהמניפסט, בדיוק כפי שנכתב במניפסט.

אפשרויות:

  • -c : פיקוד וויכוחים לבצע. פקוד מוערכת באמצעות /bin/sh וכול טיעונים אחרי זה הם עברו כפרמטרים מיקומית פגז.

  • -p : כותרות פרויקט הצג לפני הפלט של הפקודה שצוין. הדבר מושג על ידי קישור צינורות לזרמי ה- stdin, stdout ו- sterr של הפקודה, וצינורות כל הפלט לזרם רציף המוצג בהפעלה ביפר אחת.

  • -v : הודעות הצג את הפקודה כותב stderr.

לִגזוֹם

repo prune [project-list]

שזיפים מיובשים (מוחקים) נושאים שכבר מוזגו.

הַתחָלָה

repo start
branch-name [project-list]

מתחיל ענף חדש לפיתוח, החל מהתיקון שצוין במניפסט.

BRANCH_NAME הטיעון מספק תיאור קצר על השינוי שאתה מנסה להפוך את הפרויקטים. אם אתה לא יודע, שקול להשתמש בשם default .

project-list מציינת טיעון אשר פרויקטים להשתתף סניף בנושא זה.

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

סטָטוּס

repo status [project-list]

משווה את עץ העבודה לאזור הבמה (אינדקס) ואת ההתחייבות העדכנית ביותר בענף זה (HEAD) בכל פרויקט שצוין. מציג שורת סיכום לכל קובץ שבו יש הבדל בין שלושת המצבים הללו.

כדי לראות את המצב פשוט הסניף הנוכחי, לרוץ repo status . . פרטי הסטטוס מופיעים לפי פרויקט. לכל קובץ בפרויקט משתמשים בקוד בן שתי אותיות.

בעמודה הראשונה, אות רישיות מציינת כיצד אזור ההיערכות שונה מהמצב המחויב האחרון.

מִכְתָב מַשְׁמָעוּת תיאור
- ללא שינוי אותו דבר ב- HEAD ובאינדקס
א נוסף לא ב- HEAD, באינדקס
M שונה ב- HEAD, שונה באינדקס
ד נמחק ב- HEAD, לא באינדקס
ר שונה שם לא ב- HEAD, הנתיב השתנה באינדקס
ג מוּעֲתָק לא ב- HEAD, הועתק מאחר באינדקס
ט המצב השתנה אותו תוכן ב- HEAD ובאינדקס, המצב השתנה
U ללא מיזוג סכסוך בין HEAD למדד; נדרשת רזולוציה

בעמודה השנייה, אות קטנה מציינת כיצד שונה ספריית העבודה מהאינדקס.

מִכְתָב מַשְׁמָעוּת תיאור
- חדש/לא ידוע לא באינדקס, בעץ העבודה
M שונה באינדקס, בעץ העבודה, שונה
ד נמחק באינדקס, לא בעץ העבודה

טיפול בשגיאות ריפו

git reflog

repo start branch-name

git merge commit-id

repo upload .

השגיאה repo: error: no branches ready for upload מופיעה כאשר הפקודה repo start לא הופעלה בתחילת הפגישה. כדי לשחזר, תוכל לבדוק את מזהה ההתחייבות, להפעיל סניף חדש ולאחר מכן למזג אותו.