Гит

Гит плитки клон и дубина клона

Гит плитки клон и дубина клона

Разумевање Гит плитког клона и дубине клона

Гит је дистрибуирани систем контроле верзија. То је једна од предности коришћења Гита. Не морате да зависите од централног сервера или спремишта да бисте радили локално. Све што вам је потребно у вези историје ваших модула налази се на дохват руке. Међутим, то може постати проблем када имате посла са спремиштима са великим бинарним датотекама или спремиштима која имају дугу историју. Нарочито ако имате ситуацију да га требате сваки пут пренијети свјеже, на примјер, сервер за израду, тада величина и вријеме преузимања могу постати проблем.

Гит-ово решење проблема је плитки клон где можете да користите дубину клона да бисте дефинисали колико дубоко ваш клон треба да иде. На пример, ако користите -дептх 1, тада ће током клонирања Гит добити само најновију копију релевантних датотека. Можете вам уштедети пуно простора и времена.

Гит плитки клон и величина

Погледајмо популарно Гит спремиште за Дјанго. Ако комплетно клонирате репо, добићете следеће:

$ гит клон хттпс: // гитхуб.цом / дјанго / дјанго.гит
Клонирање у 'дјанго' ..
даљински: Бројање објеката: 409053, готово.
даљински: Компримовање објеката: 100% (26/26), готово.
даљински: Укупно 409053 (делта 6), поново употребљено 8 (делта 1), паковање поново употребљено 409026
Пријем предмета: 100% (409053/409053), 167.77 МиБ | 5.95 МиБ / с, готово.
Решавање делта: 100% (297045/297045), готово.
Провера повезаности ... готово.
Провера датотека: 100% (5860/5860), готово.

Ако проверите величину локалне копије, то је:

$ ду -сх дјанго /
225М дјанго /

Набавимо исто Дјанго спремиште са плитким клоном:

$ гит цлоне --дептх 1 хттпс: // гитхуб.цом / дјанго / дјанго.гит
Клонирање у 'дјанго' ..
даљински: Бројање предмета: 8091, готово.
даљински: Компримовање објеката: 100% (4995/4995), готово.
даљински: Укупно 8091 (делта 2036), поново коришћена 5507 (делта 1833), паковање поново 0
Пријем предмета: 100% (8091/8091), 8.82 МиБ | 3.29 МиБ / с, готово.
Решавање делта: 100% (2036/2036), готово.
Провера повезаности ... готово.
Провера датотека: 100% (5860/5860), готово.

Сада ако проверите величину локалне копије, требало би да буде знатно мања:

$ ду -сх дјанго /
55М дјанго /

Када се ваш сервер бави стотинама линија производа, ова врста уштеде простора на тврдом диску може бити корисна. У случајевима пројеката игара где постоје тешке бинарне датотеке, ово може имати драматичан ефекат. Такође помаже код дугогодишњих пројеката. На пример, целокупно клонирање Линук спремишта из ГитХуб-а је веће од 7 ГБ, али можете га плитко клонирати за мање од 1 ГБ.

Гит плитки клон и историја

Локално можете проверити плитко клонирање помоћу сопственог спремишта. Створимо датотеку у нашем локалном спремишту, извршимо измене и урезујемо је 10 пута. А онда можемо клонирати спремиште:

$ мкдир _пример
$ цд _пример
$ лс
$ гит инит
Иницијализовано празно Гит спремиште у / Усерс / закх / гит_репо / _екампле /.гит /
$ ецхо к> ларге_филе
$ гит адд -А
$ гит цоммит -м "Почетно урезивање"
[мастер (роот-цоммит) дд11686] Почетно урезивање
1 датотека промењена, 1 уметање (+)
креирајте режим 100644 ларге_филе
$ ецхо кк> велики_датотека
$ гит адд -А
$ гит цоммит -м "Измена у велики_фајл 1"
[мастер 9ефа367] Измена у ларге_филе 1
1 датотека промењена, 1 уметање (+), 1 брисање (-)


$ мкдир тест
$ цд тест
$ гит клон датотека: //// Усерс / закх / гит_репо / _екампле
Клонирање у „_пример“ ..
даљински: Бројање предмета: 33, готово.
даљински: Компримовање објеката: 100% (22/22), готово.
даљински: Укупно 33 (делта 10), поново коришћена 0 (делта 0)
Пријем предмета: 100% (33/33), 50.03 МиБ | 42.10 МиБ / с, готово.
Решавање делта: 100% (10/10), готово.
Провера повезаности ... готово.

У овом примеру смо креирали _екампле гит спремиште у директоријуму / Усерс / закх / гит_репо / са једним великим_датотеком. Приказана су само прва два обавезивања. Тада стварамо пуни клон тог спремишта на другом месту.

Онда хајде да проверимо историју наших обавезивања:

$ гит лог --онелине
7фа451ф Измена у ларге_филе 10
648д8ц9 Измена у ларге_филе 9
772547а Измена у ларге_филе 8
13дд9аб Измена у ларге_филе 7
5е73б67 Модификација у ларге_филе 6
030а6е7 Измена великог_датотеке 5
1д14922 Измена у ларге_филе 4
бц0ф2ц2 Измена у ларге_филе 3
2794ф11 Измена великог_датотеке 2
д4374фб Измена у ларге_филе 1
924829д Почетна предаја

Све завезе видимо у потпуном клону.
Избришимо сада тренутну копију, а затим плитки клон дубине 1:

$ гит цлоне --дептх 1 датотека: //// Усерс / закх / гит_репо / _екампле
Клонирање у „_пример“ ..
даљински: Бројање објеката: 3, готово.
даљински: Компримовање објеката: 100% (2/2), готово.
даљински: Укупно 3 (делта 0), поново коришћена 0 (делта 0)
Пријем предмета: 100% (3/3), 50.02 МиБ | 65.12 МиБ / с, готово.
Провера повезаности ... готово.

Ако сада погледамо историју, видећемо само последњу историју урезивања:

$ гит лог --онелине
7фа451ф Измена у ларге_филе 10

Плитки клон дубине 3:

$ гит цлоне --дептх 3 датотека: //// Усерс / закх / гит_репо / _екампле
Клонирање у „_пример“ ..
даљински: Бројање предмета: 9, готово.
даљински: Компримовање објеката: 100% (6/6), готово.
даљински: Укупно 9 (делта 2), поново коришћена 0 (делта 0)
Пријем предмета: 100% (9/9), 50.02 МиБ | 65.15 МиБ / с, готово.
Решавање делта: 100% (2/2), готово.
Провера повезаности ... готово.

Сада видимо још обавеза:

$ гит лог --онелине
7фа451ф Модификација у ларге_филе 10
648д8ц9 Измена у ларге_филе 9
772547а Измена у ларге_филе 8

Проблеми са Гит плитким клоном

Корисници би требало да схвате да уштеда на величини и времену преузимања зависи од организације предавања. Они се могу значајно разликовати од једног до другог спремишта. Добро је тестирати спремиште плитким клоном да бисте проверили колико ће вам простора на тврдом диску и времена преузимања уштедети.

Друго разматрање је да, иако можете гурнути код из плитког клона, то може потрајати дуже због прорачуна између удаљеног и локалног сервера. Дакле, ако редовно урезујете код из локалне копије, вероватно има смисла користити пуни клон.

Могућност вишеструког огранка

Када користите -дептх заставицу са командом цлоне, Гит подразумевано подразумева заставицу -сингле-бранцх. Али можете користити заставицу -но-сингле-бранцх да бисте Гит-у рекли да узима историје са одређене дубине сваке гране.

Ево Дјанго грана без опције -но-сингле-бранцх (дубина 1):

$ гит грана -а
* господар
даљински управљачи / порекло / ГЛАВА -> порекло / мастер
даљински управљачи / порекло / мастер

Присутна је само главна грана.

Ево Дјанго грана након употребе опције -но-сингле-бранцх:

$ гит цлоне --дептх 1 --но-сингле-бранцх хттпс: // гитхуб.цом / дјанго / дјанго.гит
Клонирање у 'дјанго' ..
даљински: Бројање предмета: 95072, готово.
даљински: Компримовање објеката: 100% (42524/42524), готово.
даљински: Укупно 95072 (делта 52343), поново употребљено 82284 (делта 42389), пакет поново коришћен 0
Пријем предмета: 100% (95072/95072), 74.69 МиБ | 3.95 МиБ / с, готово.
Решавање делта: 100% (52343/52343), готово.
Провера повезаности ... готово.
Провера датотека: 100% (5860/5860), готово.
$ ду -сх дјанго
124М дјанго

Обратите пажњу, иако је дубина и даље 1, величина клона је 124М уместо 55М за претходни случај.
Ако проверимо гране, на овом клону би требало да видимо много више грана:

$ цд дјанго
$ гит грана -а
* господар
даљински управљачи / порекло / ГЛАВА -> порекло / мастер
даљински / порекло / поткровље / боулдер-орацле-спринт
даљински управљачи / порекло / поткровље / пуна историја
даљински управљачи / порекло / поткровље / генеричка-аут
даљински / порекло / поткровље / гис
даљински управљачи / порекло / поткровље / и18н
даљински / порекло / поткровље / магично уклањање
даљински управљачи / порекло / поткровље / вишеструка ауторизација
даљински управљачи / порекло / поткровље / мулти-дб-подршка
даљински / порекло / поткровље / нови-админ
ремотес / оригин / поткровље / невформс-админ
даљински управљачи / порекло / поткровље / дозволе по објекту
даљински управљачи / порекло / поткровље / куерисет-рефацтор
даљински / порекло / поткровље / шема-еволуција
даљински / порекло / поткровље / сцхема-еволутион-нг
даљински управљачи / порекло / поткровље / сеарцх-апи
даљински / порекло / поткровље / склалцхеми
даљински управљачи / порекло / поткровље / уницоде
даљински управљачи / порекло / мастер
ремотес / оригин / соц2009 / админ-уи
ремотес / оригин / соц2009 / хттп-всги-побољшања
ремотес / оригин / соц2009 / и18н-побољшања
ремотес / оригин / соц2009 / валидација модела
ремотес / оригин / соц2009 / мултидб
ремотес / оригин / соц2009 / тест-побољшања
ремотес / оригин / соц2010 / апп-лоадинг
ремотес / оригин / соц2010 / куери-рефацтор
ремотес / оригин / соц2010 / тест-рефацтор
даљински управљачи / порекло / стабилно / 0.90.Икс
даљински управљачи / порекло / стабилно / 0.91.Икс
даљински управљачи / порекло / стабилно / 0.95.Икс
даљински управљачи / порекло / стабилно / 0.96.Икс
даљински управљачи / порекло / стабилно / 1.0.Икс
даљински управљачи / порекло / стабилно / 1.1.Икс
даљински управљачи / порекло / стабилно / 1.10.Икс
даљински управљачи / порекло / стабилно / 1.11.Икс
даљински управљачи / порекло / стабилно / 1.2.Икс
даљински управљачи / порекло / стабилно / 1.3.Икс
даљински управљачи / порекло / стабилно / 1.4.Икс
даљински управљачи / порекло / стабилно / 1.5.Икс
даљински управљачи / порекло / стабилно / 1.6.Икс
даљински управљачи / порекло / стабилно / 1.7.Икс
даљински управљачи / порекло / стабилно / 1.8.Икс
даљински управљачи / порекло / стабилно / 1.9.Икс
даљински управљачи / порекло / стабилно / 2.0.Икс

Резиме

Гит плитки клон може вам помоћи да уштедите време и простор на чврстом диску. Али то има своју цену. Ако редовно гурате код у удаљена спремишта, то ће повећати време урезивања. Дакле, за редовне токове посла добра је идеја да избегавате плитке клонове.

Референце:

Како да промените леви и десни тастер миша на рачунару са Виндовс 10
Сасвим је нормално да су сви уређаји рачунарског миша ергономски дизајнирани за дешњаке. Али постоје доступни уређаји за миш који су посебно дизајнира...
Емулирајте кликове мишем лебдењем помоћу миша без клика у оперативном систему Виндовс 10
Коришћење миша или тастатуре у погрешном положају прекомерне употребе може резултирати многим здравственим проблемима, укључујући напрезање, синдром к...
Додајте покрете миша у Виндовс 10 помоћу ових бесплатних алата
Последњих година рачунари и оперативни системи су се увелико развили. Било је време када су корисници морали да користе команде за навигацију кроз мен...