Git
Chapters ▾ 2nd Edition

2.1 Основи на Git - Създаване на Git хранилище

Ако ви трябва само един раздел за да стартирате с Git - това е той. Ще разгледаме всяка една базова команда, от която бихте се нуждали в повечето време, в което ще използвате Git. В края, би трябвало да можете да конфигурирате и инициализирате хранилище, да стартирате/спирате следеното на файлове, да индексирате (stage) и публикувате (commit) своите промени по кода. Ще ви покажем също как да настроите Git така, че да игнорирате специфични файлове или типове файлове, как да отменяте погрешно направени промени лесно и бързо, как да разглеждате историята на вашия проект и промените между различните публикувания, и как да изпращате и издърпвате към/от отдалечени хранилища.

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

Можете да се сдобиете с Git хранилище (repository) по два основни начина:

  1. Първият от тях взема съществуващ проект/директория, който в момента не под контрол на версиите и го импортира в Git

  2. Вторият клонира съществуващо Git хранилище от друг сървър.

И в двата случая получавате Git хранилище на локалната си машина, готово за работа.

Инициализиране на хранилище в налична директория

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

за Linux:

$ cd /home/user/my_project

за macOS:

$ cd /Users/user/my_project

за Windows:

$ cd C:/Users/user/my_project

и напишете:

$ git init

Това създава нова под-директория с име .git, която съдържа всичко необходимо, от което се нуждае Git — нещо като скелет на хранилището. В този момент - нищо от вашите файлове не се следи все още. Вижте Git на ниско ниво> за повече информация какви точно файлове се съдържат в тази новосъздадена директория.)

Ако желаете да започнете контрол на версиите на съществуващи файлове (вместо на празна директория), вероятно ще искате да започнете да следите файловете и да направите първоначален къмит. Можете да направите това с малко git add команди, които указват файловете, които искате да следите, последвани от git commit:

$ git add *.c
$ git add LICENSE
$ git commit -m 'Initial project version'

Ще се върнем на тези команди след малко. В този момент, вие разполагате с готово Git хранилище със следящи се файлове и сте ги къмитнали за пръв път.

Клониране на съществуващо хранилище

Ако искате да изтеглите копие от съществуващо Git хранилище — например проект, в който желаете да сътрудничите, то командата която ви трябва е git clone. Ако сте запознати с други VCS системи като например Subversion, веднага ще забележите разликата - командата е "clone", а не "checkout". Това е важна разлика - вместо да издърпва просто работещо копие, Git получава пълно копие на почти всички данни, които сървърът пази. Всяка версия на всеки файл от историята на проекта се издърпва по подразбиране когато изпълните git clone. Практически, ако сървърът се повреди, можете често да използвате почти всеки от клоновете на всеки клиент за да го възстановите в състоянието му към момента, в който хранилището е било клонирано (може да загубите някои server-side специфични елементи, но цялата ви следяща се и значима информация ще е налична — вижте [_getting_git_on_a_server] за повече подробности)

Хранилище се клонира с git clone <url>. Например, ако искате да клонирате linkable библиотеката libgit2, можете да го направите така:

$ git clone https://github.com/libgit2/libgit2

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

Ако желаете клонирането да е в директория с различно от libgit2 име - можете да го подадете като следващ параметър към командата:

$ git clone https://github.com/libgit2/libgit2 mylibgit

Тази команда прави същото като предишната, но в резултат ще ви даде директория с име mylibgit.

Git може да работи с различни протоколи за трансфер. Предишният пример използва https://, но може да видите също и git:// или user@server:path/to/repo.git, което използва SSH като транспортен протокол. [_getting_git_on_a_server] ще разкаже повече за всички налични опции, които един сървър може да ползва за да предостави достъп до вашите Git хранилища, в едно с предимствата и недостатъците им.

scroll-to-top