-
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 команди
A1.5 Приложение C: Git команди - Споделяне и обновяване на проекти
Споделяне и обновяване на проекти
Не са много командите в Git, които правят мрежови операции, почти всички работят с локалната база данни. Когато сте готови да споделите работата си обаче, ето какви са възможностите:
git fetch
git fetch
комуникира с отдалечено хранилище и издърпва всичката информация от него, която липсва в локалната база данни.
Представихме я във Fetching и Pulling на данни от отдалечени хранилища и продължихме с примери за нея в Отдалечени клонове.
Използвахме я и в няколко примера в [_contributing_project].
Използваме я за издърпваме на конкретна референция, която е извън областта по подразбиране в Pull Request референции и видяхме как да издърпваме от bundle в Пакети в Git (Bundling).
Направихме строго потребителски refspecs с цел да накараме git fetch
да направи нещо малко по-различно от подразбиращото се в Refspec спецификации.
git pull
Командата git pull
по същество е комбинация от git fetch
и git merge
командите като Git ще се опита да изтегли и слее промените от отдалеченото хранилище в една стъпка.
Представихме я първоначално във Fetching и Pulling на данни от отдалечени хранилища и демонстрирахме как да видим какво ще бъде слято, ако бъде изпълнена в Преглед на отдалечено хранилище.
Видяхме как да я използваме в помощ при rebasing затруднения в [_rebase_rebase].
Показваме как да я използваме с URL за да интегрираме промени в one-off маниер в Извличане от отделечени клонове.
Набързо отбелязваме, че може да използвате опцията --verify-signatures
за да проверите дали къмитите, които интегрирате са били GPG подписани в Подписване на къмити.
git push
Командата git push
използваме за комуникация с отдалечено хранилище, за изчисляване и изпращане към него на информацията, която е налична локално, но не присъства на отдалечения сървър.
Тя изисква права за запис в отдалеченото хранилище и нормално се използва с някакъв вид автентикация.
За пръв път се срещнахме с git push
в Изпращане на данни към отдалечено хранилище.
Там видяхме основите на публикуването на клонове в отдалечени хранилища.
В Изпращане към сървъра (pushing) навлязохме малко по-дълбоко в публикуването на специфични клонове, а в Проследяване на клонове видяхме как да направим tracking клонове, към които да публикуваме автоматично.
В [_delete_branches] използвахме флага --delete
за да изтрием клон от сървъра с git push
.
В [_contributing_project] видяхме множество примери на използване на командата за споделяне на работа с множество отдалечени хранилища.
Научихме как да я използваме за споделяне на тагове с опцията --tags
в Споделяне на тагове.
В Публикуване на промени по подмодул използвахме опцията --recurse-submodules
за да проверим дали цялата ни работа по подмодулите е била публикувана преди да публикуваме основния проект. Това може да е много полезно, когато използваме подмодули.
В Други Client Hooks говорихме за pre-push
hook скрипта, който можем да настроим да се стартира преди публикуването да завърши и да проверява дали съдържанието е валидно.
Последно, в Публикуване на Refspecs видяхме как се публикува с пълни refspec, вместо с общоприетите shortcuts, които се използват нормално. Това може да ви помогне да сте много прецизни в това каква точно работа искате да публикувате.
git remote
git remote
е управляващ инструмент за данните за отдалечени хранилища.
Позволява да изписвате дългите URL-и под формата на съкратени описателни имена като например “origin”.
Може да имате много такива и git remote
се използва за добавяне, редактиране и изтриването им.
Командата разгледахме в подробности в Работа с отдалечени хранилища, включително показване, добавяне, изтриване и преименуване на отдалечени референции.
Тя също се използва почти във всяка глава в книгата, но винаги в стандартния формат git remote add <name> <url>
.
git archive
Командата git archive
използваме за създаване на архивен файл от специфичен snapshot на проекта.
Използвахме git archive
за да създадем tarball на проект, подходящ за споделяне в Подготовка за издаване на Release.
git submodule
Командата git submodule
се използва за управление на външни хранилища в рамките на основния проект.
Може да се използва за библиотеки или други споделени ресурси.
submodule
има няколко подкоманди като (add
, update
, sync
) за управлението им.
Присъства и се обяснява изцяло само в Подмодули.