git-commit - מקוון בענן

זוהי הפקודה git-commit שניתן להריץ בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

תָכְנִית:

שֵׁם


git-commit - הקלט שינויים במאגר

תַקצִיר


סילון לבצע [-א | --אינטראקטיבי | --patch] [-s] [-v] [-u ] [--לתקן]
[--ריצה יבשה] [(-c | -C | --fixup | --סקווש) ]
[-פ | -M ] [--reset-author] [--allow-empty]
[--allow-empty-message] [--no-verify] [-e] [--author= ]
[--תאריך= ] [--cleanup= ] [--[ללא סטטוס]
[-i | -o] [-S[ ]] [--] [ ...]

תיאור


מאחסן את התוכן הנוכחי של האינדקס ב-commit חדש יחד עם הודעת יומן מה-
משתמש המתאר את השינויים.

ניתן לציין את התוכן שיש להוסיף במספר דרכים:

1. באמצעות סילון להוסיף כדי "להוסיף" שינויים לאינדקס בהדרגה לפני השימוש ב- לבצע
פקודה (הערה: יש "להוסיף" אפילו קבצים שהשתנו);

2. באמצעות סילון rm כדי להסיר קבצים מעץ העבודה ומהאינדקס, שוב לפני
באמצעות לבצע פקודה;

3. על ידי רישום קבצים כטיעונים ל- לבצע פקודה, ובמקרה זה ההתחייבות תהיה
התעלם משינויים שבוצעו באינדקס, ובמקום זאת רשום את התוכן הנוכחי של ה-
קבצים רשומים (שחייבים להיות כבר ידועים ל-Git);

4. על ידי שימוש במתג -a עם ה- לבצע פקודה כדי "הוסף" אוטומטית שינויים מכל
קבצים ידועים (כלומר כל הקבצים שכבר רשומים באינדקס) וכן אוטומטית
קבצי "rm" באינדקס שהוסרו מעץ העבודה ולאחר מכן בצעו
ההתחייבות בפועל;

5. על ידי שימוש במתגי --interactive או --patch עם לבצע פקודה להחליט אחד
על ידי אחד אילו קבצים או חתיכים צריכים להיות חלק מההתחייבות, לפני סיום ה-
פעולה. עיין בסעיף "מצב אינטראקטיבי" של git-add(1) ללמוד כיצד לפעול
המצבים הללו.

ניתן להשתמש באפשרות --dry-run כדי לקבל סיכום של מה שנכלל בכל אחד מה-
לעיל עבור ההתחייבות הבאה על ידי מתן אותה סט של פרמטרים (אפשרויות ונתיבים).

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

אפשרויות


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

-p, --תיקון
השתמש בממשק בחירת התיקון האינטראקטיבי כדי לבחור אילו שינויים לבצע. לִרְאוֹת
git-add(1) לפרטים.

-C , --reuse-message=
קח אובייקט commit קיים, ועשה שימוש חוזר בהודעת היומן ובמחבר
מידע (כולל חותמת הזמן) בעת יצירת ההתחייבות.

-ג , --reedit-message=
כמו -C, אבל עם -c העורך מופעל, כך שהמשתמש יוכל לערוך עוד את
הודעת התחייבות.

--תיקון=
בנו הודעת commit לשימוש עם rebase --autosquash. הודעת ההתחייבות תהיה
להיות שורת הנושא מה-commit שצוין עם הקידומת "תיקון! ". לִרְאוֹת גיט-
השבה מחדש(1) לפרטים.

--סקווש=
בנו הודעת commit לשימוש עם rebase --autosquash. הודעת ההתחייבות
שורת הנושא נלקחת מה-commit שצוין עם הקידומת "סקווש! ". יכול להיות
בשימוש עם אפשרויות נוספות של הודעת commit (-m/-c/-C/-F). לִרְאוֹת git-rebase(1) עבור
פרטים.

--reset-author
כאשר משתמשים באפשרויות -C/-c/--שינוי, או בעת התחייבות לאחר סתירה
cherry-pick, הכריז שהמחברת של ההתחייבות שנוצרה שייכת כעת ל-
מתחייב. זה גם מחדש את חותמת הזמן של המחבר.

--קצר
בעת ביצוע ריצה יבשה, תן את הפלט בפורמט הקצר. לִרְאוֹת git-status(1) עבור
פרטים. מרמז על הפעלה יבשה.

--ענף
הצג את הסניף ואת פרטי המעקב אפילו בפורמט קצר.

--חַרְסִינָה
בעת ביצוע ריצה יבשה, תן את הפלט בפורמט מוכן לחרסינה. לִרְאוֹת git-status(1)
לפרטים. מרמז על הפעלה יבשה.

--ארוך
בעת ביצוע ריצה יבשה, תן את הפלט בפורמט ארוך. מרמז על הפעלה יבשה.

-z, --null
בעת הצגת פלט סטטוס קצר או חרסינה, סיים את הערכים בפלט המצב
עם NUL, במקום LF. אם לא נתון פורמט, מרמז על פורמט הפלט --porcelain.

-פ , --file=
קח את הודעת ההתחייבות מהקובץ הנתון. להשתמש - כדי לקרוא את ההודעה מה-
קלט סטנדרטי.

--מחבר=
תעקוף את מחבר ה-commit. ציין מחבר מפורש באמצעות ה-AU Thor הסטנדרטי
<author@example.com> פורמט. אחרת מניחים שהוא דפוס ומשמש
כדי לחפש commit קיים של אותו מחבר (כלומר rev-list --all -i
--מחבר= ); לאחר מכן, מחבר ה-commit מועתק מה-commit הראשון שנמצא.

--תאריך=
תעקוף את תאריך המחבר בשימוש ב-commit.

-M , --הודעה=
השתמש בנתון כהודעת ההתחייבות. אם ניתנות אפשרויות -m מרובות, שלהם
ערכים משורשרים כפסקאות נפרדות.

-ט , --template=
בעת עריכת הודעת ה-commit, הפעל את העורך עם התוכן בקובץ הנתון.
משתנה התצורה commit.template משמש לעתים קרובות כדי לתת אפשרות זו
באופן מרומז לפקודה. מנגנון זה יכול לשמש פרויקטים שרוצים להדריך
המשתתפים עם כמה רמזים מה לכתוב בהודעה באיזה סדר. אם ה
המשתמש יוצא מהעורך מבלי לערוך את ההודעה, ההתחייבות תבוטל. לזה אין
השפעה כאשר הודעה ניתנת באמצעים אחרים, למשל עם האפשרויות -m או -F.

-s, --signoff
הוסף שורה חתומה על ידי המחייב בסוף הודעת יומן ההתחייבות. ה
המשמעות של חתימה תלויה בפרויקט, אבל היא בדרך כלל מאשרת את המתחייב הזה
יש לו את הזכויות להגיש עבודה זו תחת אותו רישיון ומסכים למפתח
תעודת מקור (ראה http://developercertificate.org/ למידע נוסף).

-n, --לא-לאמת
אפשרות זו עוקפת את ה-pre-commit ו-commit-msg hooks. ראה גם githooks(5).

--אפשר-ריק
בדרך כלל הקלטת commit שיש לו אותו עץ בדיוק כמו commit ההורה הבלעדי שלו היא א
טעות, והפקודה מונעת ממך לבצע התחייבות כזו. אפשרות זו עוקפת
הבטיחות, והיא מיועדת בעיקר לשימוש על ידי סקריפטים זרים של ממשק SCM.

--לאפשר-ריק-הודעה
כמו --allow-empty הפקודה הזו מיועדת בעיקר לשימוש על ידי סקריפטים זרים של ממשק SCM.
זה מאפשר לך ליצור commit עם הודעת commit ריקה מבלי להשתמש בצנרת
פקודות כמו git-commit-tree(1).

--ניקוי=
אפשרות זו קובעת כיצד יש לנקות את הודעת ההתחייבות שסופקה לפני כן
הַפקָדָה. ה יכול להיות רצועה, רווח לבן, מילולית, מספריים או ברירת מחדל.

להפשיט
הסר קווים ריקים מובילים ונגררים, רווחים לבנים נגררים, פרשנות ו
לכווץ שורות ריקות עוקבות.

מרחב לבן
זהה לרצועה, למעט ש-#commentary לא הוסר.

מלה במלה
אל תשנה את ההודעה בכלל.

מספריים
זהה לרווח לבן, חוץ מזה שהכל מהשורה (כולל) "#
------------------------ >8 ------------------------ " נקצר אם ההודעה
יש לערוך. "#" ניתן להתאים אישית עם core.commentChar.

ברירת מחדל
זהה לרצועה אם יש לערוך את ההודעה. אחרת רווח לבן.

ניתן לשנות את ברירת המחדל על ידי commit.cleanup משתנה תצורה (ראה גיט-
config(1)).

-e, - Tit
ההודעה נלקחה מהקובץ עם -F, שורת הפקודה עם -m, ומ-commit object עם
-C משמשים בדרך כלל כהודעת יומן ההתחייבות ללא שינוי. אפשרות זו מאפשרת לך להמשיך
לערוך את ההודעה שנלקחה ממקורות אלה.

--ללא עריכה
השתמש בהודעת ההתחייבות שנבחרה מבלי להפעיל עורך. לדוגמה, git commit
--amend --no-edit מתקן commit מבלי לשנות את הודעת ה-commit שלו.

--לְתַקֵן
החלף את קצה הסניף הנוכחי על ידי יצירת commit חדש. העץ המוקלט הוא
מוכן כרגיל (כולל השפעת האפשרויות -i ו-o ומפורש
pathspec), וההודעה מה-commit המקורי משמשת כנקודת ההתחלה,
במקום הודעה ריקה, כאשר לא צוינה הודעה אחרת משורת הפקודה
באמצעות אפשרויות כגון -m, -F, -c וכו'. ל-commit החדש יש את אותם הורים ומחבר כמו
הנוכחי (אפשרות --reset-author יכולה לבטל זאת).

זה מקבילה גסה עבור:

$ git reset --soft HEAD^
$ ... תעשה משהו אחר כדי למצוא את העץ הנכון ...
$ git commit -c ORIG_HEAD

אך ניתן להשתמש בו כדי לתקן התחייבות למיזוג.

אתה צריך להבין את ההשלכות של שכתוב ההיסטוריה אם אתה מתקן התחייבות לכך
כבר פורסם. (ראה את הסעיף "התאוששות מ-UPSTREAM REBASE" ב גיט-
השבה מחדש(1).)

--אין-פוסט-שכתוב
עוקפים את הוו שלאחר השכתוב.

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

-o, --בלבד
בצע התחייבות על ידי נטילת תוכן עץ העבודה המעודכן של הנתיבים שצוינו בהם
שורת הפקודה, תוך התעלמות מכל תוכן שבוצע עבור נתיבים אחרים.
זהו מצב הפעולה המוגדר כברירת מחדל של סילון לבצע אם ניתנים נתיבים כלשהם ב-
שורת הפקודה, ובמקרה זה ניתן לוותר על אפשרות זו. אם אפשרות זו צוינה
יחד עם --לְתַקֵן, אז אין צורך לציין נתיבים, שניתן להשתמש בהם כדי לתקן
ה-commit האחרון מבלי לבצע שינויים שכבר בוצעו.

-u[ ], --untracked-files[= ]
הצג קבצים ללא מעקב.

פרמטר המצב הוא אופציונלי (ברירת המחדל הוא את כל), ומשמש לציון הטיפול
של קבצים ללא מעקב; כאשר -u אינו בשימוש, ברירת המחדל היא נוֹרמָלִי, כלומר הצג ללא מעקב
קבצים וספריות.

האפשרויות האפשריות הן:

· לא - לא הצג קבצים ללא מעקב

· נוֹרמָלִי - מציג קבצים וספריות ללא מעקב

· את כל - מציג גם קבצים בודדים בספריות ללא מעקב.

ניתן לשנות את ברירת המחדל באמצעות תצורת status.showUntrackedFiles
משתנה מתועד ב git-config(1).

-v, --מלל
הצג הבדל מאוחד בין מחויבות ה-HEAD לבין מה שיתחייב בתחתית
תבנית הודעת התחייבות כדי לעזור למשתמש לתאר את ההתחייבות על ידי תזכורת מה
שינויים שיש ל-commit. שימו לב שלפלט הבדל זה אין קידומת של השורות
עם #. ההבדל הזה לא יהיה חלק מהודעת ההתחייבות.

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

-ש, -שקט
הודעת סיכום דחיקה של התחייבות.

--ריצה יבשה
אל תיצור commit, אלא הצג רשימה של נתיבים שיש לבצע, נתיבים איתם
שינויים מקומיים שיישארו ללא מחויבות ונתיבים שאין להם מעקב.

--סטָטוּס
כלול את הפלט של git-status(1) בתבנית הודעת התחייבות בעת שימוש ב-
עורך כדי להכין את הודעת ההתחייבות. ברירת המחדל פועלת, אך ניתן להשתמש בה כדי לעקוף
משתנה תצורה commit.status.

--ללא סטטוס
אל תכלול את הפלט של git-status(1) בתבנית הודעת התחייבות בעת השימוש
עורך שיכין את הודעת ה-commit ברירת המחדל.

-S[ ], --gpg-sign[= ]
GPG-sign מתחייב. הארגומנט keyid הוא אופציונלי וברירת המחדל הוא ה-committer
זהות; אם צוין, זה חייב להיות דבוק לאפשרות ללא רווח.

--no-gpg-sign
משתנה תצורה של Countermand commit.gpgSign המוגדר לאלץ כל אחד ואחד
להתחייב להיות חתום.

--
אל תפרש עוד טיעונים כאפשרויות.

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

תאריך פורמטים


משתני הסביבה GIT_AUTHOR_DATE, GIT_COMMITTER_DATE ואפשרות --date
תמיכה בפורמטים הבאים של התאריכים:

פורמט פנימי של Git
זה , איפה הוא המספר של
שניות מאז עידן UNIX. הוא קיזוז חיובי או שלילי
מ-UTC. לדוגמה, CET (שמקדימה ב-2 שעות UTC) הוא +0200.

RFC 2822
פורמט הדוא"ל הסטנדרטי כפי שמתואר על ידי RFC 2822, למשל יום ה', 07 באפריל 2005
22:13:13 +0200.

ISO 8601
שעה ותאריך המצוינים בתקן ISO 8601, למשל 2005-04-07T22:13:13. ה
מנתח מקבל רווח במקום התו T גם כן.

הערות
בנוסף, חלק התאריך מתקבל בפורמטים הבאים: YYYY.MM.DD,
MM/DD/YYYY ו-DD.MM.YYYY.

דוגמאות


בעת הקלטת העבודה שלך, התוכן של קבצים ששונו בעץ העבודה שלך
מאוחסן באופן זמני באזור היערכות שנקרא "אינדקס" עם סילון להוסיף. קובץ יכול להיות
חזר לאחור, רק באינדקס אבל לא בעץ העבודה, לזה של ה-commit האחרון
עם git reset HEAD -- , אשר למעשה חוזר סילון להוסיף ומונע את השינויים
לקובץ הזה מהשתתפות בהתחייבות הבאה. לאחר בניית המדינה להיות
מחויב בהדרגה עם הפקודות הללו, git commit (ללא שום פרמטר של שם נתיב)
משמש להקלטת מה מבוים עד כה. זוהי הצורה הבסיסית ביותר של הפקודה.
דוגמה:

$ ערוך hello.c
$ git rm goodbye.c
$ git הוסף hello.c
$ git commit

במקום לביים קבצים לאחר כל שינוי בודד, אתה יכול להגיד ל-git commit לשים לב
את השינויים בקבצים שתוכנם עוקב בעץ העבודה שלך ועושים
המתאימים git add ו-git rm עבורך. כלומר, דוגמה זו עושה את אותו הדבר כמו
דוגמה קודמת אם אין שינוי אחר בעץ העבודה שלך:

$ ערוך hello.c
$ rm goodbye.c
$ git commit -a

הפקודה git commit -a מבט תחילה על עץ העבודה שלך, מבחין ששינית
hello.c והסיר את goodbye.c, ומבצע עבורך git add ו-git rm הדרושים.

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

$ edit hello.c hello.h
$ git הוסף hello.c hello.h
$ ערוך Makefile
$ git commit Makefile

זה מבצע commit שמתעד את השינוי ב-Makefile. השינויים שבוצעו עבור
hello.c ו-hello.h אינם נכללים ב-commit המתקבל. עם זאת, השינויים שלהם הם
לא אבודים - הם עדיין מבוימים ורק מעוכבים. לאחר הרצף לעיל, אם אתה
לַעֲשׂוֹת:

$ git commit

ההתחייבות השנייה הזו תתעד את השינויים ב-hello.c וב-hello.h כצפוי.

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

$ git status | grep בוטל
ללא מיזוג: hello.c
$ ערוך hello.c
$ git הוסף hello.c

לאחר פתרון קונפליקטים ובימוי התוצאה, git ls-files -u יפסיק להזכיר
הדרך המסוכסכת. כשתסיים, הפעל את git commit כדי להקליט סוף סוף את המיזוג:

$ git commit

כמו במקרה כדי להקליט את השינויים שלך, אתה יכול להשתמש באפשרות -לשמור הקלדה. אחד
ההבדל הוא שבמהלך רזולוציית מיזוג, אתה לא יכול להשתמש ב-git commit עם שמות נתיבים ל
שנה את סדר ביצוע השינויים, מכיוון שהמיזוג צריך להירשם כ-a
התחייבות בודדת. למעשה, הפקודה מסרבת לפעול כאשר ניתנים שמות נתיבים (אבל ראה -i
אוֹפְּצִיָה).

דיון


למרות שזה לא חובה, מומלץ להתחיל את הודעת ההתחייבות עם קצר אחד
שורה (פחות מ-50 תווים) המסכמת את השינוי, ואחריה שורה ריקה ולאחר מכן א
תיאור יסודי יותר. הטקסט עד השורה הריקה הראשונה בהודעת commit הוא
מתייחסים אליו כאל התחייבות, והכותרת הזו משמשת בכל Git. לדוגמה, גיט-
פורמט-תיקון(1) הופך התחייבות למייל, והיא משתמשת בכותרת בשורת הנושא ו
שאר המתחייבים בגוף.

Git הוא במידה מסוימת אגנוסטיקה של קידוד תווים.

· התוכן של אובייקטי הכתם הם רצפים לא מפורשים של בתים. אין
תרגום קידוד ברמת הליבה.

· שמות הנתיבים מקודדים בצורת נורמליזציה UTF-8 C. זה חל על אובייקטי עץ,
קובץ האינדקס, שמות ref, כמו גם שמות נתיבים בארגומנטים של שורת הפקודה,
משתני סביבה וקבצי תצורה (.git/config (ראה git-config(1)), גיטיגנור(5),
תכונות גיטרה(5) ו gitmodules(5)).

שימו לב ש-Git ברמת הליבה מתייחס לשמות נתיבים פשוט כרצפים של שאינם NUL
בתים, אין המרות קידוד שם נתיב (למעט ב-Mac וב-Windows).
לכן, שימוש בשמות נתיבים שאינם ASCII יעבוד בעיקר אפילו על פלטפורמות וקבצים
מערכות המשתמשות בקידוד ASCII מורחבים מדור קודם. עם זאת, מאגרים שנוצרו ב
מערכות כאלה לא יפעלו כראוי במערכות מבוססות UTF-8 (למשל Linux, Mac, Windows)
ולהיפך. בנוסף, כלים רבים מבוססי Git פשוט מניחים ששמות נתיבים הם
UTF-8 ולא יצליח להציג קידודים אחרים בצורה נכונה.

· הודעות יומן Commit מקודדות בדרך כלל ב-UTF-8, אך קידודי ASCII מורחבים אחרים
נתמכים גם. זה כולל ISO-8859-x, CP125x ועוד רבים אחרים, אבל לֹא
קידוד UTF-16/32, EBCDIC ו-CJK ריבוי-בתים (GBK, Shift-JIS, Big5, EUC-x, CP9xx
וכו ').

למרות שאנו ממליצים שהודעות יומן ההתחייבות מקודדות ב-UTF-8, הן הליבה והן
Git Porcelain נועדו לא לכפות UTF-8 על פרויקטים. אם כל משתתפי א
לפרויקט מסוים נוח יותר להשתמש בקידוד מדור קודם, Git אינו אוסר
זה. עם זאת, יש כמה דברים שכדאי לזכור.

1. סילון לבצע ו סילון עץ התחייבות מוציא אזהרה אם הודעת יומן ההתחייבות שניתנה לו
לא נראה כמו מחרוזת UTF-8 חוקית, אלא אם כן אתה אומר במפורש שהפרויקט שלך משתמש ב-a
קידוד מדור קודם. הדרך לומר זאת היא להשתמש ב-i18n.commitencoding ב-.git/config
קובץ, כך:

[i18n]
commitencoding = ISO-8859-1

אובייקטי Commit שנוצרו עם ההגדרה שלמעלה מתעדים את הערך של i18n.commitencoding
בכותרת הקידוד שלו. זה כדי לעזור לאנשים אחרים שמסתכלים עליהם מאוחר יותר. חוסר
כותרת זו מרמזת שהודעת יומן ההתחייבות מקודדת ב-UTF-8.

2. סילון היכנס, סילון לְהַצִיג, סילון להאשים וחברים מסתכלים בכותרת הקידוד של commit
אובייקט, ונסה לקוד מחדש את הודעת היומן לתוך UTF-8 אלא אם צוין אחרת. אתה
יכול לציין את קידוד הפלט הרצוי עם i18n.logoutputencoding ב-.git/config
קובץ, כך:

[i18n]
logooutputencoding = ISO-8859-1

אם אין לך משתנה תצורה זה, הערך של i18n.commitencoding הוא
משמש במקום.

שים לב שבחרנו בכוונה לא לקוד מחדש את הודעת יומן ההתחייבות כאשר יש התחייבות
נעשה כדי לאלץ UTF-8 ברמת אובייקט commit, מכיוון שקידוד מחדש ל-UTF-8 לא
בהכרח פעולה הפיכה.

הסביבה ו תְצוּרָה וריאציות


העורך המשמש לעריכת הודעת יומן ההתחייבות ייבחר מתוך ה-GIT_EDITOR
משתנה סביבה, משתנה התצורה core.editor, סביבת VISUAL
משתנה, או משתנה הסביבה EDITOR (בסדר הזה). לִרְאוֹת git-var(1) לפרטים.

צעקות


פקודה זו יכולה להריץ commit-msg, prepare-commit-msg, pre-commit ו-post-commit hooks.
לִרְאוֹת githooks(5) למידע נוסף.

השתמש ב-git-commit באינטרנט באמצעות שירותי onworks.net



התוכניות המקוונות האחרונות של לינוקס ו-Windows