Назад

10 корисних порад по роботі з Git

html code

Джерело фото: https://goo.su/BijO8

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

1. Псевдоніми (аліаси) Git

Створюйте власні псевдоніми для довгих команд, якими часто користуєтесь.
Це заощадить вам трохи часу.

git config --global alias.co checkout

git config --global alias.ci commit

git config --global alias.br branch

Замість того, щоб набирати git checkout master , ви можете набрати тільки git co master.
Редагувати команди можна безпосередньо у файлі ~/.gitconfig:

[alias]
co = checkout
ci = commit
br = branch


2. Порівняння комітів

Побачити різницю між комітами чи різними версіями одного й того ж файлу можна за допомогою команди git diff . Якщо хочете порівняти той самий файл у різних комітах, запустіть наступну команду:

git diff $start_commit..$end_commit -- path/to/file

Порівняння змін між двома комітами:

git diff $start_commit..$end_commit

Ці команди відкривають перегляд diff прямо у терміналі. Якщо ви віддаєте перевагу більш візуальним інструментам, можна використовувати git difftool. Для візуального порівняння відмінностей є корисний інструмент перегляду та редагування – Meld. Налаштування Meld:

git config --global diff.tool git-meld

Як почати переглядати diff-и:

git difftool $start_commit..$end_commit -- path/to/file

Або:

git difftool $start_commit..$end_commit


3. Ховаємо зміни, які не увійшли до коміту

Якщо ви працюєте над якоюсь фічею, і раптом доводиться терміново вносити зміни до того самого проекту, ви можете зіткнутися з проблемою. Ви не хочете комітити незакінчену фічу, але й втратити всі зміни теж не хотілося б. Рішення на цей випадок - тимчасово прибрати ці зміни з очей геть за допомогою команди git stash.

Команда git stach ховає зміни, після чого ви отримуєте чисту робочу директорію та можливість переключитися на нову гілку. Там можна вносити потрібні зміни, не роблячи перед цим безглуздих снапшотів для збереження поточного стану. Коли внесете всі свої термінові редагування і будете готові повернутися до тієї фічі, над якою працювали, запустіть наступну команду:

git stash pop

Усі зміни відновляться.
Якщо ці зміни більше не потрібні і ви хочете очистити стек вашої "схованки", запустіть наступну команду:

git stash drop


4. Робіть pull частіше

Щоб уникнути серйозних конфліктів частіше витягуйте зміни з гілки master у свою гілку. Таким чином, можна буде вирішувати будь-які конфлікти на ранніх стадіях. В результаті мерж ваших гілок у master проходитиме легше.


5. Автодоповнення команд

Використовуючи скрипти completion, можна швидко створити команди для bash, tcsh і zsh. Тоді при наборі git pull достатньо набрати git p і натиснути Tab. Ви побачите список усіх команд, що починаються на p:

  • pack-objects - create packed archive of objects
  • pack-redundant - find redundant pack files
  • pack-refs - pack heads and tags for efficient repository access
  • parse-remote - routines to help parsing remote repository access parameters
  • patch-id - compute unique ID for a patch
  • prune - prune all unreachable objects from the object database
  • prune-packed - remove extra objects that are already in pack files
  • pull - fetch from and merge with another repository or local branch
  • push - update remote refs along with associated objects

Щоб вивести всі доступні команди, введіть git і натисніть Tab + Tab .


6. Встановіть .gitignore глобально

Якщо ви не бажаєте випадково відправити в коміт файли типу .DS_Store або swp-файли Vim, ви можете налаштувати файл .gitignore глобально. Створення файлу:

touch ~/.gitignore

Потім запускаєте:

git config --global core.excludesFile ~/.gitignore

Або вручну додаєте наступне у ваш ~/.gitconfig:

[core]
excludesFile = ~/.gitignore

Ви можете скласти список речей, які Git має ігнорувати.
Дізнатися більше можна в документації по gitignore.


7. Видаляйте локальні гілки, видалені з віддаленого репозиторію, при fetch/pull

Напевно, у вашому локальному репозиторії є купа гілок, яких більше немає у віддаленому. Щоб видалити їх у кожному fetch/pull, виконайте таку команду:

git config --global fetch.prune true

Або вручну додайте наступні рядки у файл ~/.gitconfig:

[fetch]
prune = true


8. Використовуйте git blame більш ефективно

Git blame дуже зручна команда для пошуку автора змін в окремих рядках коду. Команда має різні позначки, що дозволяють вивести різну інформацію:

  • git blame -w # ignores white space
  • git blame -M # ignores moving text
  • git blame -C # ignores moving text into other files

9. Аліас HEAD

Символ @ - те саме, що і HEAD. Його дуже зручно використовувати при rebase:

git rebase -i @~2


10. Скидання змін у файлах

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

git reset --hard HEAD

Або якщо ви хочете скинути один файл:

git checkout HEAD -- path/to/file

Тепер, якщо ви вже внесли зміни, але все ще хочете повернутися назад, ви можете скористатися:

git reset --soft HEAD~1

Сподіваємось Вам допомогла ця стаття :)