Git
Chapters ▾ 2nd Edition

A3.5 Appendix C: Git команди - Споделяне и обновяване на проекти

Споделяне и обновяване на проекти

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

git fetch

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

Представихме я във Fetching и Pulling на данни от отдалечени хранилища и продължихме с примери за нея в Отдалечени клонове.

Използвахме я и в няколко примера в Как да сътрудничим в проект.

Използваме я за издърпваме на конкретна референция, която е извън областта по подразбиране в Pull Request референции и видяхме как да издърпваме от bundle в Пакети в Git (Bundling).

Направихме строго потребителски refspecs с цел да накараме git fetch да направи нещо малко по-различно от подразбиращото се в Refspec спецификации.

git pull

Командата git pull по същество е комбинация от git fetch и git merge командите като Git ще се опита да изтегли и слее промените от отдалеченото хранилище в една стъпка.

Представихме я първоначално във Fetching и Pulling на данни от отдалечени хранилища и демонстрирахме как да видим какво ще бъде слято, ако бъде изпълнена в Преглед на отдалечено хранилище.

Видяхме как да я използваме в помощ при rebasing затруднения в Пребазиране по време на пребазиране.

Показваме как да я използваме с URL за да интегрираме промени в one-off маниер в Извличане от отделечени клонове.

Набързо отбелязваме, че може да използвате опцията --verify-signatures за да проверите дали къмитите, които интегрирате са били GPG подписани в Подписване на къмити.

git push

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

За пръв път се срещнахме с git push в Изпращане на данни към отдалечено хранилище. Там видяхме основите на публикуването на клонове в отдалечени хранилища. В Изпращане към сървъра (pushing) навлязохме малко по-дълбоко в публикуването на специфични клонове, а в Проследяване на клонове видяхме как да направим tracking клонове, към които да публикуваме автоматично. В Изтриване на отдалечени клонове използвахме флага --delete за да изтрием клон от сървъра с git push.

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

Научихме как да я използваме за споделяне на тагове с опцията --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) за управлението им.

Присъства и се обяснява изцяло само в Подмодули.