הערות מבוא הכרחיות:
- קרא, חזור והבין את המאמר על git . זה יעזור להבטיח שהכל כבר מוגדר ומוכן לעבודה.
- התקן את Intellij IDEA.
- הקדישו שעה של זמן אישי לספיגה מלאה.
שכפל את הפרויקט באופן מקומי
יש כאן שתי אפשרויות.- אם כבר יש לך חשבון Github ואתה רוצה לדחוף משהו אחר כך, עדיף לחלק את הפרויקט לעצמך ולשכפל את העותק שלך. איך להכין מזלג - תיארתי במאמר זה בפרק דוגמה לזרימת העבודה של המזלג .
- לשכפל מהמאגר שלי ולעשות הכל באופן מקומי בלי יכולת לדחוף את כל העניין לשרת. אחרי הכל, זה יהיה המאגר שלי))
-
העתק את כתובת הפרויקט:
-
פתח את Intellij IDEA ובחר קבל מבקרת גרסה:
-
העתק והדבק את הכתובת לפרויקט:
-
תתבקש ליצור פרויקט Intellij IDEA. אנו מקבלים את ההצעה:
-
מכיוון שאין מערכת בנייה, וזה לא היקף המאמר, בחר צור פרויקט ממקורות קיימים :
-
הבא יהיה ציור שמן כזה: סידרנו את השיבוט, עכשיו אנחנו יכולים להסתכל מסביב.
מבט ראשון על Intellij IDEA כממשק Git
תסתכל מקרוב על הפרויקט המשובט: כבר שם תוכל לקבל מידע רב על מערכת בקרת הגרסאות. הראשון הוא לוח בקרת הגרסה בפינה השמאלית התחתונה. בו תוכלו למצוא את כל השינויים המקומיים ולקבל רשימה של commits (בדומה ל-git log). בואו נעבור להרצאת היומן . ישנו מרכיב ויזואלי מסוים שעוזר להבין איך בדיוק עבר תהליך הפיתוח. לדוגמה, אתה יכול לראות שענף חדש נוצר עם כותרת commit שנוספה ל-txt , אשר מוזגה לאחר מכן לתוך הענף הראשי. אם תלחצו על commit, בפינה הימנית תוכלו לראות את כל המידע על ה-commit: כל השינויים והמטא נתונים שלו. בנוסף, אתה יכול לראות אילו שינויים בוצעו. יתרה מכך, הסכסוך נפתר שם. IDEA גם מראה זאת בצורה מושלמת. אם תלחצו פעמיים על הקובץ ששונה במהלך ה-commit הזה, נראה איך הסכסוך נפתר: ניתן להבחין שמימין ומשמאל היו שתי גרסאות של אותו קובץ שהיה צריך למזג לאחת. ובאמצע התוצאה הסופית. כאשר לפרויקט יש הרבה סניפים, מחויבים ומשתמשים שעובדים בפרויקט, צריך לחפש בנפרד לפי ענף (ענף), משתמש (משתמש) ותאריך (תאריך): והדבר האחרון שאני רוצה להסביר לפני שמתחילים הוא איך להבין באיזה סניף אנחנו נמצאים. אני אתן לך דקה לחפש... מצאת? אתה מוותר? :D בפינה הימנית התחתונה יש כפתור Git: master , כאשר אחרי Git: הוא מראה באיזה ענף הפרויקט נמצא כרגע. אם תלחצו על הכפתור תוכלו לעשות הרבה דברים שימושיים: לעבור לסניף אחר, ליצור אחד חדש, לשנות שם של קיים וכדומה.עבודה עם המאגר
מקשי קיצור שימושיים
כדי להמשיך לעבוד, עליך לזכור כמה מקשי קיצור שימושיים מאוד:- ctrl + t - קבל את השינויים האחרונים ממאגר מרוחק (git pull).
- ctrl + k - בצע/הצג את כל השינויים הזמינים כעת. זה כולל גם קבצים לא במעקב וגם קבצים שהשתנו (ראה מאמר שלי על git, זה מתואר שם) (git commit).
- ctrl + shift + k היא פקודה לדחיפת שינויים למאגר מרוחק. כל ה-commits שנוצרו באופן מקומי ועדיין לא נמצאות בשלט יוצעו ל-push (git push).
- alt + ctrl + z - החזר שינויים בקובץ ספציפי למצב של ה-commit האחרון שנוצר במאגר המקומי. אם תבחר את כל הפרויקט בפינה השמאלית העליונה, תוכל להחזיר שינויים לכל הקבצים.
מה אנחנו רוצים?
כדי לעבוד, אנחנו צריכים לשלוט בסקריפט הבסיסי, המשמש בכל מקום. המשימה היא ליישם פונקציונליות חדשה בענף נפרד ולדחוף אותה למאגר מרוחק (ואז אתה צריך ליצור בקשת משיכה נוספת עבור הסניף הראשי, אבל זה מעבר להיקף המאמר שלנו). מה אני צריך לעשות?-
קבל את כל השינויים כרגע בסניף הראשי (מאסטר, למשל).
-
בהתבסס על הראשי הזה, צור אחד נפרד לעבודה שלך.
-
הטמעת פונקציונליות חדשה.
-
עבור אל הסניף הראשי ובדוק אם היו שינויים חדשים בזמן העבודה. אם זה לא היה, אז הכל בסדר, ואם כן, אז אנחנו עושים את הפעולות הבאות: אנחנו הולכים לענף העובד ומבססים מחדש את השינויים מהענף הראשי לענף שלנו. אם הכל הלך כשורה, אז מצוין. אבל בהחלט עשויים להיות קונפליקטים. וניתן לפתור אותם מראש מבלי לבזבז זמן על מאגר מרוחק.
זה נראה, למה לעשות את זה? זהו כלל של צורה טובה, שמונע מעימותים להיווצר לאחר דחיפת הסניף שלך למאגר המקומי (יש כמובן סיכוי שהם עדיין יהיו קיימים, אבל הוא הופך להיות הרבה יותר קטן).
- דחף את השינויים שלך למאגר מרוחק.
לקבל שינויים משרת מרוחק?
הוספתי תיאור ל-README עם התחייבות חדשה ואני רוצה לקבל את השינויים האלה. מוצעת בחירה בין מיזוג ובסיס מחדש אם נעשו שינויים הן במאגרים המקומיים והן במאגרים המרוחקים. בחר מיזוג. הזן ctrl + t : כתוצאה מכך, אתה יכול לראות כיצד ה-README השתנה, כלומר. שינויים מהמאגר המרוחק נמשכו למעלה, ובפינה הימנית התחתונה תוכלו לראות את כל הפרטים של השינויים שהגיעו מהשרת.צור ענף חדש המבוסס על מאסטר
הכל פשוט כאן.-
עבור לפינה הימנית התחתונה ולחץ על Git: master , בחר + סניף חדש .
עזוב את תיבת הסימון של סניף Checkout וכתוב את שם הסניף החדש. בשבילי זה יהיה Readme-משפר .
לאחר מכן, Git: master ישתנה ל- Git: readme-improver .
הדמיית עבודה מקבילה
כדי שיופיעו קונפליקטים, מישהו חייב ליצור אותם :D אני אערוך את ה-README עם commit חדש דרך הדפדפן ובכך ידמה עבודה מקבילה. אומרים שמישהו במהלך עבודתי ביצע שינויים באותו קובץ כמוני, מה שיוביל לסכסוך. אסיר את המילה "לגמרי" משורה 10.יישם את הפונקציונליות שלך
המשימה היא לשנות את ה-README ולהוסיף תיאור למאמר החדש, כלומר, העבודה ב-git מתבצעת דרך Intellij IDEA. הוסף את זה: השינויים הושלמו, עכשיו אתה יכול ליצור commit. הקש על מקש הקיצור ctrl + k , נקבל: לפני יצירת commit, עליך להסתכל היטב על מה שמוצע בחלון זה. הוספתי במיוחד חץ כדי להראות לך היכן לחפש. יש שם הרבה דברים מעניינים. בקטע Commit Message אנו כותבים את הטקסט של ה-commit, וכדי שהוא ייווצר, עליך ללחוץ על כפתור Commit . עדיין לא מצאתי איך לעשות את זה עם מקש קיצור, אז אם מישהו מוצא אותו, תכתוב, אני מאוד אשמח. אנו כותבים שה-README השתנה ויוצרים commit. כתוצאה מכך, תופיע התראה בפינה השמאלית התחתונה עם שם ה-commit:בדוק אם הענף הראשי השתנה
השלמנו את המשימה, זה עובד, כתבנו את המבחנים, הכל בסדר. אבל לפני שדוחפים לשרת, אתה צריך לבדוק אם היו שינויים כלשהם בסניף הראשי במהלך הזמן הזה. איך זה יכל לקרות? זה מאוד פשוט: מישהו קיבל משימה אחריך, והמישהו הזה עשה את זה מהר יותר ממך. לכן, אנחנו עוברים לסניף המאסטר. כדי לעשות זאת, עליך לעשות בפינה הימנית התחתונה את מה שמוצג באיור למטה: בענף המאסטר, הקש ctrl + t כדי לקבל את השינויים האחרונים שלו מהשרת המרוחק. אם תסתכל על השינויים שבוצעו, תוכל להבחין בקלות במה שקרה: כפי שאתה יכול לראות, המילה "לגמרי" הוסרה. אולי זה היה מישהו מהשיווק שהחליט שאי אפשר לכתוב את זה ככה ונתן למפתחים את המשימה לעדכן אותו. כעת יש לנו את הגרסה העדכנית ביותר של סניף המאסטר באופן מקומי. בוא נחזור ל- readme-improver . כעת עלינו לבסס מחדש את השינויים מהענף הראשי לשלנו. אנחנו עושים: אם עקבתם איתי אחר הכל נכון, התוצאה צריכה להיות התנגשות בקובץ README: יש כאן גם הרבה מידע שצריך להבין ולספוג. זה מציג רשימה (במקרה שלנו של אלמנט אחד) של קבצים שיש להם התנגשויות. אנו יכולים לבחור שלוש אפשרויות:- קבל את שלך - קבל רק שינויים מ-readme-improver.
- קבל את שלהם - קבל רק שינויים מאסטר.
- מיזוג - בחר בעצמך מה לשמור ומה להסיר.
- אלו הם שינויים מ-readme-improver.
- תוֹצָאָה. לעת עתה זה אותו הדבר כפי שהיה לפני השינויים.
- שינויים מסניף המאסטר.
דחף שינויים לשרת מרוחק
השלב הבא הוא לדחוף את השינויים לשרת המרוחק וליצור בקשת משיכה. לשם כך, פשוט הקש ctrl + shift + k , ולאחר מכן נקבל: בצד שמאל תהיה רשימה של commits שלא נדחפו למאגר המרוחק, ומצד ימין יהיו כל הקבצים שהיו. השתנה. זה הכל: לחצו על Push , ותשמחו :) אם הדחיפה הצליחה, תופיע הודעה כזו בפינה הימנית התחתונה:חלק בונוס
בהתחלה לא רציתי להוסיף יצירת בקשת משיכה למאמר, אבל מסתבר שזה לא מאוד שלם בגלל זה. לכן, אנחנו הולכים למאגר GitHub (אם הוא שלך, כמובן)))) ורואים ש-GitHub כבר יודע מה להציע לנו: לחץ על Compare & pull request , ולאחר מכן לחץ על Create pull request . בשל העובדה שפתרנו קונפליקטים מראש, כעת בעת יצירת בקשת משיכה, אתה יכול מיד למזג אותה: זה כל מה שרציתי לומר לך הפעם. כמובן, הרגע פתחתי את הדלת והראיתי לך חלק קטן. את השאר תמצא בעצמך לפי הצורך. כרגיל, אני מזמין אתכם להירשם לחשבון GitHub שלי , בו אני מפרסם פרויקטים המבוססים על טכנולוגיות שונות בהן אני משתמש בעבודה. לאחרונה היה לי הישג אישי - הפרויקט שלי כבר דורג על ידי יותר ממאה מפתחים. זו הרגשה מדהימה של שמחה שמישהו משתמש במה שאתה יצרת. ומשתמש בו לתמיד.קישורים שימושיים
- JavaRush: תחילת העבודה עם Git: מדריך מפורט למתחילים
- GitHub: פרויקט הדגמה לעבוד איתו
- JavaRush: ניתוח אסטרטגיות הסתעפות ב-Git
- JetBrains: הגדר מאגר Git
- Habr: Git rebase
- GitHub: החשבון שלי
GO TO FULL VERSION