Предыдущий ролик Следующий ролик  

Видео урок: Рабочий процесс в Git

Git: обучение основам

В последнем ролике мы рассмотрели архитектуру трех деревьев, которую использует Git. Давайте пройдем дальше и посмотрим на рабочий процесс, который обычно происходит при работе с этими тремя деревьями. Это точный процесс, и мы будем им заниматься в следующей главе, когда мы начнем работать с Git командами. Но я считаю, что полезно сначала провести наглядный обзор. Итак, давайте рассмотрим процесс. Во-первых, мы начнем с нового файла. Но запомните, что Git не работает с отдельными файлами, он работает с наборами файлов, которые он объединяет в набор изменений.

Но сейчас мы будем работать с одним файлом для лучшей наглядности. Итак, у нас есть три дерева, у нас есть наша рабочая директория, буфер и репозиторий. Мы собираемся добавить файл в рабочую директорию, и именно это мы и делали, когда создавали наш первый коммит - мы добавили файл в нашу рабочую директорию, давайте назовем этот набор изменний A, чтобы нам было проще на него сослаться. Когда мы вызываем команду git add, она отправляет изменения, которые мы указали, в буфер. Так что теперь file.txt существует и в буфере.

Вы, наверное, обратили внимание, что я использую git add с конкретным именем файла, а когда мы делали наш первый коммит, мы писали git add с точкой. Точка просто говорит - нужно собрать все изменения, которые были сделаны во всей директории, и отправить их все в буфер. Например, если бы я изменил пять файлов, они все одновременно были бы перемещены в буфер. А здесь же я добавляю только один файл. И как только в буфере находится все, что нам нужно, мы готовы связать все это и отправить в качестве коммита в репозиторий, для этого мы используем команду git commit.

Далее, git commit возьмет этот набор изменений и отправит их в репозиторий, и теперь этот файл существует и в репозитории. Он находится в перманентном состоянии, он отслеживается, и в нем есть сообщение коммита об изменениях, которые мы сделали. И это именно то, что мы делали, когда создавали наш первый коммит. А теперь давайте посмотрим, что случится, когда мы отредактируем файл. На данный момент все находится в том же стостоянии, что и раньше, это изменение есть в репозитории, и все наши три дерева выглядят идентичными. В репозитории, буфере и рабочей директории находятся идентичные файлы.

Но сейчас мы внесем изменения в файл, который лежит в рабочей директории. А когда мы его сохраним, у нас будет версия 2 этого файла, все верно, это измененная версия файла, и этот другой набор изменений мы назовем B. Теперь, когда мы сделали изменения, мы хотим добавить их в буфер, и для этого мы используем git add, и тогда наши изменения B отправляются в буфер, так что теперь версия 2 существует и здесь. А затем мы коммитим этот набор изменений, которые представлены как B, в репозиторий, используя git commit.

И вот они отправлены в хранилище, и теперь версия 2 файла существует во всех трех местах. Мы можем провести этот процесс еще раз. У нас есть изменение C с версией 3 файла. Мы отправляем это изменение в буфер, затем мы его коммитим, и оно отправляется в репозиторий. В общем, это обычный рабочий процесс для Git, которому мы будем следовать. И как мы видели ранее, если мы используем git log, нам будет показана последовательность этих изменений, нам будут показаны изменения A, B и C, которые были сделаны. Конечно же, Git не просто ссылается на эти коммиты как на A, B и C, он работает с ними более сложным способом.

И в следующем ролике мы это рассмотрим.