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 свежей ветке мастер в свою ветку. Дело все в том что конфликты в мастер ветке влекут за собой большие осложнения нежели конфликт в вашей отдельной ветке. Алгоритм следующей:
- Переключаемся на ветку мастер "git checkout master"
- Обновляем её "git pull"
- Обратно переключаемся на свою ветку "git checkout <name_branch>"
- И мерджим в себя мастер "git merge master"