1. Введение
2. Запуск консоли для работы с Git
3. Git, простые примеры
3.1. Настройка Git-репозитория
3.1.1. Пример 1: создание репозитория и установка локальных настроек
3.1.2. Пример 2: то же что и пример1, но короче запись
3.1.3. Пример 3: установка пользовательских настроек
3.2. Простые операции с одним репозиторием
3.2.1. Пример 1: создать репозиторий, зафиксировать изменения
3.2.2. Пример 2: создать репозиторий, сделать 3 фиксации
3.2.3. Пример 3: работа с git checkout (возврат)
3.2.4. Пример 4: работа с git checkout и git branch (возврат и создание новой ветки)
3.2.5. Пример 5: работа с git branch (слияние двух веток)
3.3. Операции с двумя репозиториями
3.3.1. Пример 1: создать реп, отклонироваться, внести изменения в первый, обновиться во втором
3.3.2. Пример 2: создать два репозитория, внести изменения в оба, второй слить с первым
3.3.3. Пример 3: создать два репозитория, внести изменения в оба, второй слить с первым
3.3.4. Пример 4: втолкнуть данные в удалённый пустой репозиторий
3.3.5. Пример 5: втолкнуть данные в удалённый не пустой репозиторий
3.4. Заключение
Введение
В этой части мы рассмотрим работу с репозиторием git на примерах
Команды, которые будут использоваться здесь, кратко описаны в предыдущей части Git, краткий справочник команд.
Запуск консоли для работы с Git
В одной из предыдущих статей я расказал, как установить Git на ваш компьютер. Сейчас я исхожу из того, что у вас всё установлено.
Напомню ещё раз, что должно быть на данный момент:
- у вас установлен Git примерно в такую папку c:Program Files (x86)Git
- у вас создан текстовый файл c:bingitbash.bat с содержимым @%WINDIR%system32cmd.exe /c «»C:Program Files (x86)Gitbinsh.exe» —login -i»
- путь c:bin добавлен в переменную окружения PATH
Если что-то не сделано, прочитайте ещё раз статью по установке Git.
Имея эти настройки, мы можем вызывать MINGW32 консоль для работы с git, находясь в любой папке, просто набрав команду
gitbash
Далее я исхожу из того, что мы работаем в MINGW32 консоли.
Создадим папку c:git для запуска примеров в ней:
cd c: mkdir git cd git
После этого мы располагаемся в директории c:git. Отсюда я предполагаю, что все последующие примеры будут запускаться из этой же директории (Хотя это совершенно не обязательно).
В некоторых примерах я пишу комментарии на английском, чтобы была возможность выполнить код скрипта в MINGW32 под Windows командой
sh -- yourScriptFile
где yourScriptFile — имя файла со скриптами примера. К сожалению, русские комментарии не дают выполнять скрипты.
Git, простые примеры
Настройка Git-репозитория
Пример 1: создание репозитория и установка локальных настроек
Цель: создать репозиторий, установить свое имя и емаил для репозитория
mkdir a1 cd a1 git init #1. создать репозиторий в текущей папке git config user.name YourName #2. установим имя и эл. ящик для этого репозитория git config user.name YourEmail@email.x
После того, как мы установили имя и эл. ящик, мы можем начать работать с git-репозиторием, выполнять фиксации и другие операции.
Пример 2: то же что и пример1, но короче запись
Цель: создать репозиторий, установить свое имя и е
маил для репозитория
Заметка: то же, что и в предыдущем примере, но более короткая запись.
git init a1 #1. создать репозиторий в папке a1 (папка будет создана) cd a1 # перейти в новый репозиторий git config user.name YourName #2. установим имя и эл. ящик для этого репозитория git config user.name YourEmail@email.x
Пример 3: установка пользовательских настроек
Цель: установить глобальные настройки имени и эл. ящика для всех будущих репозиториев
git config --global -l # прочитать список глобальных настроек git config --global user.name YourName # установить имя и эл. ящик git config --global user.name YourEmail@email.x
Теперь в каждом новом вашем репозитории не придётся заного устанавливать имя и эл. ящик, т.к. эти данные будут браться из глобальным настроек вашего пользователя. (Файл ~/.gitconfig)
Простые операции с одним репозиторием
Пример 1: создать репозиторий, зафиксировать изменения
Цель: сделать первую фиксацию, просмотреть лог фиксаций
git init a2 #1. создать репозиторий a2 cd a2 #2. перейти в новый репозиторий echo 'line-1' > file1 #3. записать строку 'line-1' в текстовый файл file1 (файл создастся) git add . #4. добавить все файлы в index (staging area) git commit -m 'My 1 commit' #5. зафиксировать изменения, установив комментарий 'My first commit' git log #6. просмотреть лог фиксаций
Последняя команда #6 выведет текст, похожий на следующий:
commit 533542948c6e7d4a25925d695d4cf81312d1a30f Author: YourName <youremail@email.x> Date: Wed Jan 4 18:54:49 2012 +0600
My 1 commit
</youremail@email.x>
Обратите внимание, что строка 533542948c6e7d4a25925d695d4cf81312d1a30f является уникальным именем коммита, данное имя может использоваться во многих операциях с git.
Также в этом выводе вы можете наблюдать ваше имя, эл. ящик и комментарий, установленный к фиксации.
Пример 2: создать репозиторий, сделать 3 фиксации
Цель: сделать 3 фиксации, просмотреть лог фиксаций
git init a3 #1. создать репозиторий a3 cd a3 #2. перейти в новый репозиторий
echo ‘line-1’ > file1 #3. записать строку ‘line-1’ в текстовый файл file1 (файл создастся)
git add . #4. добавить все файлы в index (staging area)
git commit -m ‘My 1 commit’ #5. зафиксировать изменения, установив комментарий ‘My first commit’
echo ‘line-2’ >> file1 #6. добавить запись в file1
git commit -a -m ‘My 2 commit’ #7. фиксируем изменения. Обратите внимание на ключ -a, который
# позволяет нам не выполнять git add . для файлов, которые ранее уже
# участвовали в фиксациях (см. #4)
echo ‘line-3’ >> file1 #8. добавить запись в file1
git commit -a -m ‘My 3 commit’ #9. зафиксировать изменения
git log #10. просмотреть лог фиксаций
Лог фиксаций будет примерно таким:
commit 812f2a05e9104e3e6f921f62839f75333a8f3150 Author: YourName <youremail@email.x> Date: Wed Jan 4 19:22:43 2012 +0600
My 3 commit
commit 1edf5fedb8d86deed2764d2b6701c1d10c35e7b2
Author: YourName <youremail@email.x>
Date: Wed Jan 4 19:12:19 2012 +0600
My 2 commit
commit 533542948c6e7d4a25925d695d4cf81312d1a30f
Author: YourName <youremail@email.x>
Date: Wed Jan 4 18:54:49 2012 +0600
My 1 commit
</youremail@email.x></youremail@email.x></youremail@email.x>
Пример 3: работа с git checkout (возврат)
Цель: сделать 2 фиксации и вернуться на 1 фиксацию назад
git init a4 #1. создать репозиторий a4 cd a4 #2. перейти в новый репозиторий
echo ‘line-1’ > file1 #3. записать строку ‘line-1’ в текстовый файл file1 (файл создастся)
git add . #4. добавить все файлы в index (staging area)
git commit -m ‘My 1 commit’ #5. зафиксировать изменения, установив комментарий ‘My first commit’
echo ‘line-2’ >> file1 #6. добавить запись в file1
git commit -a -m ‘My 2 commit’ #7. фиксируем изменения
cat file1 #8. вывести содержимое файла file1 в консоль (увидим две срочки текста)
git checkout HEAD~1 #9. возвращаемся на 1 фиксацию назад относительно положения HEAD
git log #10. смотрим лог изменений относительно нашего текущего положения
git checkout master #11. возвращаемся на верхушку ветки master
Пример 4: работа с git checkout и git branch (возврат и создание новой ветки)
Цель: сделать 2 фиксации и вернуться на 1 фиксацию назад
git init a5 #1. создать репозиторий a5 cd a5 #2. перейти в новый репозиторий
echo ‘line-1’ > file1 #3. записать строку ‘line-1’ в текстовый файл file1 (файл создастся)
git add . #4. добавить все файлы в index (staging area)
git commit -m ‘My 1 commit’ #5. зафиксировать измен