Що таке Head в Git?

Іноді ви бачите документацію Git, що посилається на щось, що називається HEAD. Наприклад, галузь має бути повністю інтегрована в HEAD. Але що саме Git HEAD?

У цій статті ми дізнаємось більше про Git HEAD, але перед цим давайте просто підведемо підсумки, що таке Git і для чого він використовується. Git - це інструмент розподіленого управління, який використовується не лише менеджерами продуктів та розробниками, але й науковцями даних для управління розробкою вихідного коду програми та її історією.

Вказівник голови в Git

Git підтримує змінну для посилання, яку називають HEAD до останнього комітету в останній гілці оформлення замовлення. Ви можете уявити HEAD як "поточну скоєну гілку". І ми можемо розглядати як вказівник, оскільки мета цієї змінної полягає в тому, щоб вказувати або діяти як посилання на певний комітет у сховищі. Скажімо, ми робимо нове введення в репо, тоді вказівник або HEAD збирається перемістити або змінити свою позицію, щоб вказати на нове введення.

HEAD вказує на початкову точку нинішньої гілки у сховищі. Це може розглядатися як останній стан або останній перевірений пункт у сховищі. Іншими словами, HEAD - це вказівник на батьківського складу наступних команд або там, де відбудеться наступне введення, оскільки саме там репо зупинилося.

Доброю аналогією були б програвачі звукозапису та клавіші відтворення та запису на ньому як HEAD. Коли звук починає записувати, стрічка рухається вперед, просуваючись повз голову, записуючи на неї. Кнопка "Стоп" зупиняє запис, в той же час вказуючи на точку, яку він останній час записав, і на точку, в якій зупинилася головка запису, - вона продовжуватиме записувати знову, коли знову натиснути "Запис". Якщо ми рухаємось, вказівник голови переміщується в різні місця, проте коли натиснути кнопку Record знову починається запис з тієї точки, на яку вказувала голова, коли натискалася Record.

У Git ви можете скористатися командою нижче, щоб побачити, що вказує вказівник HEAD.

кіт .git / HEAD:

  • Він показує вміст .git / HEAD, як показано нижче
  • ref: refs / heads / master
  • В основному це символічне посилання на останню вчинену гілку, яку ви перевірили, і ефективно вказує на поступку на початку поточної гілки.

Кожен раз, коли ми робимо нове зобов’язання, як показано нижче, воно додається перед поточним HEAD, завдяки чому Git автоматично вказує HEAD на нову команду.

git diff HEAD..HEAD ~ 3: Точніше, HEAD - це рухомий вказівник, який міг би посилатися на поточну гілку, або не міг, але завжди посилається на "поточну комісію". Це (поточна фіксація) - це команда, яка "git počin" будується на вершині, і часто порівнюється з "git diff-cached" та "git status".

git log @: Введення "HEAD" займає час, особливо коли є ярлик, натомість "@". Символ "@" обраний тому, що він, природно, відповідає синтаксису (наприклад, (u)), окрім того, що немає посилань чи операцій, і коли таких немає "HEAD 'можна припустити замість @.

1. Окрема голова

HEAD правдоподібно вказати на певну зміну, яка ще не була пов'язана з назвою філії. Це ситуація, яку називають відокремленою ГОЛОВОЮ, і це трапляється, коли хтось перевіряє щось, що не є (локальною) гілкою, скажімо, конкретну комісію, віддалену гілку чи тег. Отже, відокремлена HEAD може використовуватися для перевірки комісії, яка не вказує на початкову точку будь-якої існуючої гілки, або для створення абсолютно нового комітету, на який не обов'язково посилається відома гілка.

Візьмемо приклад, коли ми перевіряємо фіксацію b тим чи іншим способом

  • git check master master ^#or
  • git checkout v3.1

Зауважте, що незалежно від того, яка команда оформлення замовлення не використовується, HEAD тепер посилається на фіксацію b. Цей статус b називається відокремленим станом HEAD.

Давайте розглянемо приклади нижче, щоб побачити, що відбувається при створенні комітету:

git checkout -b foo: Спочатку створюється нова гілка з назвою foo, яка посилається на фіксування f, яка в свою чергу оновлює HEAD, щоб вказувати на foo foo. Це означає, що він більше не буде знаходитись у відокремленому стані HEAD.

git branch foo: Це створює нову гілку з назвою foo, яка посилається на фіксування f, але HEAD залишається відключеним.

git tag foo: Це також створює новий тег з назвою foo, який посилається на фіксування f, але HEAD залишається відключеним.

Припустимо, ви змінили позицію, відмінну від фіксації f, тоді спочатку слід відновити ім'я об'єкта (як правило, це робиться за допомогою команди git reflog), а після цього створюється посилання на нього.

Щоб дізнатись про останні два посилання на HEAD, про які йдеться, використовуйте одну з наведених нижче команд:

  • git log -g -2 HEAD #or
  • git reflog -2 HEAD

2. ORIG_HEAD

Є ще один вид ГОЛОВИ, про який потрібно знати. Команди "об'єднати" або "потягнути" завжди залишали початковий наконечник поточної гілки в тому, що називається ORIG_HEAD. Його можна використовувати за допомогою наступних команд.

git reset –hard ORIG_HEAD: Використовуючи це, жорсткий скидання повертає файл індексу разом із робочим деревом до початкового стану, скидаючи кінчик гілки до цього фіксатора, але він відкидає локальні зміни.

git reset –mege ORIG_HEAD: Але що робити, якщо ви хочете зберегти локальні зміни, якщо ви можете скористатися вищезазначеною командою для збереження локальних змін. Крім того, злиття завжди встановлює '.git / ORIG_HEAD' у початковий стан HEAD, проблемне злиття можна видалити за допомогою "git reset ORIG_HEAD". На додаток до цього, злиття встановлює '.git / ORIG_HEAD' у початковий стан HEAD у будь-який час, щоб усунути проблемне злиття, використовуючи 'git reset ORIG_HEAD'.

Якщо ви зіткнулися з будь-якою проблемою з кількома комітами, ORIG_HEAD встановлюється на початкову точку поточної гілки, перш ніж застосовувати будь-які виправлення, оскільки помилка в комітах може бути легше виправлена ​​таким чином.

Переваги Git HEAD

  • Він використовується для вказівки на нещодавно скоєне відділення.
  • З його допомогою можна вносити зміни з останньої відвідуваної точки.
  • Його також можна використовувати для переміщення до різних точок історії та роботи звідти.
  • Підтримує сховище та процес чистим та читабельним.

Висновок

Git має багато застосувань і широко використовується розробниками, менеджерами продуктів та науковцями даних. Його команди дуже ефективні і можуть бути дуже корисними. HEAD - це посилання на останній комітет у поточній перевіреній галузі.

Рекомендовані статті

Це посібник із теми, що є головою в Git ?. Тут ми обговорюємо вказівник HEAD у Git, який включає окремі HEAD та ORIG_HEAD разом із перевагами Git HEAD. Ви також можете переглянути наступні статті, щоб дізнатися більше -

  1. Що таке Git Fetch?
  2. Git Fetch vs Git Pull
  3. Що таке гіт гіт?
  4. Терміналогія Гіт
  5. Система контролю версій GIT
  6. Git Push
  7. Три етапи життєвого циклу Git із робочим процесом
  8. Як використовувати GIT Cherry-pick з прикладом?

Категорія: