Git это система контроля ревизий. Значит если вы допустили несколько ошибок и испортили свой код можно просто откатиться на старую версию, а не вспоминать где и что вы исправляли.
Git позволяет размещать исходные тексты на удаленных серверах типа Bitbucket, Gihtub и даже Google Code. Можно взять свой код с удаленного сервера на локальный компьютер, отредактировать и закачать его назад. Чем-то похоже на облачное хранилище, типа Dropbox, но для кода.
Cайт github.com позиционируется как веб-сервис хостинга проектов с использованием системы контроля версий git, а также как социальная сеть для разработчиков.
Пользователи могут создавать неограниченное число репозиториев, для каждого из которых предоставляется wiki, система issue tracking-а, есть возможность проводить code review и многое другое.
Контроль версий программ
- автоматическое резервное копирование текущей версии программы и соответствующих исходных кодов;
- удобная сводка внесенных изменений;
- интеллектуальное отслеживание противоречащих друг другу изменений;
Совместная разработка программы группой программистов:
- контроль ответственности: кто, когда и какие изменения внес в исходный код;
- статистика вклада участников в разработку проекта;
Создание версий разработки
- проведение экспериментов, не затрагивая основного кода программы;
- совместная модульная разработка: отдельные модули, которые в дальнейшем включаются в общий проект;
- легкое управление версиями: слияние версий в основной проект, перемещение версий, удаление версий;
git config --global user.name "Your Name"
git config --global user.email "youremail@domain.com"
git init
(Создание нового локального репозитория)
git status
Проверка состояния репозитория
git add <имя_файла>
или
git add .
Чтобы подготовить изменения (добавить их в Индекс) используйте
git commit -m "Описание коммита"
Это первый шаг в основном рабочем процессе. Сделать коммит подготовленных изменений можно командой
Теперь изменения закреплены в локальном репозитории.
Ваш локальный git репозиторий состоит из трех "сущностей". Рабочий каталог (Working Directory) содержит файлы. Индекс (Index) или область подготовленных файлов (Staging Area), содержит информацию о том, что должно войти в следующий коммит и HEAD указывает на последний коммит что вы сделали.
Получение списка произведенных изменений — функция команды git log
git log
git log
commit fa3c1411aa09441695a9e645d4371e8d749da1dc
Author: Alexey Kalyuzhnyi
Date: Wed Mar 9
Added HTML header
commit 8c3228730ed03116815a5cc682e8105e7d981928
Author: Alexey Kalyuzhnyi
Date: Wed Mar 9
Added standard HTML page tags
результат
Чтобы отправить эти изменения в ваш удаленный репозиторий, выполните.
git push origin master
Если вы еще не клонировали существующий репозиторий и хотите подключить ваш к удаленному, вам нужно на GitHub создать новый репозиторий, для этого переходим по ссылке https://github.com/new и потом добавляем его, выполнив
git remote add origin <адрес_сервера>
Теперь вы можете отправлять изменения на удаленный репозиторий. Для этого нужно будет ввести логин и пароль от вашего GitHub
Можно изменить master на любую другую ветвь чтобы отправить изменения на неё.
Получить список удаленных репозиториев
git remote
Добавление удаленного репозитория.
git remote add origin <адрес_сервера>
Заливка файлов в удаленный репозиторий. (Попросит ввести логин и пароль)
git push origin master
Переименование и удаление удаленного репозитория
git remote rename староеИмя новоеИмя
git remote rm имя
git push --all
Ветки используются для разработки функционала изолированного от остального. Ветка master используется по умолчанию когда вы создаете репозиторий. Используйте другие ветки для разработки и слияние в master когда разработка завершена.
git branch feature_x
Создать новую ветку с названием “feature_x” можно командой
git push origin <имя_ветки>
ветка не будет доступна тем, кто пользуется с вами удаленным репозиторием пока вы не отправите её туда
git checkout -b feature_x
Создать новую ветку с названием “feature_x” и сразу переключиться на неё можно командой
git branch -d feature_x
удалить ветку
git merge <имя_ветки>
Для того чтобы слить другую ветку с активной (например master), используйте команду
git пытается автоматически слить изменения. К сожалению, это не всегда возможно и результатом станет конфликт. Вы ответственны за разрешение возникших конфликтов
git diff <имя_ветки> <имя_другой_ветки>
перед слиянием вы можете предварительно посмотреть на изменения
git checkout -b gh-pages
Чтобы мы могли “смотреть” наши репозитории по ссылке типа http://alexcss.github.io/css-diner-shopping-list/ (где css-diner-shopping-list это имя репозитория, а alexss ваш логин) нужно создать ветку gh-pages
git merge master
синхронизировать gh-pages c master
git push origin gh-pages
отправить ветку на сервер.
git checkout gh-pages && git merge master && git checkout master && git push --all
Эти команды можно объединить в одну строку
git checkout master
вернуться в master