Когда git делает фиксацию, он отражен в .git
в каталоге только поменяны файлы или все файлы проекта?Как git-магазин фиксирует - как сохраняются изменения?
Почему git gc
не предшествует после каждой фиксации?
Для чего была создана эта команда?
Когда git делает фиксацию, он отражен в .git
в каталоге только поменяны файлы или все файлы проекта?Как git-магазин фиксирует - как сохраняются изменения?
Почему git gc
не предшествует после каждой фиксации?
Для чего была создана эта команда?
Каждая версия каждого файла хранится в каталоге .git
. Итак, допустим, у вас есть три файла: A1, B1 и C1. Затем вы совершаете фиксацию, которая меняет A1 на A2. После этого .git
будет содержать A1, B1, C1 и A2. Таким образом, все файлы проектов действительно находятся в каталоге .git
, но добавлен только один, поскольку только один был изменен.
Две причины, по которым я могу думать о том, почему git gc
не запускается после каждой фиксации: a) требуется время и b) он получает информацию о файлах, которые вы, возможно, захотите получить позже. Вы можете думать о git gc
как о том, как очистить корзину в Windows; он не позволяет вам легко «деинсталлировать» файлы позже.
«он не позволяет вам легко« деинсталлировать »файлы позже». Не могли бы вы объяснить это? git gc вызывает историю? –
Это не разрушает историю, нет; если у вас есть файл в вашей истории, он всегда извлекается. То, что я имел в виду, это когда у вас есть фиксация, которую вы отмените с помощью 'git reset',' git commit -amend' или чего-то подобного. Вам, вероятно, не нужно беспокоиться об этом. –
ОК, и если мы нажмем фиксацию из вашего примера - будет изменен только измененный файл? –
Начать работу с https://git-scm.com/book/en/v1/Git-Internals-Git-Objects –