Изучение c# на примерах

Формула программиста

основатель — Волосатов Евгений Витольдович
Open shop Git Hub

Git Hub

Знакомство с системой контроля версий исходного кода Git.

Git Hub

Список уроков | фото | видео

# Название видеоурока Видео / Тесты Решило Рейтинг Доступ
1 FREE Добро пожаловать в Зоопарк! 00:05:25
1 тест
55 чел. ★ 4.8 Done
  На этом уроке мы начинаем изучать систему контроля версий Git.
В процессе курса расскажу для чего ее использовать, как пользоваться и что происходит во время каждой из команд.
Каждое действие мы выполним дважды - один раз через Git, второй раз средствами операционной системы.
А сейчас установим, если еще не установлены необходимые программы для прохождения данного курса.
jdk и java: download
git: download

Отчёт отправил: 17535. Алексей Выполнено за 1 час. 2 мин. [Показать отчёт]
Научился: Устанавливать Git. Прописывать переменные среды java. 
Сложности: java показывала информацию по запросу, а javac нет. Я был удивлен так как все точно работало. Потом вспомнил что переставлял винду и видимо не прописал заново переменные среды. Заодно прописал и путь. Опять все не работало. Заработало после перезагрузки компьютера.  
2 git init 00:05:18
1 тест
44 чел. ★ 5 Done
  На этом уроке мы создадим «Зоопарк» папок. Выполним первые команды для git: “git init” и “git status”. Узнаем, чем отличаются папки Workdir, Stage area, Repository.
Посмотрим, что находится внутри "папки .git".
Отчёт отправил: 17535. Алексей Выполнено за 1 час. 10 мин. [Показать отчёт]
Научился: Создавать репозиторий командой git init и проверять его статус командой git status. 
Сложности: Git - распределённая система управления версиями. GitHub - веб-сервис для хостинга IT-проектов и их совместной разработки. 
3 git add checkout 00:08:11
3 теста
43 чел. ★ 4.9 Done
  На этом уроке мы продолжим знакомиться с новыми командами в git: “git add” и “git checkout”. Проделаем это же в ручном режиме. Визуально увидим, как это все работает.
Отчёт отправил: 17535. Алексей Выполнено за 27 мин. [Показать отчёт]
Научился: Отслеживать с помощью git add интересующие файлы. Отменять неподходящие или ошибочные действия с помощью команды git checkout. 
Сложности: Ошибся в написании слова "chekout", гит соответственно команду не выполнил, но вывел подсказку: возможно вы хотели написать checkout 
4 git commit reset diff 00:12:21
3 теста
38 чел. ★ 5 Done
  На этом уроке мы поместим подготовленные файлы в хранилище (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 00:06:58
2 теста
38 чел. ★ 5 Done
  На этом уроке мы продолжим изучать систему контроля за версиями git. Добавим новый файл в папку. Начнем его отслеживать средствами git.
Отчёт отправил: 17535. Алексей Выполнено за 1 час. 25 мин. [Показать отчёт]
Научился: Коммитить только измененные файлы git commit -a. Новые файлы при этом индексироваться не будут! Удаление же файлов будет учтено. 
6 git ignore 00:11:39
3 теста
36 чел. ★ 5 Done
  На этом уроке мы откомпилируем и запустим наш зоопарк. Научимся избавляться с ненужными в репозитории файлами.
Отчёт отправил: 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 00:13:28
2 теста
32 чел. ★ 5 Done
  На этом уроке мы “отправим наш Зоопарк в Мадагаскар”, отправим на сервер, то что у нас получилось. Поработаем с 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 00:15:13
3 теста
26 чел. ★ 5 Done
  На этом уроке мы продолжим разработку нашего зоопарка. Добавим бегемотиху Глорию.

Несколько ссылок по работе с гитом:
Про 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 00:17:41
2 теста
25 чел. ★ 5 Done
  На этом уроке мы продолжим знакомиться с системой контроля версий 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 00:08:54
24 чел. ★ 5 Done
  На этом уроке мы создадим ветку жирафа. Добавим его в наш зоопарк. И сделаем это двумя способами.
Отчёт отправил: 17535. Алексей Выполнено за 3 час. 35 мин. [Показать отчёт]
Научился: Добавлять жирафа git branch giraffe git checkout giraffe git log --graph --all --oneline можно убрать параметр декорейте 
11 git merge giraffe lion 00:10:24
2 теста
24 чел. ★ 5 Done
  На этом уроке мы займемся объединением веток. Изучим для этого команду “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 00:09:56
1 тест
23 чел. ★ 5 Done
  На этом уроке мы сделаем изменения из предыдущего урока средствами windows.
Отчёт отправил: 17535. Алексей Выполнено за 23 мин. [Показать отчёт]
Научился: Выглядело проще в win, по крайней мере для небольшого количества файлов. А сделать объединение наверное будет быстрее в git. 
Сложности: Сложным из всего этого является приведение к общему знаменателю. 
13 pingwin 00:13:25
2 теста
22 чел. ★ 5 Done
  На этом уроке мы отправим наши изменения на GitHub и на FTP. Добавим новый класс в «неактуальную» по времени программу.
Отчёт отправил: 17535. Алексей Выполнено за 1 час. 32 мин. [Показать отчёт]
Научился: Добавлять пингвинов 
14 remote merge 00:12:29
1 тест
20 чел. ★ 5 Done
  На этом уроке мы попробуем решить проблему загрузки на сервер от созданного «Пингвина».
Отчёт отправил: 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 00:11:16
1 тест
19 чел. ★ 5 Done
  На этом уроке мы повторим приключение «Пингвина» используя систему windows и ftp.
Бонус. Пройдите Git-практикум на сайте: https://katacoda.com/courses/git
Крайне рекомендую, очень хороший ресурс!
Отчёт отправил: 17535. Алексей Выполнено за 1 час. 27 мин. [Показать отчёт]
Научился: Делать мерж закинутой на сервер ветки средствами виндовс 
Сложности: ТС 9.20 уже есть Наверное перед английским вариантом не помешает закрепить все на русском https://githowto.com/ru 
16 ФИНАЛЬНЫЙ КУРС без видео
18 чел. ★ 5 Done
  Напишите отзыв об этом курсе.
Отчёт отправил: 17535. Алексей Выполнено за 22 мин. [Показать отчёт]
Научился: Даже не знаю нужно ли писать отзывы о ваших курсах, пока ни одного не интересного или бесполезного я не встретил. Теперь о GIT. Это довольно непонятная и запутанная штука, но полезная. Хранит всю вашу историю гениальности где-то где можно при необходимости посмотреть, а как я решал эту проблему в прошлом. Или если на распутье пошел не туда, вернуться и пойти в другую сторону. О курсе. Отличный курс. Идея показать на пальцах(папках), а как же оно происходит на самом деле, под капотом так сказать - хороша. Когда понял что и как делается уже можно было и не смотреть как это происходит в винде, так как в баше все быстро и понятно стало. Из ценного лично для меня в курсе - ушел страх перед merge, даже не столько перед самим объединением веток, а как его следствием перед разрешением конфликтов. Теперь можно попробовать теорию почитать. Спасибо за науку! 
Сложности: 1й урок. Были сложности с компилятором явы. Нужно было прописать пути и переменные среды. И еще 1 интерактивный курс на английском на картинке. 
  Итого:   16 видеоуроков 2 час. 42 мин.
27 тестов
18 чел. ★ 4.99  
  Финалисты:   Иван Воронин,   Алексей,   Дмитрий Че,   Павел,   Evgenii Kudriavtcev,   Павел Демьянов,   ser2018,   Dmitry Sinitsin,   Chip,   vip,   New programist,   Яков,   Anatoli,   Булат,   Tim,   Александр,   Tom,   Алексей .

Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: Очень полезный курс, большое спасибо! Благодаря ему понял основы git и взаимодействие между ветками. Схему сохранил для дальнейшей работы



Научился: Изучил с большим удовольствием. Скажу так жаль что мне этот курс на глаза не попался год назад, моя продуктивность выросла бы в разы. Всем обязательно к прохождению, даже до начала изучения любого языка программирования. Кст. в ВУЗЕ о Гите не заикаются)) Тут будет все и загрузка на сервер, решение конфликта при исправленных файлах и не только! Всем удачи в изучении!!!
Трудности: Так как параллельно показывают как это выглядело бы в винде все очень наглядно и не сложно!