Git – система контролю версій файлів

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

Довго перепоною для використання системи контролю версій для мене було небажання змінювати звичні методи роботи.

Netbeans зберігає історію файлів, має зручний і гарний інтерфейс для аналізу цієї історії. Збереження давніших версій файлів забезпечує регулярне архівування проекту. Щоб проаналізувати зміни у версіях файлів є безліч утиліт для командного рядка diff GNU Diffutils або із графічним інтерфейсом KDiff3, Kompare.

Але бажання спробувати щось новеньке перемогло.

# для початку необхідно встановити програму, це просто

apt-get install git git-gui git-doc qgit

# або просто

apt-get install git

# потім переходимо до теки з проектом і виконуємо наступну команду

# ініціалізувати локальний репозитарій Git

git init

# додати до репозитарію всі файли проекту

git add -Af

# зберегти початкову версію файлів

git commit -am 'init'

# якщо немає необхідності докладно описувати виконані зміни то в якості коментаря можна використати поточну дату

git add -A
git commit -m "\"$(date)\""

# створити нову гілку

git branch testing

# перейти до вказаної гілки

git checkout testing

# перейти до головної гілки

git checkout master

#

# у процесі використання системи виникає необхідність стиснення бази git

#

# визначення об’єму зайнятого проектом (до стиснення)

user@host:~/storage/project/dbdesc$ du -s .
487406 .
# визначення об’єму зайнятого базою git (до стиснення)
user@host:~/storage/project/dbdesc$ du -s .git
300141 .git
# виконання стиснення бази git
user@host:~/storage/project/dbdesc$ git gc
Counting objects: 21261, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (6303/6303), done.
Writing objects: 100% (21261/21261), done.
Total 21261 (delta 15271), reused 19994 (delta 14721)
Removing duplicate objects: 100% (256/256), done.
# визначення об’єму зайнятого проектом (після стиснення)
user@host:~/storage/project/dbdesc$ du -s .
257657 .
# визначення об’єму зайнятого базою git (після стиснення)
user@host:~/storage/project/dbdesc$ du -s .git
70392 .git
user@host:~/storage/project/dbdesc$

Git збегігає файли у стисненому вигляді, контролює наявність дублювання файлів і до цього всього в Netbeans реалізовано підтримку репозитаріїв Git.

 

Advertisements