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

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

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





ה יומן git הפקודה היא ענקית, הגדולה ביותר בפקודת Git רגילה. אורך המדריך שלו מעל 2,500 שורות. לְמַרְבֶּה הַמַזָל, יומן git מספק הרבה מההתנהגות השימושית ביותר שלה מכמה אפשרויות מפתח בלבד.





רישום בסיסי בהתנהגות ברירת המחדל

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





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

הנה כמה פלט יומן git מ המאגר של קוד המקור של git עצמו:



commit 670b81a890388c60b7032a4f5b879f2ece8c4558 (HEAD -> master, origin/next,
origin/master, origin/HEAD)
Author: Junio C Hamano
Date: Mon Jun 14 13:23:28 2021 +0900
The second batch
Signed-off-by: Junio C Hamano

התוצאה מתחילה עם hash hash ( 670 ...) ואחריו רשימה של סניפים המצביעים כעת על התחייבות זו ( HEAD -> מאסטר , וכו.)

כיצד להוריד סרטוני יוטיוב בחינם

השורה הבאה מתארת ​​את כותב ההתחייבות, ונותן את שמם וכתובת הדוא'ל שלה.





התאריך והשעה המלאים של ההתחייבות מופיעים בשורה הבאה.

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





  • עיצוב, המגדיר כיצד Git מציג כל התחייבות.
  • סינון, המגדיר את מי מתחייב יומן git כולל.

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

עיצוב פלט יומן Git

אחת ההתאמות הפשוטות ביותר היא ה --שורה אחת אפשרות שמפיקה פלט קצר מאוד:

git log --oneline

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

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

הצגת תרשים ענף

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

git log --oneline --graph

קָשׁוּר: כיצד ליצור סניף חדש ב- Git

פלט יפה בהתאמה אישית

תוכל להשיג עיצוב מסובך יותר על ידי ציוןו בפירוט באמצעות --יפה אוֹפְּצִיָה. התחביר עובר מפשוט מאוד למורכב הרבה יותר, כך עיין במדריך לפרטים מלאים .

פורמט usb להתקנת חלונות 10
git log --pretty=short

הוא בעצם אותו דבר כמו יומן git ללא התאריך או ההודעה המלאה:

git log --pretty=oneline

שווה ל git log -מקוון .

git log --pretty=fuller

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

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

  • לבצע חשיש
  • %h חשיש מקוצר מקוצר
  • תאריך המחבר
  • %עם תאריך מחבר, קרוב משפחה
  • %s נושא נושא ההודעה
  • % ב להתחייב גוף הודעה
  • %p קיבוץ הורים מקוצר

אתה יכול להוסיף תווים קבועים לפלט ולצבוע אותו. דוגמה זו מציגה גם וריאציה על פורמט התאריך:

git log --pretty=format:'%C(auto) %h [%ad] %s' --date=short

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

הצגת דיפים ביומן

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

git log --shortstat

זה מוסיף שורה כמו:

1 file changed, 48 insertions(+), 2 deletions(-)

לתחתית כל התחייבות. לעתים קרובות תראה תקציר מסוג זה - לאורך כל הדפים ב- GitHub, למשל - וזו דרך שימושית לשפוט במהירות את היקף ההתחייבות הספציפית. למידע מפורט יותר, תוכל לכלול פלט תיקון מלא (diffs) באמצעות -p דֶגֶל:

git log -p

סינון יציאת יומן Git

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

הגבלה לפי כמות

אם אתה רק רוצה לחתוך את התוצאות כדי להציג את ההתחייבויות האחרונות, השתמש ב -[מספר] תחביר:

git log -2

הגבלה לפי תאריך

כדי להגביל את קבוצת ההתחייבויות לטווח תאריכים נתון, השתמש ב --מאז ( --לאחר ) ו --עד ( --לפני ) אפשרויות. כל אלה לוקחים תאריך בפורמט ISO 8601. אתה יכול להשתמש בכל אחד מהם --מאז אוֹ --עד בכוחות עצמם, או שניהם יחד כדי לציין טווח. האפשרויות --לאחר ו --לפני הם מילים נרדפות.

git log --since='2021-01-01' --until='2021-05-01'

הגבלה לפי קובץ

יומן Git יכול להתמקד בקובץ ספציפי ולא בכל קובץ במאגר שלך. זה נהדר לעזור לך לגלות כיצד קובץ מסוים השתנה עם הזמן. כל שעליך לעשות הוא לצרף את שם הקובץ לסוף פקודת git שלך:

git log filename

תראה רק את ההתחייבויות שהשפיעו שם קובץ .

הבדלים בין ענפים

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

  1. הצג התחייבויות שהן עיקריות אך אינן ענף: | _+_ |
  2. הצג התחייבויות שנמצאות בענף, אך אינן עיקריות: | _+_ |
  3. הצג התחייבויות הקיימות רק בענף או ראשי: | _+_ |

הבדלים בין שני תגים

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

git log --oneline origin/branch..origin/main

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

git log --oneline origin/ main ..origin/ branch

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

סקור את העבר עם יומן Git

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

העברת קבצים מלינוקס לחלונות
לַחֲלוֹק לַחֲלוֹק צִיוּץ אימייל הצטרף למגמת הקידוד החברתי ותרם למאגרי GitHub

רוצה להפעיל את שרירי הקידוד שלך ולעזור לפרויקטים של קוד פתוח? הנה איך לתרום ל- GitHub.

קרא הבא
נושאים קשורים
  • תִכנוּת
  • GitHub
  • טיפים לקידוד
על הסופר בובי ג'ק(58 מאמרים פורסמו)

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

עוד מאת בובי ג'ק

הירשם לניוזלטר שלנו

הצטרף לניוזלטר שלנו לקבלת טיפים, סקירות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!

לחצו כאן להרשמה