|
@@ -0,0 +1,203 @@
|
|
|
+# Начало работы с GIT
|
|
|
+
|
|
|
+При выполнении задания можно руководствоваться официальным учебником:
|
|
|
+
|
|
|
+[Pro Git book](https://git-scm.com/book/ru/v2)
|
|
|
+
|
|
|
+1. Установите GIT на свой компьютер: http://git-scm.ru/
|
|
|
+
|
|
|
+2. Запустите GIT в консоли и создайте новый репозиторий:
|
|
|
+
|
|
|
+```
|
|
|
+git init
|
|
|
+```
|
|
|
+
|
|
|
+3. Задайте имя пользователя для текущего проекта:
|
|
|
+
|
|
|
+```
|
|
|
+git config --local user.name "John Doe"
|
|
|
+git config --local user.email johndoe@example.com
|
|
|
+```
|
|
|
+
|
|
|
+4. Создайте файлы, необходимые для проекта.
|
|
|
+
|
|
|
+5. Просмотрите состояние изменений:
|
|
|
+
|
|
|
+```
|
|
|
+git status
|
|
|
+```
|
|
|
+
|
|
|
+Если заметили файлы, в которых были внесены изменения, которых быть не должно (например, случайно изменили файл и эти изменения не нужны), то можно откатить эти изменения:
|
|
|
+
|
|
|
+```
|
|
|
+git checkout -- file_0.html
|
|
|
+```
|
|
|
+
|
|
|
+6. Добавьте файлы в индекс:
|
|
|
+
|
|
|
+```
|
|
|
+git add file_a.html
|
|
|
+git add file_b.html
|
|
|
+git add file_c.html
|
|
|
+...
|
|
|
+git add file_z.html
|
|
|
+```
|
|
|
+
|
|
|
+Можно добавить сразу все измененные в проекте файлы с помощью команды:
|
|
|
+
|
|
|
+```
|
|
|
+git add -A
|
|
|
+```
|
|
|
+
|
|
|
+Но следует быть предельно осторожным.
|
|
|
+
|
|
|
+После добавления файлов, проверьте состояние:
|
|
|
+
|
|
|
+```
|
|
|
+git status
|
|
|
+```
|
|
|
+
|
|
|
+Если все хорошо, то можно продолжить.
|
|
|
+
|
|
|
+Если же заметили новые файлы, которые не должны были попасть в репозиторий, то их необходимо отменить:
|
|
|
+
|
|
|
+```
|
|
|
+git rm --cached file_x.html
|
|
|
+```
|
|
|
+
|
|
|
+Если были изменены файлы, которые сейчас не нужно проталкивать в репозиторий:
|
|
|
+
|
|
|
+```
|
|
|
+git reset HEAD file_n.html
|
|
|
+```
|
|
|
+
|
|
|
+
|
|
|
+7. Создайте новый коммит из измененных файлов:
|
|
|
+
|
|
|
+```
|
|
|
+git commit -m "commit description"
|
|
|
+```
|
|
|
+
|
|
|
+Вместо *commit description* необходимо дать осмысленное описание вашего коммита.
|
|
|
+
|
|
|
+
|
|
|
+8. Создайте новый репозиторий на одном из хостингов репозиториев:
|
|
|
+
|
|
|
+- [GitHub](https://github.com/)
|
|
|
+- [BitBucket](https://bitbucket.org/)
|
|
|
+- [GitLab](https://gitlab.com/)
|
|
|
+- [GIT for Forlabs](https://git.fl8.ru/)
|
|
|
+
|
|
|
+9. Добавьте удаленный репозиторий в ваш локальный:
|
|
|
+
|
|
|
+```
|
|
|
+git remote add origin https://git.fl8.ru/alshabalin/first.git
|
|
|
+```
|
|
|
+
|
|
|
+Вместо `https://git.fl8.ru/alshabalin/first.git` необходимо указать URL вашего репозитория.
|
|
|
+
|
|
|
+10. Отправьте ваши изменеия в удаленный репозиторий:
|
|
|
+
|
|
|
+```
|
|
|
+git push -u origin master
|
|
|
+```
|
|
|
+
|
|
|
+Обратите внимание, что для первой отправки необходимо указать ветку на удаленном репозитории.
|
|
|
+
|
|
|
+В последующем отправить коммит в удаленный репозиторий можно будет командой `git push`.
|
|
|
+
|
|
|
+11. Удостоверьтесь, что ваши файлы сохранены в удаленном репозитории.
|
|
|
+
|
|
|
+12. Добавьте файлы в свой проект и/или измените несколько существующих файлов.
|
|
|
+
|
|
|
+13. Отправьте изменения в удаленный репозиторий.
|
|
|
+
|
|
|
+14. Пометьте текущий коммит как первую версию вашего проекта:
|
|
|
+
|
|
|
+```
|
|
|
+git tag v1.0
|
|
|
+```
|
|
|
+
|
|
|
+Команда создает новую метку (тег) с именем `v1.0`.
|
|
|
+
|
|
|
+15. Отправьте созданную метку на сервер:
|
|
|
+
|
|
|
+```
|
|
|
+git push origin v1.0
|
|
|
+```
|
|
|
+
|
|
|
+16. Создайте новую ветку в своем проекте:
|
|
|
+
|
|
|
+```
|
|
|
+git branch test1
|
|
|
+```
|
|
|
+
|
|
|
+`test1` - это имя вашей ветки.
|
|
|
+
|
|
|
+
|
|
|
+Проверьте список ваших текущий веток:
|
|
|
+
|
|
|
+```
|
|
|
+git branch
|
|
|
+```
|
|
|
+
|
|
|
+Затем переключитесь на новую ветку:
|
|
|
+
|
|
|
+```
|
|
|
+git checkout test1
|
|
|
+```
|
|
|
+
|
|
|
+Можно сразу создать новую ветку и переключиться на нее:
|
|
|
+
|
|
|
+```
|
|
|
+git checkout -b test1
|
|
|
+```
|
|
|
+
|
|
|
+17. Добавьте файлы и/или измените существующие в новой ветке, создайте из них коммит.
|
|
|
+
|
|
|
+18. Отправьте новую ветку в удаленный репозиторий:
|
|
|
+
|
|
|
+```
|
|
|
+git push -u origin test1
|
|
|
+```
|
|
|
+
|
|
|
+В дальнейшем в новую ветку можно отправлять обычной командой `git push`.
|
|
|
+
|
|
|
+19. Переключитесь на ветку **master**:
|
|
|
+
|
|
|
+```
|
|
|
+git checkout master
|
|
|
+```
|
|
|
+
|
|
|
+20. Измените и/или добавьте несколько файлов в ветке **master**, создайте их них коммит, отправьте в удаленный репозиторий.
|
|
|
+
|
|
|
+21. Вернитесь на ветку **test1**.
|
|
|
+
|
|
|
+22. Измените и/или добавьте несколько файлов в ветке **test1**, создайте их них коммит, отправьте в удаленный репозиторий.
|
|
|
+
|
|
|
+23. Объедините изменения из ветки **test1** в ветку **master**.
|
|
|
+
|
|
|
+Стоит учесть, что целесообразнее, сначала втянуть изменения из ветки **master** в ветку **test1**, а затем переключиться на ветку **master** и слить с изменениями из ветки **test1**.
|
|
|
+
|
|
|
+```
|
|
|
+git merge master
|
|
|
+
|
|
|
+git push
|
|
|
+
|
|
|
+git checkout master
|
|
|
+
|
|
|
+git merge test1
|
|
|
+
|
|
|
+git push
|
|
|
+```
|
|
|
+
|
|
|
+На любом из этапов объединения может возникнуть конфликт, если необходимо уладить.
|
|
|
+
|
|
|
+Если конфликт разрешается вручную, то необходимо выполнить `git add conflicted_file.html` и сделать коммит.
|
|
|
+
|
|
|
+24. Создайте метку с новой версией `v1.1` и отправьте ее на сервер.
|
|
|
+
|
|
|
+25. Предоставьте доступ к репозиторию пользователю **alshabalin**.
|
|
|
+
|
|
|
+
|
|
|
+
|