-
1. Начало
- 1.1 За Version Control системите
- 1.2 Кратка история на Git
- 1.3 Какво е Git
- 1.4 Конзолата на Git
- 1.5 Инсталиране на Git
- 1.6 Първоначална настройка на Git
- 1.7 Помощна информация в Git
- 1.8 Обобщение
-
2. Основи на Git
-
3. Клонове в Git
-
4. GitHub
-
5. Git инструменти
- 5.1 Избор на къмити
- 5.2 Интерактивно индексиране
- 5.3 Stashing и Cleaning
- 5.4 Подписване на вашата работа
- 5.5 Търсене
- 5.6 Манипулация на историята
- 5.7 Мистерията на командата Reset
- 5.8 Сливане за напреднали
- 5.9 Rerere
- 5.10 Дебъгване с Git
- 5.11 Подмодули
- 5.12 Пакети в Git (Bundling)
- 5.13 Заместване
- 5.14 Credential Storage система
- 5.15 Обобщение
-
6. Настройване на Git
- 6.1 Git конфигурации
- 6.2 Git атрибути
- 6.3 Git Hooks
- 6.4 Примерна Git-Enforced политика
- 6.5 Обобщение
-
7. Git и други системи
- 7.1 Git като клиент
- 7.2 Миграция към Git
- 7.3 Обобщение
-
8. Git на ниско ниво
- 8.1 Plumbing и Porcelain команди
- 8.2 Git обекти
- 8.3 Git референции
- 8.4 Packfiles
- 8.5 Refspec спецификации
- 8.6 Транспортни протоколи
- 8.7 Поддръжка и възстановяване на данни
- 8.8 Environment променливи
- 8.9 Обобщение
-
9. Приложение A: Git в други среди
-
10. Приложение B: Вграждане на Git в приложения
- 10.1 Git от команден ред
- 10.2 Libgit2
- 10.3 JGit
- 10.4 go-git
- 10.5 Dulwich
-
A1. Приложение C: Git команди
- A1.1 Настройки и конфигурация
- A1.2 Издърпване и създаване на проекти
- A1.3 Snapshotting
- A1.4 Клонове и сливане
- A1.5 Споделяне и обновяване на проекти
- A1.6 Инспекция и сравнение
- A1.7 Дебъгване
- A1.8 Patching
- A1.9 Email команди
- A1.10 Външни системи
- A1.11 Административни команди
- A1.12 Plumbing команди
2.1 Основи на Git - Създаване на Git хранилище
Ако ви трябва само един раздел за да стартирате с Git - това е той. Ще разгледаме всяка една базова команда, от която бихте се нуждали в повечето време, в което ще използвате Git. В края, би трябвало да можете да конфигурирате и инициализирате хранилище, да стартирате/спирате следеното на файлове, да индексирате (stage) и публикувате (commit) своите промени по кода. Ще ви покажем също как да настроите Git така, че да игнорирате специфични файлове или типове файлове, как да отменяте погрешно направени промени лесно и бързо, как да разглеждате историята на вашия проект и промените между различните публикувания, и как да изпращате и издърпвате към/от отдалечени хранилища.
Създаване на Git хранилище
Можете да се сдобиете с Git хранилище (repository) по два основни начина:
-
Първият от тях взема съществуващ проект/директория, който в момента не под контрол на версиите и го импортира в Git
-
Вторият клонира съществуващо 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 хранилища, в едно с предимствата и недостатъците им.