Основи на git: Въведение

git | git101 | урок

Основи на git: Въведение

Какво е git?

Git е система за управление на версиите. Това е софтуер, който ви помага да разработвате вашите приложения по-сигурно и удобно, особено ако работите в екип с други хора.

Какво е система за управление на версиите?

Подобно на запазването в игрите, системите за управление на версиите Ви позволяват да запазите състоянието на кода към момента. По този начин, подобно на игрите, ако сгрешите или желаете да се върнете назад може да заредите предишно състояние. За разлика от игрите обаче, системите за управление на версиите Ви позволяват да вземете това, което си искате от “миналото” и да го пренесете към настоящото състояние на проекта Ви.

Това Ви дава още по-голямо предимство при работа с други хора. Представете си, че имате проект със стотици файлове, по който освен вас работят още 10 човека. Нека си представим, че това е голям електронен магазин с хиляди посещения на ден. Единствения начин да работите заедно без да използвате система за управление на версиите е да си разпращате файлове, да проверявате дали файла, по който работите е същия, като този на сървъра и т.н. Няма нужда да обяснявам, че това неминуемо ще забави работата, ще доведе до грешки и дори до загуба на цели функционалности.

Други системи за управление на версиите

Git не е единствената система за управление на версиите. Освен нея съществуват още много, като: subversion (SVN), Mercurial и Fossil. Каква система ще използвате е въпрос на личен избор, като трябва да кажем, че различните системи работят по различен начин и не са съвместими по между си. Тоест, ако по принцип предпочитате да ползвате git, а на работа ви се налага да ползвате SVN, ще се наложи да се съобразите с изискванията на фирмата.

Как работи git?

Ако сте работили с SVN, вероятно знаете, че тази система е от типа на централизираните системи за управление на версии и работи на принципа клиент - сървър. Тоест Ви трябва сървър, на който стоят всички ваши проекти, а всеки, който работи с даден проект се явява независим от останалите потребители клиент.

Git обаче е дистрибутирана система за управление на версиите. Това означава, че всеки един потребител се явява, както клиент, така и сървър. Нека имаме следната графика:

git-distributed

Да речем, че на машината означена с “Хранилище 1” работи Иван и създава проект, който се клонира от Гошо на “Хранилище 2” и Пешо на “Хранилище 3”. Да кажем, че Пешо (Хранилище 3) и Гошо (Хранилище 2) работят по една и съща функционалност и на Пешо му трябва файл, който Гошо е променял. При работа с SVN ще трябва Гошо да качи промените си на сървъра, за да може Пешо да го изтегли. Тогава Иван, който отговаря за проекта ще трябва да внимава да не качи този файл на публичния сървър. При git Пешо просто може да изтегли този файл от Гошо, а освен това Гошо може сам да го качи при Пешо.

Заключение

Това беше първата статия от серията “Основи на git”. В нея разбрахме какво е система за управление на версиите и какви са основните разлики между системи, като SVN и такива, като git. В следващата статия от серията ще разберем как да инсталираме и настроим git.