Git School · FluxGit

יצירת commit לחלק מקובץ

FluxGit ·

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

התשובה הקצרה

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

הדוגמה והתנאים

בדוגמה יש תיקון והדפסת debug באותו קובץ. נדרשים שני שינויי טקסט שאפשר לבחון בנפרד.

בדיקת המצב לפני שינוי

השוו git diff ו-git diff --cached. הראשון מציג שינויים שלא הוכנסו לאינדקס; השני מציג בדיוק מה ייכלל ב-commit הבא.

git status --short
git diff
git diff --cached

שמירת הפניה או checkout נפרד

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

המסלול הראשון

פתחו את ה-diff ב-FluxGit ובחרו Stage change בתיקון. בפאנל ה-commit בדקו שהדפסת ה-debug עדיין מחוץ לאינדקס.

בחירה מכוונת בתוצאה אחרת

במסוף git add -p מאפשר לקבל או לדחות hunks. אפשר להשתמש ב-s לחלוקה או ב-e לעריכת ה-patch כאשר זה מתאים.

git add -p -- app.py
git diff --cached

מגבלות וחריגים

היחידה הקטנה ביותר ב-FluxGit היא שינוי בתוך hunk. שינוי של שש שורות נכנס בשלמותו לאינדקס; זו אינה בחירת טווח שורות שרירותי עם העכבר.

התנגשויות וניקוי

הוצאה מהאינדקס שומרת את הקובץ; השלכת שינוי משנה את התוכן. FluxGit יוצר snapshot בטיחות לפני השלכה חלקית. אלה פעולות שונות.

אימות התוצאה

קראו git diff --cached לפני ה-commit ו-git show אחריו. בדקו גם git diff כדי לוודא שהעבודה שנותרה עדיין בקובץ.

git show --stat HEAD
git diff
git status --short

שאלות נפוצות

ב-commit רגיל שלא שותף, git reset --soft HEAD^ יכול להחזיר את התוכן לאינדקס. בדקו מצב ותאמו לפני שכתוב היסטוריה משותפת.

בדיקת הפעולה ב-FluxGit

Commit Studio מציג את ה-diff ואת ההודעה יחד. בדקו את התוכן תוך כתיבת ההודעה וצרו commits בעלי מטרה ברורה.

תיעוד Git הרשמי

Git School · 1:47

קומיט של חלק מקובץ ב-Git: הכינו רק את התיקון

תיקנתם באג והשארתם הדפסת דיבוג באותו קובץ? הכינו רק את התיקון לקומיט. הכירו את אזור ההכנה של Git, את Stage change ב-FluxGit ואת git add -p.

קומיט של חלק מקובץ ב-Git: הכינו רק את התיקון
הקריינות באנגלית. ב-YouTube זמינות כתוביות ידניות ב-11 שפות. התמליל הזה בעברית.

צפייה ב-YouTube — נפתח בלשונית חדשה

הוקלט במאגר בדיקה.

קריאת תמליל הקריינות
  1. 00:03 תיקנתם באג והשארתם הדפסת דיבוג באותו קובץ. אתם רוצים קומיט נקי: התיקון, בלי ההדפסה.
  2. 00:11 זה הקובץ app.py ב-FluxGit, עם שני שינויים.
  3. 00:17 Git יוצר קומיט מאזור ההכנה, ולא מהתיקייה כולה. בהתחלה שני השינויים נמצאים רק בדיסק. Stage change מכניס רק את התיקון לאזור ההכנה. הקומיט כולל בדיוק את זה, וההדפסה נשארת בדיסק ללא קומיט.
  4. 00:36 פתחו את הקובץ. תצוגת ההבדלים מציגה שני שינויים, ולכל אחד כפתור Stage change משלו.
  5. 00:43 לחצו על Stage change של התיקון. רק השינוי הזה מוכנס לאזור ההכנה; ההדפסה נשארת במקומה.
  6. 00:51 בחזרה בלוח הקומיט: התיקון מוכן, וההדפסה לא.
  7. 00:56 כתבו הודעה וצרו קומיט.
  8. 01:06 הקומיט החדש כולל רק את התיקון. ההדפסה עדיין בדיסק ללא קומיט.
  9. 01:13 התחרטתם? ביטול מחזיר את הקומיט לאחור. התיקון חוזר לאזור ההכנה והקבצים לא משתנים.
  10. 01:22 בטרמינל השתמשו ב-git add -p. Git שואל על כל שינוי: yes לתיקון, no להדפסה, ואז קומיט.
  11. 01:33 סיכום: הכינו שינויים, לא קבצים שלמים. רעיון אחד בכל קומיט, וביטול אם טעיתם. בשיעור הבא: תיקון הקומיט האחרון.

מסלולים קשורים

הורדת FluxGit