https://blog.superhosting.bg/meet-git.html

Натиснете ENTER, за да видите резултатите или ESC за изход.

Блог на SuperHosting.BG

Първи стъпки в Git

2016-10-31
Технологии
git, github, bitbucket, git init, git repository, git хранилище, git клиент, git сървър

Имате файл, който променяте често и при всяка промяна правите негово копие, за да запазите предишната му версия? Така след 50-тата промяна вече имате 50 различни варианта на файла. До няколко версии назад си спомняте какво е променяно, но какво се е случило в по-старите? И какво ще стане ако искате и други хора да могат да променят същия този файл? А ако имате проект с повече от един файл?

Точно в такива случаи, отговорът е система за контрол на версиите.

Контрол на версиите (Revision control)

Система за контрол на версиите се ползва за записване на промените по даден файл или колекция от файлове. Тя позволява да се запази история на промените, да се върне предишна версия, да се добави описание на промените (като например защо и на какво е извършена промяната и други).

Когато по един проект с множество файлове работят много хора, едно от нещата, което би било трудно без такава система, е да се съобразяват промените по различните части на проекта от всички участници.

Системата за контрол на версиите се развива през годините, като в началото й стои локалната система за контрол на версиите (като RCS), при която файловете са били на локалния компютър на разработчика и само той е работил с тях.

След това се появява централизирана система за контрол на версиите (CVS, Subversion), която позволява много потребители да работят по един проект. Проектът се намира на един централен компютър, с който те осъществяват връзка.

Накрая се появява децентрализирана система за контрол на версиите (Darcs, Bazaar, Git, Mercurial, Fossil, Veracity), която решава най-големия недостатък на другите две – в случай на повреда в централния или локалния компютър, всички данни на проекта могат да бъдат загубени, тъй като се намират на едно физическо място. При децентрализираната система за контрол на версиите, проектът се сваля и копира локално на компютъра на всеки участващ потребител, като така се създава бекъп. В случай на необходимост, проектът може да се възстанови от локалното копие на някой от потребителите.

Git

Какво е Git?

Git e една от най-известните и използвани децентрализирани системи за контрол на версиите на файловете. С Git много потребители могат да работят едновременно по един и същ файл, без това да доведе до бъркотия и хаос в съдържанието на файла.

Git е създаден и разработен през април 2005г. от не кой да е, а Линус Торвалдс (човекът зад Linux ядрото). Торвалдс създава Git, за да го ползва за разработката на неговия проект Linux ядро. От тогава до днес Git се развива и подобрява от множество потребители.

Git е създаден с идеята да е бърз, с прост дизайн, стабилна поддръжка на неправолинейна разработка – хиляди паралелни разклонения (branches), напълно децентрализирана организация и възможност да поддържа ефикасно големи проекти (като Linux ядрото).

Част от проектите, които използват Git са Linux Kernel, KVM, Bacula, CakePHP, Drupal, FFmpeg, GNOME, phpMyAdmin, Ruby on Rails и много други. Сред проектите, които ползват Mercurial са Dovecot, nginx, OpenOffice, Python, rpm, Vim и други.

Git сървър

В Уеб могат да се намерят услуги, предлагащи Git сървър като GitHub и Bitbucket.

Най-прост Git сървър, без да се инсталира допълнително приложение, може да се направи само със SSH достъп и подготвено Git хранилище на сървъра. Такъв основен Git сървър може да се ползва за частен проект с малко на брой потребители.

Съществуват и приложения за Git сървър, които могат да се инсталират на VPS и CloudVPS сървър. Едно много използвано приложение, което много наподобява GitHub е GitLab. Такива приложения предлагат методи за управление, като контрол на достъпа, управление на множество Git хранилища, преглед през Уеб и много други.

Git клиенти

Освен стандартния начин за работа с Git – използване на команди през терминал, съществуват и графични Git клиенти, които се инсталират локално на компютъра.

Текстовите Git клиенти се ползват през шела на операционната система и поради това можете да ги инсталирате и ползвате през терминала. За Linux базирани системи можете да инсталирате Git например с:

yum install git или apt-get install git

Windows потребителите могат да инсталират Git с графичния Git клиент на GitHub, който съдържа и Git текстов клиент (Git Shell).

Git клиент може да се ползва и през акаунт на споделен хостинг. Вижте какво е необходимо да направите за да ползвате Git клиент в хостинг акаунта.

Да започнем с Git

За да започнете с Git е необходимо да знаете основните и най-често ползвани команди.

Git основни понятия и команди

Git структура на проектаgit repository (хранилище) Работната директория на проекта. Git хранилище можете да създадете от всяка директория, намираща се локално на вашия компютър. Или можете да клонирате хранилище намиращо се на друг компютър.

git branch (разклонение, клон, линия) Git създава дървовидна структура на проекта с един основен клон, най-често наречен master. Всичко, което се разработва и променя се извършва по други разклонения, които рано или късно се сливат с основния клон и така се ражда нова версия на проекта. За разработката на различни аспекти от проекта може да се създадат специални разклонения, като development, features, hotfixes и други.

git tag (таг) Всяка окончателно завършена и одобрена промяна се слива с master и представлява различна версия на проекта. Промяната може да се надпише с различен таг, например започвайки с v. 1.0.0.

git commit Записване на промените по файловете. Когато промените съдържанието на даден файл, намиращ се в директорията на проекта, Git автоматично ще засече тази промяна. За да се запише самата промяна обаче, ще трябва да направите commit заявка. Ако ползвате графичен Git клиент, Git ще ви покаже, че е била извършена промяна и ще ви попита, дали искате да направите commit (запис) на тази промяна.

git pull Заявка за изтегляне/качване на промени от едно хранилище/клон в друго хранилище/клон.

git merge Сливане на промените в един клон или сливане на отделни клони. След като промените по файловете, в дадено разклонение, са записани, можете да създадете pull заявка за сливане. Тази pull заявка ще е в статус изчакване за одобрение. След одобрение, посоченият клон ще бъде слят, използвайки git merge, с друг избран клон.

Създаване на локално Git хранилище

Работа с Git през PowerShellСлед като сте инсталирали Git на вашия компютър, достъпете през Git шела директорията, от която искате да направите Git хранилище. В директорията може вече да има файлове. Изпълнете командата:

git init

В директорията ще се появи поддиректория .git, в която се съдържат системните файлове на Git.

Създайте или поставете файл в директорията, например test.txt и изпълнете в терминала:

git status

Ще видите съобщението: Untracked files: (use “git add …” to include in what will be committed)

Това означава, че Git открива този файл, но не е инструктиран да го следи (за промени). За да добавите test.txt в индекса за следене на Git, изпълнете командата:

git add test.txt

И след това запишете промените с:

git commit -m “test test”

“test test” е бележка, съвсем кратко описание на промените към записа. Когато преглеждате историята на промените, ще виждате тези бележки, поради това вместо тест тест, използвайте смислено описание на промените.

Важно: Не всички проекти, ползващи Git, са еднакви, с еднакви разклонения и процес на разработка. Всеки проект може да има различни изисквания за използването на клони и процеса по обновяване и прилагане на промените. Преди да клонирате някой проект и да започнете да допринасяте за развитието му, проверете документацията и README.md файла за упътване.
Интересно: Влезте в дълбините на Git и научете как да работите с него, само за 15 минути с Got 15 minutes and want to learn Git?

Специалист Техническа Поддръжка

Меган е нашият support гуру – може да отговори на всеки технически въпрос. Знае всичко за новите технологии. СуперСилата на Меган е, че може да обясни и най-сложните технологии на достъпен за всеки език.

500px270px
SuperHosting.BG

Препоръчани статии

Оставете коментар

Все още няма коментари

Уведоми ме при
avatar

wpDiscuz