diff --git a/ru/grandmaster.txt b/ru/grandmaster.txt index 565073e4..e1180757 100644 --- a/ru/grandmaster.txt +++ b/ru/grandmaster.txt @@ -8,14 +8,14 @@ $ git archive --format=tar --prefix=proj-1.2.3/ HEAD -=== Сохранение изменений === +=== Коммит изменений === -В некоторых проектах может быть трудоемко оповещать Git отдельно о каждом добавлении, удалении и переименовании файла. Вместо этого вы можете выполнить команды +В некоторых проектах может быть трудоемко оповещать Git о каждом добавлении, удалении и переименовании файла. Вместо этого вы можете выполнить команды $ git add . $ git add -u -Git просмотрит файлы в текущем каталоге и сам позаботится о деталях. Вместо второй команды add, выполните *git commit -a*, если вы собираетесь сразу сделать коммит. См. в *git help ignore*, чтобы узнать как указать файлы, которые должны игнорироваться. +Git просмотрит файлы в текущем каталоге и сам позаботится о деталях. Вместо второй команды add, выполните *git commit -a*, если вы собираетесь сразу сделать коммит. См. *git help ignore*, чтобы узнать как указать файлы, которые должны игнорироваться. Вы можете выполнить все это одним махом: @@ -31,23 +31,23 @@ Git просмотрит файлы в текущем каталоге и сам $ git add -p -Для каждой вашей правки Git покажет измененный участок кода и спросит, должно ли это изменение попасть в следующий коммит. Отвечайте «y» или «n». У вас есть идругие варианты, например отложить выбор; введите "?" чтобы узнать больше. +Для каждой сделанной вами правки Git покажет измененный участок кода и спросит, должно ли это изменение попасть в следующий коммит. Отвечайте «y» (да) или «n» (нет). У вас есть и другие варианты, например отложить выбор; введите «?» чтобы узнать больше. Когда закончите, выполните $ git commit -для внесения именно тех правок, что вы выбрали («буферизованных» изменений). Убедитесь, что вы не указали опцию *-a*, иначе Git закоммитит все изменения. +для внесения именно тех правок, что вы выбрали («буферизованных» изменений). Убедитесь, что вы не указали опцию *-a*, иначе Git закоммитит все правки. -Что делать, если вы изменили множество файлов во многих местах? Проверка каждого отдельного изменения становится удручающей рутиной. В этом случае используйте *git add -i*. Ее интерфейс не так прост, но более гибок. В несколько нажатий кнопок можно добавить или убрать из буфера несколько файлов одновременно, либо просмотреть и выбрать изменения лишь в отдельных файлах. Как вариант, запустите *git commit \--interactive*, который автоматически сделает коммит когда вы закончите. +Что делать, если вы изменили множество файлов во многих местах? Проверка каждого отдельного изменения становится удручающей рутиной. В этом случае используйте *git add -i*. Ее интерфейс не так прост, но более гибок. В несколько нажатий кнопок можно добавить или убрать из буфера несколько файлов одновременно, либо просмотреть и выбрать изменения лишь в отдельных файлах. Как вариант, запустите *git commit \--interactive*, которая автоматически сделает коммит когда вы закончите. === Индекс — буферная зона Git === -До сих пор мы избегали знаменитого «индекса» Git, но теперь мы должны рассмотреть ее, для пояснения вышесказанного. Индекс это временный буфер. Git редко перемещает данные непосредственно между вашим проектом и его историей. Вместо этого Git сначала записывает данные в индекс, а уж затем копирует их из индекса по месту назначения. +До сих пор мы избегали знаменитого «индекса» Git, но теперь мы должны рассмотреть его, для пояснения вышесказанного. Индекс это временный буфер. Git редко перемещает данные непосредственно между вашим проектом и его историей. Вместо этого Git сначала записывает данные в индекс, а уж затем копирует их из индекса по месту назначения. Например, *commit -a* на самом деле двухэтапный процесс. Сначала слепок текущего состояния каждого из отслеживаемых файлов помещается в индекс. Затем слепок, находящийся в индексе, записывается в историю. Коммит без опции *-a* выполняет только второй шаг, и имеет смысл только после выполнения команд, изменяющих индекс, таких как *git add*. -Обычно мы можем не обращать внимания на индекс и делать вид, что взаимодействуем напрямую с историей. Но в данном случае мы хотим более тонкого контроля, поэтому работаем с индексом. Мы помещаем слепок некоторых (но не всех) наших изменений в индекс, после чего окончательно записываем этот аккуратно сформированный слепок. +Обычно мы можем не обращать внимания на индекс и делать вид, что взаимодействуем напрямую с историей. Но в данном случае мы хотим более тонкого контроля, поэтому управляем индексом. Мы помещаем слепок некоторых (но не всех) наших изменений в индекс, после чего окончательно записываем этот аккуратно сформированный слепок. === Не теряй «головы» === @@ -59,11 +59,11 @@ Git просмотрит файлы в текущем каталоге и сам Но как вернуться назад в будущее? Ведь предыдущие коммиты о нем ничего не знают. -Если у вас есть SHA1 предыдущей «головы», то: +Если у вас есть SHA1 изначальной «головы», то: $ git reset 1b6d -Но допустим, вы никогда его не записывали. Не беспокойтесь: для комнад такого рода Git сохраняет оригинальный HEAD как тег под названием ORIG_HEAD, и вы можете вернуться надежно и безопасно: +Но допустим, вы его не записывали. Не беспокойтесь: для комнад такого рода Git сохраняет оригинальную «голову» как тег под названием ORIG_HEAD, и вы можете вернуться надежно и безопасно: $ git reset ORIG_HEAD