Git introduction (short version)

Git introduction (short version)

morgangso@gmail.com

Это короткая версия более длинной инструкции, которая находиться здесь.

Создаем новый репозиторий

Инициализация репозитория в папке *(делается один раз)

git init

Отмечаем в каких файлах мы хотим отследить изменения

git add <name_file>
git add <file_one> <file_two> <file_three>

Или хотим добавить изменения во всех файлах (надо быть осторожным)

git add .

Далее надо зафиксировать все изменения в отмеченных файлах

git commit -m "message commit - comment"

Далее нам необходимо указать адрес удаленного сервера, адрес можно получить при создании репозитория, через интерфейс *(делается один раз)

git remote add origin git@github.com:username/name_project.git

Теперь отправить изменения на сервер (сделать первый push)

*(делается один раз)

git push -u origin master

Копируем уже созданный репозиторий

Адресы репозитория нам должен сообщить хозяин репозитория

git clone git@github.com:username/name_project.git

Теперь у нас есть полностью готовый, настроенный и работающий репозиторий

Обычная работа git в ветке master

Как не правильно

НЕ РАБОТАЙТЕ В ВЕТКЕ МАСТЕР

Вносим изменения в файлы, далее добавляем в список те файлы изменения из которых мы хотим зафиксировать:

git add name_file.py

Далее, нам надо зафиксировать изменения - сделать комит:

git commit -m "message commit"

Теперь нам надо отправить копию наших изменений на сервер, чтобы наши изменения стали доступны всем:

git push

Время от времени работая с веткой которая уже есть на сервере, нам желательно стягивать изменения с сервера к себе локально, командой:

git pull


Обычная работа git в своей ветке

Как правильно

Находясь в ветке master, нам нужно создать новую ветку от мастера - ответвление.

Чтобы создать ветку и сразу же перейти на неё, вы можете выполнить команду git checkout с ключом -b:

git checkout -b <name_new_branch>

Это сокращение для:

git branch <name_new_branch>
git checkout <name_new_branch>

Далее работаем в своей ветке. вносим изменения в файлы, далее добавляем в список те файлы изменения из которых мы хотим зафиксировать:

git add name_file.py

Далее, нам надо зафиксировать изменения - сделать комит:

git commit -m "message commit"

Теперь нам надо отправить копию наших изменений на сервер, чтобы наши изменения стали доступны всем:

git push

Время от времени работая с веткой которая уже есть на сервере, нам желательно стягивать изменения с сервера к себе локально, командой:

git pull

Теперь когда наши изменения готовы чтобы их увидели все нам необходимо нашу новую ветку смерджить в главную (основную) ветку мастер, для этого нам надо переключиться на мастер и обновить мастер.

Переключаемся:

git checkout master

Обновляемся:

git pull

Если мастер ветка не изменялась пока вы работали в своей ветке, то в таком и только в таком случае можно "вливать" свою ветку в мастер ветку, это делается следующей командой:

git merge <name_branch>

После команды merge создаться ещё один комит.

Для закрепления результата отправляем копию наших изменений на сервер, чтобы наша версия мастера стала доступна всем:

git push

Если во-время работы в нашей ветке, кто-то или вы сами изменили ветку master, то чтобы обезопасить себя от конфликтов в мастер ветке, вам необходимо сделать merge свежей ветке мастер в свою ветку. Дело все в том что конфликты в мастер ветке влекут за собой большие осложнения нежели конфликт в вашей отдельной ветке. Алгоритм следующей:

  1. Переключаемся на ветку мастер "git checkout master"
  2. Обновляем её "git pull"
  3. Обратно переключаемся на свою ветку "git checkout <name_branch>"
  4. И мерджим в себя мастер "git merge master"