Git является одним из тех инструментов, которые настолько просты в использовании, что вы часто не обнаруживаете на нем много нюанса. Вы закроете клонирование репозитория из Интернета, а также об этом. Если вы вносите изменения, возможно, вы отслеживаете их, а также, если вы действительно вежливы, вы можете производить запрос на тягу, чтобы предоставить обратно в проект. Однако есть многое другое, что вы можете сделать. Например, вы поняли, что Git может отслеживать совместные документы слов? Или управлять данными запуска по нескольким полям Linux?
Git относится к домашнему хозяйству программных приложений, которые выполняют контроль ревизии (или версии). Концепция состоит в том, что вы можете установить программное приложение (например), а также отслеживать каждую ревизию. Отличные системы имеют положения о том, чтобы дать нескольким людям работать на работе одновременно. Также обычно есть какой-то метод разделить работу на разные части. Например, вы можете разделить, чтобы установить версию продукта для другого рынка или попробовать экспериментальную функцию, не нарушая типичное развитие. В некоторых случаях вы в конечном итоге приведут это разделение обратно в первичную линию.
Хотя в следующем взносе я предоставлю вам какое-то странное использование для Git, вы можете обнаружить полезное, это публикация в основном история о том, как приступил к Git. Продвижение с открытым исходным кодом понимается для пламенных войн, так и в этой сказке, по крайней мере, несколько. Как и в настоящем хакере, герой истории решает, что ему не нравятся инструменты, которые он использует так … Ну, что бы вы сделали?
Война версий контроллеров
Исторически, множество программных приложений, которое имела эта функция, имела мышление центрального сервера. То есть код жил в сети где-то. Когда вы хотели работать над данными, вы осмотрели это. Это только работало, если никто другой не осмотрел. Конечно, если вы были успешны, никто другой не может осмотреть ваши данные, пока не поместите их обратно. Если бы вы были вдали от сети, а также хотели работать на чем-то, плохое.
Тем не менее, больше современных инструментов расслабиться несколько из этих ограничений. В идеале инструмент может предоставить вам региональную копию работы, а также немедленно сохранить другие копии, обновляемые по мере изменения изменения. Этот метод не было центральной копии, чтобы проиграть, вы можете работать где угодно, а также вам не приходилось координировать работу по разным вещам с другими товарищами по команде.
Закрытый инструмент
Чрезвычайно большая распределенная команда устанавливает ядро Linux. К концу 1998 года команда проводила трудное время с ревизионным управлением. Разработчик ядра, [Ларри Маквой], имел бизнес, который создал масштабируемую распределенную версию управления продуктом под названием Bitkeeper. Хотя это был промышленный продукт, было разрешение на окрестности, которое позволило вам использовать его, если вы не работаете над утвержденным инструментом, пока вы использовали продукт, а также за год после этого. Ограничение, используемое как в промышленности, а также конкуренцию с открытым исходным кодом. Хотя продукт сохранил большинство данных на вашем компьютере, произошел серверный компонент, поэтому бизнес мог на самом деле отслеживать ваше использование продукта.
В 2002 году команда Kernel Linux приняла Bitkeeper. [Linux Torvalds] был среди сторонников новой системы. Тем не менее, другие дизайнеры (и интересные торжества, такие как [Ричард Столллер], были обеспокоены использованием запатентованного инструмента для создания открытого исходного кода. Bittmover – бизнес позади Bitkeether – добавил некоторые шлюзы, чтобы гарантировать, что дизайнеры, желающие использовать другую систему, к некоторым степень.
По большей части вещи успокоились только с пересеченными пламенами, извергающими прямо здесь, а также там. Это до 2005 года, когда [McVoy’s] выявил, что он прекратил бы бесплатную версию бутона. Якобы причина была из-за человека, установленного клиента, который добавил функции от промышленной версии до свободного.
Новые инструменты
В результате две рабочие места вращаются столько, сколько установить замену. Mercurial был одним, а также GIT, конечно, был другой. [McVoy] связался с промышленным клиентом, требующим, что их работница [Брайан О’Салливан] прекратит способствовать мируальному, который он сделал. Конечно, как Mercurial, а также Git пришли к плоту, с Git заканчивается не только системой версии команды ядра, однако, как и система для большого значения других людей.
Рождение Git.
[LINUS] искал еще одну систему по полке. Ни один в то время не имел производительность или функции, которые будут соответствовать команде продвижения ядра. Он спроектировал Git для скорости, простоты, а также предотвратить то же самое, что CVS (Reveriled Reversion Manage Program) сделал.
Первоначальное продвижение заявлено, что сделали несколько дней. Поскольку выпуск версии 1.0 в конце 2005 года приложение программного обеспечения породило более одного крупного веб-сайта, а также оказаться системой варианта для многих разработчиков, как открытым исходным кодом, а также коммерческим.
Конфискатор
Блок-диаграмма показывает трикК именно, как Git справляется с большими сделками разработчика за один раз: репозитории или репо. Каждый дизайнер имеет общую копию всей работы (региональный репозиторий). На самом деле, если вы не заботитесь об обмене, вы даже не требовали удаленного хранилища. Ваше личное репо было столько же полнофункциональной гитной задачи, так как кто-либо другой, даже удаленный, который, скорее всего, на GitHub или еще один сетевой сервер. Вы делаете свои модификации в рабочем каталоге, сценируете то, что вы «сделали» с (на данный момент), а также посвятить его вашему репо. Когда пришло время, вы толкаете свои модификации так же, как и удаленный, а также объединяется с изменениями других людей.
Интересно, что Git не работает только на текстовых данных (я покажу вам больше об этом в следующем взносе). Он делает, однако, работает лучший на текстовых данных, поскольку оно достаточно мудро, чтобы заметить модификации данных, которые не перекрываются, а также объединяют их автоматически. Так что, если я ремонтирую ошибку, включающую в себя петлю в какой-либо код, а также модификацию некоторых сообщений об ошибках, Git будет все родиться, когда наш код сливается.
Это не всегда работает, конечно. Это приводит к конфликтам, которые вы должны вручную решить. Однако, если у вас нет двух людей, касающихся точных точных той же частей кода, Git обычно делает приятную задачу разрешения разницы. Конечно, двоичные данные, как правило, не получают этой роскоши. Вы не можете точно развернуть икону, чтобы увидеть, что человек человек нарисовал усы на нем, а еще один человек превратил фон зеленого цвета. Однако технически, если вы можете выяснить алгоритм, вы можете добавить его в Git.
Развязка
Если вы хотите повысить ваше понимание Git, просто делая клон, вы можете сделать хуже, чем тратить 15 минут на этом руководстве. Если вы уже понимаете основные основы, вы можете обнаружить некоторые новые вещи в более продвинутом уроке или осматривать видео разговора [Linus], предусмотренный на Git A, когда обратно.
В 2016 году, кстати, Bitekeeper обнаружил, что они переедут к разрешению Apache, который, конечно, является открытым исходным кодом. Тип ироники, не так ли?
Фото кредиты:
Tux Soldier, по [Sharkey], CC BY-SA 3.0
[Linus Torvalds] из журнала Linux, CC By-Sa 3.0
Блок-схема по [LBHTW], CC BY-SA 3.0