-
1. Почеток
- 1.1 За верзиска контрола
- 1.2 Кратка историја на Git
- 1.3 Основи на Гит
- 1.4 Командната линија
- 1.5 Инсталирање на Git
- 1.6 First-Time Git Setup
- 1.7 Getting Help
- 1.8 Заклучок
-
2. Основите на Git
-
3. Гранење во Git
- 3.1 Гранење објаснето
- 3.2 Основно разгранување и спојување
- 3.3 Branch Management
- 3.4 Работни процеси
- 3.5 Далечински гранки
- 3.6 Ребаза
- 3.7 Заклучок
-
4. Git на Сервер
- 4.1 Протоколите
- 4.2 Добивање на Git на сервер
- 4.3 Генерирање на вашиот SSH јавен клуч
- 4.4 Поставување на серверот
- 4.5 Гит демон
- 4.6 Smart HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Опции за домаќини на трети лица
- 4.10 Заклучок
-
5. Дистрибуиран Git
- 5.1 Дистрибуирани работни процеси
- 5.2 Придонес кон проект
- 5.3 Приватен мал тим
- 5.4 Одржување на проект
- 5.5 Заклучок
-
6. GitHub
-
7. Git Алатки
- 7.1 Revision Selection
- 7.2 Интерактивно стажирање
- 7.3 Stashing and Cleaning
- 7.4 Signing Your Work
- 7.5 Searching
- 7.6 Rewriting History
- 7.7 Reset Demystified
- 7.8 Напредно спојување
- 7.9 Rerere
- 7.10 Дебагирање со Git
- 7.11 Submodules
- 7.12 Збивање
- 7.13 Заменување
- 7.14 Складирање на ингеренции
- 7.15 Заклучок
-
8. Персонализација на Git
- 8.1 Git Configuration
- 8.2 Git Атрибути
- 8.3 Git Hooks
- 8.4 An Example Git-Enforced Policy
- 8.5 Заклучок
-
9. Git и други системи
- 9.1 Git како Клиент
- 9.2 Мигрирање кон Git
- 9.3 Заклучок
-
10. Внатрешноста на Git
- 10.1 Plumbing and Porcelain
- 10.2 Git Objects
- 10.3 Git References
- 10.4 Packfiles
- 10.5 The Refspec
- 10.6 Transfer Protocols
- 10.7 Maintenance and Data Recovery
- 10.8 Environment Variables
- 10.9 Заклучок
-
A1. Appendix A: Git во други околини
- A1.1 Graphical Interfaces
- A1.2 Git in Visual Studio
- A1.3 Git in Eclipse
- A1.4 Git in Bash
- A1.5 Git in Zsh
- A1.6 Git in Powershell
- A1.7 Заклучок
-
A2. Appendix B: Вметнување на Git во вашите апликации
- A2.1 Command-line Git
- A2.2 Libgit2
- A2.3 JGit
- A2.4 go-git
-
A3. Appendix C: Git команди
- A3.1 Setup and Config
- A3.2 Getting and Creating Projects
- A3.3 Basic Snapshotting
- A3.4 Branching and Merging
- A3.5 Sharing and Updating Projects
- A3.6 Inspection and Comparison
- A3.7 Debugging
- A3.8 Patching
- A3.9 Email
- A3.10 External Systems
- A3.11 Administration
- A3.12 Plumbing Commands
5.2 Дистрибуиран Git - Придонес кон проект
Придонес кон проект
Главната тешкотија со опишувањето како да се придонесе кон проект се бројните варијанти за тоа како да се направи тоа. Бидејќи Git е многу флексибилен, луѓето можат и работат заедно на многу начини, а проблематично е да опишете како треба да придонесете - секој проект е малку поинаков. Некои од променливите кои се вклучени се брои активен придонес, избраниот работен тек, вашиот пристап за извршување, а можеби и надворешниот метод за придонес.
Првата променлива е бројот на активни учесници - колку корисници активно придонесуваат за овој проект и колку често? Во многу случаи, ќе имате два или три програмери со неколку обврски на ден, или можеби помалку за малку хитни проекти. За поголеми компании или проекти, бројот на програмери може да биде во илјадници, со стотици или илјадници обврски кои доаѓаат секој ден. Ова е важно бидејќи со се повеќе и повеќе програмери, имате повеќе проблеми со тоа што ќе бидете сигурни дека вашиот код ќе се применува чисто или лесно може да се спои. Промените што ги доставувате може да бидат застарени или сериозно прекинати од работата што е споена додека работите или додека вашите промени чекаат да бидат одобрени или применети. Како може да го задржите вашиот код постојано ажурирани и вашите обврски валидни?
Следната променлива е работниот тек што се користи за проектот. Дали е тоа централизирано, со секој програмер да има еднаков пристап за пристап до главната кодеа? Дали проектот има менаџер за одржување или интеграција кој ги проверува сите закрпи? Дали сите закрпи се рецензирани и одобрени? Дали сте вклучени во тој процес? Дали е воспоставен систем на поручник и дали прво треба да ја поднесете вашата работа?
Следната променлива е вашиот пристап за извршување. Работниот тек потребен за да се придонесе кон проект е многу различен ако имате пристап за запишување на проектот отколку ако не го користите. Ако немате пристап за запишување, како проектот претпочита да ја прифати придонесената работа? Дали има дури и политика? Колку работа придонесувате во исто време? Колку често придонесувате?
Сите овие прашања можат да влијаат на тоа како ефективно да придонесете за проект и кои работни процеси се претпочитани или достапни за вас. Ние ќе ги опфатиме аспектите на секоја од овие во серија на случаи на употреба, движејќи се од едноставни во посложени; треба да бидете во можност да ги конструирате специфичните работни текови што ви се потребни во пракса од овие примери.
Започнете упатства
Пред да почнеме да ги разгледуваме конкретните случаи на употреба, тука е брзата забелешка за пораките за извршување. Имајќи добра насока за создавање обврски и држење кон него, го правиме со Git и многу полесно соработуваме со другите. Проектот Git обезбедува документ кој поставува бројни добри совети за креирање на обврски од кои да испрати закрпи - можете да го прочитате во изворниот код на Git во датотеката "Documentation / SubmittingPatches".
Прво, вашите поднесоци не треба да содржат грешки во празен простор. Git обезбедува лесен начин за проверка за ова - пред да извршите, стартувај `git diff - check ', кој ги идентификува можните грешки во празнините и ги наведува за вас.
git diff --check
.Ако ја извршите командата пред да извршите, можете да кажете дали сакате да правите празни празнини кои можат да ги нервираат другите развивачи.
Потоа, обидете се да направите секој изврши логички одвоени промени.
Ако можете, обидете се да ги направите вашите промени сварливи - не кодирајте цел викенд за пет различни прашања, а потоа ги доставувајте ги како масовно извршување во понеделникот.
Дури и ако не се извршувате за време на викендот, користете ја областа за поставување во понеделникот за да ја поделите вашата работа во најмалку една посветеност по прашање, со корисна порака за извршување.
Ако некои од промените ја модификуваат истата датотека, обидете се да го користите git add -patch
за делумно сцени датотеки (детално опфатени во << _interactive_staging >>).
Сликата на проектот на врвот на гранката е идентична без разлика дали извршувате една или пет, се додека сите промени се додадат во одреден момент, па обидете се да им олеснат работите на вашите соработници кога треба да ги разгледаат вашите промени.
Овој пристап исто така го олеснува повлекувањето или враќањето на некој од промените ако ви треба подоцна. Rewriting History опишува голем број корисни трикови за Git за препис на историјата и интерактивно поставување на датотеки - користете ги овие алатки за да помогнете во создавање на чиста и разбирлива историја пред да ја испратите работата на некој друг.
Последното нешто што треба да се има на ум е порака за извршување. Добивањето на навика за создавање на квалитетни пораки за извршување прави многу полесно користење и соработка со Git. Како општо правило, вашите пораки треба да започнат со една линија, која не е повеќе од 50 карактери, и која ја опишува конзистентноста на промените, проследено со празна линија, проследено со подетално објаснување. Проектот Git бара подетално објаснување да вклучи ваша мотивација за промената и да ја спротивстави неговата имплементација со претходното однесување - ова е добра упатство за следење. Исто така, добра идеја е да се користи моменталниот момент во овие пораки. Со други зборови, користете команди. Наместо "Додадов тестови за" или "Додавање тестови за", "користете" Додај тестови за. " Еве еден template originally written by Tim Pope:
Краток (50 знаци или помалку) резиме на промени
Подетален објаснувачки текст, доколку е потребно. Заврши го
околу 72 карактери или така. Во некои контексти, прво
линија се третира како предмет на е-пошта, а остатокот од
текстот како тело. Правата линија одвојување на
резиме од телото е критично (освен ако го испуштате телото
целосно); алатки како rebase може да се збунети ако трчате
двете заедно.
Понатамошни ставови доаѓаат по празни линии.
- Точките на куршуми се во ред, исто така
- Вообичаено се користи цртичка или ѕвездичка за куршумот,
претходи од еден простор, со празни линии во
помеѓу, но конвенциите се разликуваат тука
Ако сите ваши обврски за комуникација го следат овој модел, работите ќе ви бидат многу полесни за вас и за програмерите со кои соработувате.
Проектот Git има добро форматирани пораки за пораки - обидете се да го стартувате git log -no-merges
таму за да видите како изгледа убаво форматираната историја на извршување на проектот.
-
Како што велиме, не како што правиме.
Заради краткост, многу од примерите во оваа книга немаат убаво форматирани пораки како овој; Наместо тоа, едноставно ја користиме -m
опцијата за` git commit`.
На кратко, стори како што кажуваме, не како што правиме.