FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

10/git-internals: мелкие правки by OotsutsukiHagoromo · Pull Request #525 · progit/progit2-ru · GitHub

Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension .asc  (1) All 1 file type selected
Viewed files
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Unified
Split
Hide whitespace
Diff view
Unified
Split
Hide whitespace
6 changes: 3 additions & 3 deletions book/10-git-internals/sections/packfiles.asc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ $ find .git/objects -type f
.git/objects/fd/f4fc3344e67ab068f836878b6c4951e3b15f3d # commit 1
----

Git использует zlib для сжатия содержимого этих файлов; к тому же у нас не так много данных, поэтому все эти файлы вместе занимают всего 925 байт.
Git использует `zlib` для сжатия содержимого этих файлов; к тому же у нас не так много данных, поэтому все эти файлы вместе занимают всего 925 байт.
Для того, чтобы продемонстрировать одну интересную особенность Git, добавим файл побольше.
Добавим файл `repo.rb` из библиотеки Grit -- он занимает примерно 22 Кб:

Expand Down Expand Up @@ -123,7 +123,7 @@ Pack-файл -- это файл, в котором теперь находит

Как Git это делает?
При упаковке Git ищет похожие по имени и размеру файлы и сохраняет только разницу между соседними версиями.
Можно заглянуть в pack-файл чтобы понять, какие действия выполняются при сжатии.
Можно заглянуть в pack-файл, чтобы понять, какие действия выполняются при сжатии.
Для просмотра содержимого упакованного файла существует служебная команда `git verify-pack`:

[source,console]
Expand Down Expand Up @@ -160,4 +160,4 @@ chain length = 1: 3 objects
Что интересно, вторая версия файла сохраняется «как есть», а первая -- в виде дельты: ведь скорее всего вам понадобится быстрый доступ к самым последним версиям файла.

Также здорово, что переупаковку можно выполнять в любое время.
Время от времени Git будет выполнять её автоматически, чтобы сэкономить место на диске, но всегда можно инициировать упаковку вручную используя `git gc`.
Время от времени Git будет выполнять её автоматически, чтобы сэкономить место на диске, но всегда можно инициировать упаковку вручную, используя `git gc`.
Loading

Back | FazBrowse Home | New Git URL