Знакомство с системой контроля версий исходного кода Git.
Git Hub# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
1 тест |
|||
На этом уроке мы начинаем изучать систему контроля версий Git. В процессе курса расскажу для чего ее использовать, как пользоваться и что происходит во время каждой из команд. Каждое действие мы выполним дважды - один раз через Git, второй раз средствами операционной системы. А сейчас установим, если еще не установлены необходимые программы для прохождения данного курса. jdk и java: download git: download Отчёт отправил: 17535. Алексей Выполнено за 1 час. 2 мин. [Показать отчёт] Научился: Устанавливать Git. Прописывать переменные среды java. Сложности: java показывала информацию по запросу, а javac нет. Я был удивлен так как все точно работало. Потом вспомнил что переставлял винду и видимо не прописал заново переменные среды. Заодно прописал и путь. Опять все не работало. Заработало после перезагрузки компьютера. |
|||||
2 | git init |
1 тест |
|||
На этом уроке мы создадим «Зоопарк» папок. Выполним первые команды для git: “git init” и “git status”. Узнаем, чем отличаются папки Workdir, Stage area, Repository. Посмотрим, что находится внутри "папки .git". Отчёт отправил: 17535. Алексей Выполнено за 1 час. 10 мин. [Показать отчёт] Научился: Создавать репозиторий командой git init и проверять его статус командой git status. Сложности: Git - распределённая система управления версиями. GitHub - веб-сервис для хостинга IT-проектов и их совместной разработки. |
|||||
3 | git add checkout |
3 теста |
|||
На этом уроке мы продолжим знакомиться с новыми командами в git: “git add” и “git checkout”. Проделаем это же в ручном режиме. Визуально увидим, как это все работает.
Отчёт отправил: 17535. Алексей Выполнено за 27 мин. [Показать отчёт] Научился: Отслеживать с помощью git add интересующие файлы. Отменять неподходящие или ошибочные действия с помощью команды git checkout. Сложности: Ошибся в написании слова "chekout", гит соответственно команду не выполнил, но вывел подсказку: возможно вы хотели написать checkout |
|||||
4 | git commit reset diff |
3 теста |
|||
На этом уроке мы поместим подготовленные файлы в хранилище (Repository). Потом достанем этот же файл из хранилища. Узнаем новые команды git: commit, reset и diff
Отчёт отправил: 17535. Алексей Выполнено за 4 час. 25 мин. [Показать отчёт] Научился: Коммитить в репозиторий git commit -m Welcome, проверять разницу между рабочей папкой и хранилищем(сценой) с отслеживаемыми файлами git diff, а так же между рабочей папкой и репозиторием git diff HEAD. Смотреть историю коммитов в репозитории git log. Отменять изменения в хранилище копией из репозитория git reset HEAD zoo.java Сложности: На вопрос гита "что ты такое?" между 3 и 4м пунктами вставляем: git config --global user.email вашапочта git config --global user.name вашеимя Git config --list --show-origin проверяем что конфиг изменился и тогда уже коммитим |
|||||
5 | git commit zebra |
2 теста |
|||
На этом уроке мы продолжим изучать систему контроля за версиями git. Добавим новый файл в папку. Начнем его отслеживать средствами git.
Отчёт отправил: 17535. Алексей Выполнено за 1 час. 25 мин. [Показать отчёт] Научился: Коммитить только измененные файлы git commit -a. Новые файлы при этом индексироваться не будут! Удаление же файлов будет учтено. |
|||||
6 | git ignore |
3 теста |
|||
На этом уроке мы откомпилируем и запустим наш зоопарк. Научимся избавляться с ненужными в репозитории файлами.
Отчёт отправил: 17535. Алексей Выполнено за 38 мин. [Показать отчёт] Научился: Удалять ненужные файлы с помощью git rm --cached Перенаправлять вывод в файл echo '*.class' > .gitignore Добавлять в отслеживание вообще все что находим в директории git add . Кроме того что запрещает нам .gitignore Создавать .bat файлы для виндовс, типа такого: copy *.java ..\stage copy *.bat ..\stage Сложности: Одно время были сложности с тем что репозиторий для игры на юнити впитывал в себя весь хлам и разрастался так что превышал выделенные лимиты на место, это была проблема. Опытным путем было выяснено что битбакет имеет ограничение 2Гб. Примеры гитигнора из интернета были все похожи и все пропускали мусор все равно. Тогда было принято волевое решение примерно как в уроке, только наоборот, не принимать ничего кроме: # Ignore Everything /* # Except tor these: !/.gitignore !/Assets !/Projectsettings *.meta |
|||||
7 | git push clone |
2 теста |
|||
На этом уроке мы “отправим наш Зоопарк в Мадагаскар”, отправим на сервер, то что у нас получилось. Поработаем с GitHub.
Отчёт отправил: 17535. Алексей Выполнено за 59 мин. [Показать отчёт] Научился: Создавать алиас для загрузки на сервер git remote add origin https://github.com/имярепозитория/Zoo.git Загружать репозиторий на сервер git push -u origin master Клонировать репозиторий с сервера на свой компьютер git clone https://github.com/имярепозитория/Zoo.git Не создавать папку, а клонировать в текущую, откуда запущен баш git clone https://github.com/имярепозитория/Zoo.git . Сложности: После того как склонировал репозиторий в Zoo-clone\Zoo команда git clone https://github.com/имярепозитория/Zoo.git . написала что папка не пустая и яне буду ничего клонировать fatal: destination path '.' already exists and is not an empty directory. Пришлось подпапку Zoo предварительно грохнуть, тогда оно клонировало уже в директорию что надо. Так же при загрузке репозитория на сервер оно автоматически поменяло заглавные буквы в названиях файлов на строчные и попытка компиляции выдала ошибку (на скрине), пришлось после клонирования заново менять буквы на заглавные. |
|||||
8 | hippo git fetch pull |
3 теста |
|||
На этом уроке мы продолжим разработку нашего зоопарка. Добавим бегемотиху Глорию. Несколько ссылок по работе с гитом: Про Git на пальцах и про ветки: https://habr.com/post/68341/ Про ежедневную работу с Git: https://habr.com/post/174467/ И официальная документация: https://git-scm.com/book/ru/v1/Ветвление-в-Git-Основы-ветвления-и-слияния Отчёт отправил: 17535. Алексей Выполнено за 1 час. 13 мин. [Показать отчёт] Научился: Добавлять изменения с другого компа git push Получать изменения с сервера в локальный репозиторий git fetch Смотреть, какие ветки у нас есть в данный момент git branch Если в репозитории есть другие ветки, их можно увидеть, добавив ключ -a (активная ветка обозначена звёздочкой): $ git branch -a Переключаться между ветками git checkout master, на что нам резонно отвечают что вы так там: Already on 'master' Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded. (use "git pull" to update your local branch) Ветка на вашем компе отстает и вы можете догнать ее так то. С помощью git pull копируем изменения из репозитория в хранилище и рабочую папку Сложности: Несколько советов по работе с гитом с хабрахабра: https://habr.com/post/68341/ - чувак очень неприятно произносит слово репозиторий, но в остальном читать можно, например про ветки https://habr.com/post/174467/ - тут адекватный чел https://git-scm.com/book/ru/v1/Ветвление-в-Git-Основы-ветвления-и-слияния - и официальная документация |
|||||
9 | git branch lion |
2 теста |
|||
На этом уроке мы продолжим знакомиться с системой контроля версий git. Познакомимся с ветками. Почитайте статью Vincent Driessen, автора git flow - удачной модели ветвления она из коробки уже поддерживается в SourceTree Оригинал статьи: https://nvie.com/posts/a-successful-git-branching-model/ Художественный перевод: https://habr.com/post/106912/ О применении в разработке: https://pelevin.pro/2016/04/18/gitflow/ О дальнейшем развитии этой идеи: https://habr.com/company/softmart/blog/316686/ Отчёт отправил: 17535. Алексей Выполнено за 1 час. 16 мин. [Показать отчёт] Научился: Создавать новые ветки git branch lion Смотреть какие ветки есть git branch Переключаться между ветками git checkout lion Выводить сокращенный лог коммитов git log --graph --all --decorate --oneline чтоб больше поместилось на экране Сложности: Есть такой чувак Vincent Driessen и это не грязное ругательство, это автор git flow - удачной модели ветвления она из коробки уже поддерживается в SourceTree тут оригинал статьи https://nvie.com/posts/a-successful-git-branching-model/ тут художественный перевод https://habr.com/post/106912/ тут про применение в разработке https://pelevin.pro/2016/04/18/gitflow/ тут дальнейшее развитие этой идеи https://habr.com/company/softmart/blog/316686/ |
|||||
10 | git branch giraffe |
|
|||
На этом уроке мы создадим ветку жирафа. Добавим его в наш зоопарк. И сделаем это двумя способами.
Отчёт отправил: 17535. Алексей Выполнено за 3 час. 35 мин. [Показать отчёт] Научился: Добавлять жирафа git branch giraffe git checkout giraffe git log --graph --all --oneline можно убрать параметр декорейте |
|||||
11 | git merge giraffe lion |
2 теста |
|||
На этом уроке мы займемся объединением веток. Изучим для этого команду “git merge”. Сделаем это с помощью git.
Отчёт отправил: 17535. Алексей Выполнено за 1 час. 3 мин. [Показать отчёт] Научился: Объединять ветки git merge master. Это проверка, кодовый ответ Already up to date. git checkout master git merge lion git log --graph --all --oneline git checkout giraffe git merge master, теперь я знаю как выглядит неправильный ответ на кодовую фразу: Auto-merging zoo.java CONFLICT (content): Merge conflict in zoo.java Automatic merge failed; fix conflicts and then commit the result. Указанный файл правим вручную (ну кстати странное неавтоматическое решение, которое конечно можно понять, это у нас остаются оба варианта, в других случаях может придется выбирать), смотрим что получилось git status Трекаем проблемный файл git add . Приводим жирафа в соответствие с мастером git commit -m Merge, в конце строки пропадает добавленное слово мерж и остается только название ветки жирф, где мы есть. git checkout master git merge giraffe - наконец все в одной куче Получилось долго и длинно, но вот такой он мерж. Сложности: Отличная шутка на счет того что выйти отсюда можно только ресетом, сразу вспомнил миллион поисковых запросов "как выйти из vim'a?" Совсем в блокноте не используя IDE как советовал ЕВ все же набирать было лень, поэтому я использовал промежуточный вариант Visual Studio Code так вот оно предложило мне решить конфликт одной кнопкой на выбор(на 2м скрине), это круто. |
|||||
12 | win merge |
1 тест |
|||
На этом уроке мы сделаем изменения из предыдущего урока средствами windows.
Отчёт отправил: 17535. Алексей Выполнено за 23 мин. [Показать отчёт] Научился: Выглядело проще в win, по крайней мере для небольшого количества файлов. А сделать объединение наверное будет быстрее в git. Сложности: Сложным из всего этого является приведение к общему знаменателю. |
|||||
13 | pingwin |
2 теста |
|||
На этом уроке мы отправим наши изменения на GitHub и на FTP. Добавим новый класс в «неактуальную» по времени программу.
Отчёт отправил: 17535. Алексей Выполнено за 1 час. 32 мин. [Показать отчёт] Научился: Добавлять пингвинов |
|||||
14 | remote merge |
1 тест |
|||
На этом уроке мы попробуем решить проблему загрузки на сервер от созданного «Пингвина».
Отчёт отправил: 17535. Алексей Выполнено за 1 час. 4 мин. [Показать отчёт] Научился: git merge --abort отменить попытку объединения git push origin pingwin закинуть свою ветку на удаленный сервер С основного компа git pull git log --graph --all --oneline git branch git branch -a git checkout pingwin atech@DESKTOP-N2MO437 MINGW64 /e/.VIDEO/[ITVDN] Volosatov/3_Git/Zoo-git (pingwin ) $ dir посмотреть что в папке, а вообще в текущей ветке git merge master git status git add . git commit -m PingWinMerge если забыть написать описание к комиту попадем в окно с ошибкой выйти из него :Х git checkout master git merge pingwin git log --graph --all --oneline git push Затем синхронизируем удаленный комп который все это затеял git checkout master git pull И проверяем что работает javac Zoo.java java Zoo Сложности: Был момент когда я быстренько решил конфликт, закинул пингвина и зуу на отслеживание, уже написал гит коммит пингвин, и не нажал на энтер, дай думаю посмотрю а в видо что. А в видео фраза, но мы будем делать не так) тогда я все отменил и выдохнул. Конечно можно было и после комита все вернуть, но зачем усложнять себе жизнь. |
|||||
15 | win final |
1 тест |
|||
На этом уроке мы повторим приключение «Пингвина» используя систему windows и ftp. Бонус. Пройдите Git-практикум на сайте: https://katacoda.com/courses/git Крайне рекомендую, очень хороший ресурс! Отчёт отправил: 17535. Алексей Выполнено за 1 час. 27 мин. [Показать отчёт] Научился: Делать мерж закинутой на сервер ветки средствами виндовс Сложности: ТС 9.20 уже есть Наверное перед английским вариантом не помешает закрепить все на русском https://githowto.com/ru |
|||||
16 | ФИНАЛЬНЫЙ КУРС |
без видео |
|||
Напишите отзыв об этом курсе.
Отчёт отправил: 17535. Алексей Выполнено за 22 мин. [Показать отчёт] Научился: Даже не знаю нужно ли писать отзывы о ваших курсах, пока ни одного не интересного или бесполезного я не встретил. Теперь о GIT. Это довольно непонятная и запутанная штука, но полезная. Хранит всю вашу историю гениальности где-то где можно при необходимости посмотреть, а как я решал эту проблему в прошлом. Или если на распутье пошел не туда, вернуться и пойти в другую сторону. О курсе. Отличный курс. Идея показать на пальцах(папках), а как же оно происходит на самом деле, под капотом так сказать - хороша. Когда понял что и как делается уже можно было и не смотреть как это происходит в винде, так как в баше все быстро и понятно стало. Из ценного лично для меня в курсе - ушел страх перед merge, даже не столько перед самим объединением веток, а как его следствием перед разрешением конфликтов. Теперь можно попробовать теорию почитать. Спасибо за науку! Сложности: 1й урок. Были сложности с компилятором явы. Нужно было прописать пути и переменные среды. И еще 1 интерактивный курс на английском на картинке. |
|||||
Итого: 16 видеоуроков |
2 час. 42 мин. 27 тестов |
18 чел. | |||
Финалисты: Иван Воронин, Алексей, Дмитрий Че, Павел, Evgenii Kudriavtcev, Павел Демьянов, ser2018, Dmitry Sinitsin, Chip, vip, New programist, Яков, Anatoli, Булат, Tim, Александр, Tom, Алексей . |