JavaRush /בלוג Java /Random-HE /בואו נחבר את Git עם Intellij IDEA
Roman Beekeeper
רָמָה

בואו נחבר את Git עם Intellij IDEA

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

הערות מבוא הכרחיות:

  1. קרא, חזור והבין את המאמר על git . זה יעזור להבטיח שהכל כבר מוגדר ומוכן לעבודה.
  2. התקן את Intellij IDEA.
  3. הקדישו שעה של זמן אישי לספיגה מלאה.
לעבודה, ניקח את פרויקט ההדגמה שהשתמשתי בו עבור המאמר על git. עדכון:בזמן הפרסום, ממשק המשתמש החדש של Github כבר יהיה זמין, וכמה אייקונים לא יהיו במקום שבו הוא מוצג במאמר. אל תיבהל: פשוט תצטרך לא לעבור לממשק המשתמש החדש, או לחפש אותם.

שכפל את הפרויקט באופן מקומי

יש כאן שתי אפשרויות.
  1. אם כבר יש לך חשבון Github ואתה רוצה לדחוף משהו אחר כך, עדיף לחלק את הפרויקט לעצמך ולשכפל את העותק שלך. איך להכין מזלג - תיארתי במאמר זה בפרק דוגמה לזרימת העבודה של המזלג .
  2. לשכפל מהמאגר שלי ולעשות הכל באופן מקומי בלי יכולת לדחוף את כל העניין לשרת. אחרי הכל, זה יהיה המאגר שלי))
כדי לשכפל פרויקט מ-Github, עליך להעתיק את הקישור לפרויקט ולהעביר אותו ל-IntelliJ IDEA:
  1. העתק את כתובת הפרויקט:

    בואו נחבר את Git עם Intellij IDEA - 2
  2. פתח את Intellij IDEA ובחר קבל מבקרת גרסה:

    בואו נחבר את Git עם Intellij IDEA - 3
  3. העתק והדבק את הכתובת לפרויקט:

    בואו נחבר את Git עם Intellij IDEA - 4
  4. תתבקש ליצור פרויקט Intellij IDEA. אנו מקבלים את ההצעה:

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

    בואו נחבר את Git עם Intellij IDEA - 6
  6. הבא יהיה ציור שמן כזה: בואו נחבר את Git עם Intellij IDEA - 7סידרנו את השיבוט, עכשיו אנחנו יכולים להסתכל מסביב.

מבט ראשון על Intellij IDEA כממשק Git

תסתכל מקרוב על הפרויקט המשובט: כבר שם תוכל לקבל מידע רב על מערכת בקרת הגרסאות. הראשון הוא לוח בקרת הגרסה בפינה השמאלית התחתונה. בו תוכלו למצוא את כל השינויים המקומיים ולקבל רשימה של commits (בדומה ל-git log). בואו נעבור להרצאת היומן . ישנו מרכיב ויזואלי מסוים שעוזר להבין איך בדיוק עבר תהליך הפיתוח. לדוגמה, אתה יכול לראות שענף חדש נוצר עם כותרת commit שנוספה ל-txt , אשר מוזגה לאחר מכן לתוך הענף הראשי. אם תלחצו על commit, בפינה הימנית תוכלו לראות את כל המידע על ה-commit: כל השינויים והמטא נתונים שלו. Подружим Git с Intellij IDEA - 8בנוסף, אתה יכול לראות אילו שינויים בוצעו. יתרה מכך, הסכסוך נפתר שם. IDEA גם מראה זאת בצורה מושלמת. אם תלחצו פעמיים על הקובץ ששונה במהלך ה-commit הזה, נראה איך הסכסוך נפתר: ניתן להבחין Подружим Git с Intellij IDEA - 9שמימין ומשמאל היו שתי גרסאות של אותו קובץ שהיה צריך למזג לאחת. ובאמצע התוצאה הסופית. כאשר לפרויקט יש הרבה סניפים, מחויבים ומשתמשים שעובדים בפרויקט, צריך לחפש בנפרד לפי ענף (ענף), משתמש (משתמש) ותאריך (תאריך): Подружим Git с Intellij IDEA - 10והדבר האחרון שאני רוצה להסביר לפני שמתחילים הוא איך להבין באיזה סניף אנחנו נמצאים. אני אתן לך דקה לחפש... מצאת? אתה מוותר? :D בפינה הימנית התחתונה יש כפתור Git: master , כאשר אחרי Git: הוא מראה באיזה ענף הפרויקט נמצא כרגע. אם תלחצו על הכפתור תוכלו לעשות הרבה דברים שימושיים: לעבור לסניף אחר, ליצור אחד חדש, לשנות שם של קיים וכדומה. Подружим Git с Intellij IDEA - 11

עבודה עם המאגר

מקשי קיצור שימושיים

כדי להמשיך לעבוד, עליך לזכור כמה מקשי קיצור שימושיים מאוד:
  1. ctrl + t - קבל את השינויים האחרונים ממאגר מרוחק (git pull).
  2. ctrl + k - בצע/הצג את כל השינויים הזמינים כעת. זה כולל גם קבצים לא במעקב וגם קבצים שהשתנו (ראה מאמר שלי על git, זה מתואר שם) (git commit).
  3. ctrl + shift + k היא פקודה לדחיפת שינויים למאגר מרוחק. כל ה-commits שנוצרו באופן מקומי ועדיין לא נמצאות בשלט יוצעו ל-push (git push).
  4. alt + ctrl + z - החזר שינויים בקובץ ספציפי למצב של ה-commit האחרון שנוצר במאגר המקומי. אם תבחר את כל הפרויקט בפינה השמאלית העליונה, תוכל להחזיר שינויים לכל הקבצים.
Подружим Git с Intellij IDEA - 12

מה אנחנו רוצים?

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

  2. בהתבסס על הראשי הזה, צור אחד נפרד לעבודה שלך.

  3. הטמעת פונקציונליות חדשה.

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

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

  5. דחף את השינויים שלך למאגר מרוחק.
מה יקרה אחר כך תלוי במטרות ובדמיון שלך.

לקבל שינויים משרת מרוחק?

הוספתי תיאור ל-README עם התחייבות חדשה ואני רוצה לקבל את השינויים האלה. מוצעת בחירה בין מיזוג ובסיס מחדש אם נעשו שינויים הן במאגרים המקומיים והן במאגרים המרוחקים. בחר מיזוג. הזן ctrl + t : Подружим Git с Intellij IDEA - 13כתוצאה מכך, אתה יכול לראות כיצד ה-README השתנה, כלומר. שינויים מהמאגר המרוחק נמשכו למעלה, ובפינה הימנית התחתונה תוכלו לראות את כל הפרטים של השינויים שהגיעו מהשרת. Подружим Git с Intellij IDEA - 14

צור ענף חדש המבוסס על מאסטר

הכל פשוט כאן.
  1. עבור לפינה הימנית התחתונה ולחץ על Git: master , בחר + סניף חדש .

    Подружим Git с Intellij IDEA - 15
  2. עזוב את תיבת הסימון של סניף Checkout וכתוב את שם הסניף החדש. בשבילי זה יהיה Readme-משפר .

    Подружим Git с Intellij IDEA - 16

    לאחר מכן, Git: master ישתנה ל- Git: readme-improver .

הדמיית עבודה מקבילה

כדי שיופיעו קונפליקטים, מישהו חייב ליצור אותם :D אני אערוך את ה-README עם commit חדש דרך הדפדפן ובכך ידמה עבודה מקבילה. אומרים שמישהו במהלך עבודתי ביצע שינויים באותו קובץ כמוני, מה שיוביל לסכסוך. אסיר את המילה "לגמרי" משורה 10.

יישם את הפונקציונליות שלך

המשימה היא לשנות את ה-README ולהוסיף תיאור למאמר החדש, כלומר, העבודה ב-git מתבצעת דרך Intellij IDEA. הוסף את זה: Подружим Git с Intellij IDEA - 17השינויים הושלמו, עכשיו אתה יכול ליצור commit. הקש על מקש הקיצור ctrl + k , נקבל: Подружим Git с Intellij IDEA - 18לפני יצירת commit, עליך להסתכל היטב על מה שמוצע בחלון זה. הוספתי במיוחד חץ כדי להראות לך היכן לחפש. יש שם הרבה דברים מעניינים. בקטע Commit Message אנו כותבים את הטקסט של ה-commit, וכדי שהוא ייווצר, עליך ללחוץ על כפתור Commit . עדיין לא מצאתי איך לעשות את זה עם מקש קיצור, אז אם מישהו מוצא אותו, תכתוב, אני מאוד אשמח. אנו כותבים שה-README השתנה ויוצרים commit. כתוצאה מכך, תופיע התראה בפינה השמאלית התחתונה עם שם ה-commit: Подружим Git с Intellij IDEA - 19

בדוק אם הענף הראשי השתנה

השלמנו את המשימה, זה עובד, כתבנו את המבחנים, הכל בסדר. אבל לפני שדוחפים לשרת, אתה צריך לבדוק אם היו שינויים כלשהם בסניף הראשי במהלך הזמן הזה. איך זה יכל לקרות? זה מאוד פשוט: מישהו קיבל משימה אחריך, והמישהו הזה עשה את זה מהר יותר ממך. לכן, אנחנו עוברים לסניף המאסטר. כדי לעשות זאת, עליך לעשות בפינה הימנית התחתונה את מה שמוצג באיור למטה: Подружим Git с Intellij IDEA - 20בענף המאסטר, הקש ctrl + t כדי לקבל את השינויים האחרונים שלו מהשרת המרוחק. אם תסתכל על השינויים שבוצעו, תוכל להבחין בקלות במה שקרה: Подружим Git с Intellij IDEA - 21כפי שאתה יכול לראות, המילה "לגמרי" הוסרה. אולי זה היה מישהו מהשיווק שהחליט שאי אפשר לכתוב את זה ככה ונתן למפתחים את המשימה לעדכן אותו. כעת יש לנו את הגרסה העדכנית ביותר של סניף המאסטר באופן מקומי. בוא נחזור ל- readme-improver . כעת עלינו לבסס מחדש את השינויים מהענף הראשי לשלנו. אנחנו עושים: Подружим Git с Intellij IDEA - 22אם עקבתם איתי אחר הכל נכון, התוצאה צריכה להיות התנגשות בקובץ README: Подружим Git с Intellij IDEA - 23יש כאן גם הרבה מידע שצריך להבין ולספוג. זה מציג רשימה (במקרה שלנו של אלמנט אחד) של קבצים שיש להם התנגשויות. אנו יכולים לבחור שלוש אפשרויות:
  1. קבל את שלך - קבל רק שינויים מ-readme-improver.
  2. קבל את שלהם - קבל רק שינויים מאסטר.
  3. מיזוג - בחר בעצמך מה לשמור ומה להסיר.
לא ברור מה השתנה שם, ואם השינויים נמצאים במאסטר, אז הם נחוצים שם, ואנחנו לא יכולים פשוט לקבל את השינויים שלנו, אז אנחנו בוחרים במיזוג : Подружим Git с Intellij IDEA - 24כאן אתה יכול לראות שיש שלושה חלקים:
  1. אלו הם שינויים מ-readme-improver.
  2. תוֹצָאָה. לעת עתה זה אותו הדבר כפי שהיה לפני השינויים.
  3. שינויים מסניף המאסטר.
אנחנו צריכים לאסוף את התוצאה בצורה כזו שתספק את כולם. לכן, למדנו מה הם עשו לפנינו, והבנו שהם פשוט הסירו את המילה "לגמרי". טוב בסדר, אין בעיה. המשמעות היא שנסיר אותו כתוצאה מכך ונוסיף את השינויים שלנו. ברגע שנתקן את התוצאה, תוכל ללחוץ על החל . לאחר מכן, תופיע הודעה שהבסיס מחדש הצליח: Подружим Git с Intellij IDEA - 25כך פתרנו את הקונפליקט הראשון שלנו באמצעות Intellij IDEA :D

דחף שינויים לשרת מרוחק

השלב הבא הוא לדחוף את השינויים לשרת המרוחק וליצור בקשת משיכה. לשם כך, פשוט הקש ctrl + shift + k , ולאחר מכן נקבל: Подружим Git с Intellij IDEA - 26בצד שמאל תהיה רשימה של commits שלא נדחפו למאגר המרוחק, ומצד ימין יהיו כל הקבצים שהיו. השתנה. זה הכל: לחצו על Push , ותשמחו :) אם הדחיפה הצליחה, תופיע הודעה כזו בפינה הימנית התחתונה: Подружим Git с Intellij IDEA - 27

חלק בונוס

בהתחלה לא רציתי להוסיף יצירת בקשת משיכה למאמר, אבל מסתבר שזה לא מאוד שלם בגלל זה. לכן, אנחנו הולכים למאגר GitHub (אם הוא שלך, כמובן)))) ורואים ש-GitHub כבר יודע מה להציע לנו: Подружим Git с Intellij IDEA - 28לחץ על Compare & pull request , ולאחר מכן לחץ על Create pull request . בשל העובדה שפתרנו קונפליקטים מראש, כעת בעת יצירת בקשת משיכה, אתה יכול מיד למזג אותה: Подружим Git с Intellij IDEA - 29זה כל מה שרציתי לומר לך הפעם. כמובן, הרגע פתחתי את הדלת והראיתי לך חלק קטן. את השאר תמצא בעצמך לפי הצורך. כרגיל, אני מזמין אתכם להירשם לחשבון GitHub שלי , בו אני מפרסם פרויקטים המבוססים על טכנולוגיות שונות בהן אני משתמש בעבודה. לאחרונה היה לי הישג אישי - הפרויקט שלי כבר דורג על ידי יותר ממאה מפתחים. זו הרגשה מדהימה של שמחה שמישהו משתמש במה שאתה יצרת. ומשתמש בו לתמיד.

קישורים שימושיים

  1. JavaRush: תחילת העבודה עם Git: מדריך מפורט למתחילים
  2. GitHub: פרויקט הדגמה לעבוד איתו
  3. JavaRush: ניתוח אסטרטגיות הסתעפות ב-Git
  4. JetBrains: הגדר מאגר Git
  5. Habr: Git rebase
  6. GitHub: החשבון שלי
הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION