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

Джерело фото: 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
Сподіваємось Вам допомогла ця стаття :)
Джерело: https://goo.su/q1UZ
Переклад українською мовою: Аліна Берестень
Адміністратор: Дмитро Берестень