Изучение 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

Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 2 час. 28 мин. [Показать отчёт]
Научился: как и прежде, с чистого листа. 
2 git init 00:05:18
1 тест
44 чел. ★ 5 Done
  На этом уроке мы создадим «Зоопарк» папок. Выполним первые команды для git: “git init” и “git status”. Узнаем, чем отличаются папки Workdir, Stage area, Repository.
Посмотрим, что находится внутри "папки .git".
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 57 мин. [Показать отчёт]
Научился: git status - текущее положение дел. git init - инициализация пустого репозитория в текущей папке. on branch master - ваше текущее положение - на ветке мастер. СКВ - это уже не "свободно конвертируемая валюта" )), а Система Контроля Версий. ЦСКВ - централизованная СКВ - один сервер, он же репозиторий. Минус такого варианта: если накроется сервак - всем капут. РСКВ - распределённые СКВ. Каждый клиент тянет себе не только снимок файлов, но и весь репозиторий. Выход из строя сервака некритичен. Git — инструмент распределенной СКВ. GitHub — сервис (площадка) для проектов, использующих Git. 
3 git add checkout 00:08:11
3 теста
43 чел. ★ 4.9 Done
  На этом уроке мы продолжим знакомиться с новыми командами в git: “git add” и “git checkout”. Проделаем это же в ручном режиме. Визуально увидим, как это все работает.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 52 мин. [Показать отчёт]
Научился: git add Zoo.java - добавить файл на сцену для отслеживания изменений оного. Неподконтрольный прежде файл становится в новое состояние "под колпаком у Мюллера" и любое его изменение - трекится. Помните вороток трекинга у видеомагнитофонов? git checkout Zoo.java - восстановить файл взяв из Stage 
4 git commit reset diff 00:12:21
3 теста
38 чел. ★ 5 Done
  На этом уроке мы поместим подготовленные файлы в хранилище (Repository). Потом достанем этот же файл из хранилища. Узнаем новые команды git: commit, reset и diff
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 29 мин. [Показать отчёт]
Научился: git diff - если пусто, значит содержимое Workdir (1 этаж) равно содержимому Stage area (2 этаж) git commit -m Welcome - закинуть свой стейдж в Репозиторий под комментарием ( названием) Welcome При первом коммите ошибка гарантирована - не ввёл адрес электропочты и имя Подсказка есть и в видео, и в самом Git Bash, разобраться несложно. Второй git commit -m Welcome отработал на ура. Занятно, если набрать git при активном окне ютуба - кино складывается в миниокошко. Сначала не понял, что за фокус, затем снова не понял зачем эта фича. Узнал случайно, как применять, пока не придумал. ============== Если багу добавили в Workdir - откати командой ЧЕКАУТ А вот если ты багу пропустил уже на второй этаж(ошибочно дав добро на git add Zoo.java), в STAGE, то спасаться будешь из репозитория. git diff - сравнение ПЕРВОГО(Workdir) И ВТОРОГО (STAGE area) этажа git diff HEAD - сравнение ПЕРВОГО(Workdir) и ТРЕТЬЕГО(REPOSITORY) этажа git reset HEAD Zoo.java - взять исходник из архива (с ТРЕТЬЕГО этажа) и поместить содержимое на STAGE (2 этаж) 
5 git commit zebra 00:06:58
2 теста
38 чел. ★ 5 Done
  На этом уроке мы продолжим изучать систему контроля за версиями git. Добавим новый файл в папку. Начнем его отслеживать средствами git.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 36 мин. [Показать отчёт]
Научился: git add <название новосозданного файла> Новые файлы перед переносом в репозиторий требуется добавлять на сцену командой аДэДэ. Закоммитить (перенести в репозиторий с архивированием) без этого обязательного добавления не удастся. git commit -a -m Zebra -a  значит все модифицированные файлы в директории необходимо добавить. 
6 git ignore 00:11:39
3 теста
36 чел. ★ 5 Done
  На этом уроке мы откомпилируем и запустим наш зоопарк. Научимся избавляться с ненужными в репозитории файлами.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 51 мин. [Показать отчёт]
Научился: Поправил в панели управления Windows переменные среды Path на мой правильный путь до джаваЦэ так: C:\Windows\System32;C:\Program Files\Java\jdk1.8.0_172\bin и компиляция в ГитБаше взлетела. git rm --cached Zoo.class - удалить со Сцены (STAGE) echo *.class > .gitignore - все файлы с расширением class поместить в игнорируемый файл git add .gitignore - не забываем добавить файл игнорируемых в трекинг для отслеживания его актуального состояния copy *.java ..\stage в батник - и файлы будут копироваться лишь с расширением java  
7 git push clone 00:13:28
2 теста
32 чел. ★ 5 Done
  На этом уроке мы “отправим наш Зоопарк в Мадагаскар”, отправим на сервер, то что у нас получилось. Поработаем с GitHub.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 5 час. 7 мин. [Показать отчёт]
Научился: git remote add origin https://github.com/DmitrySinitsin/Zoo.git - добавить алиас origin к проекту DmitrySinitsin/Zoo.git git remote rm origin -  удалить ненужный алиас. git push -u orgin master - отправить действующий репозиторий (на локальном компе) на ГитХаб в своё хранилище origin - алиас(псевдоним) git clone https://github.com/DmitrySinitsin/Zoo.git - слить с ГитХаба с созданием подкаталога git clone https://github.com/DmitrySinitsin/Zoo.git . - без создания подкаталога, в корень отслеживаемой папки 
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-Основы-ветвления-и-слияния

Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 18 мин. [Показать отчёт]
Научился: git push не отправит файлы из Workdir. Отправка действует лишь из локального репозитория в удалённый на Сервере ГитХаба. Everything up-to-date == нечего передавать. Your branch is ahead of 'origin\master' by 1 commit == ваша ветка имеет на один коммит больше, чем ветка мастер в репозитории Сервера. git push - так кратко допустимо, если репозиторий не был здесь создан, а загружен с Сервера. origin == https://github.com/DmitrySinitsin/Zoo.git git fetch - забрать файлы с Сервера ГитХаба в локальный репозиторий remote. git branch -a == показать все ветки git pull - синхронизировать Workdir c remote репозиторием (локальным) то есть стянуть оттуда все изменения. 10:54 - "те изменения, которые делал удалённый Бегемот" )) 
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/
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 2 час. 58 мин. [Показать отчёт]
Научился: index == staging area commit == подписать код (лети, наш орёл!) push = послать широковещательное сообщение, любой способный - принимай и читай! git branch lion - создание новой ветки (бранчА) с именем Лайон (Лёва) git branch - показать все имеющиеся ветки git checkout lion - переключиться на ветку Лёва Иными словами, чекаутом слить содержимое Индекса(Stage Area) c именем lion в текущую WorkArea. Если ветки возвращённые командой git log перечислены через запятую, то они идентичны. git log --graph --all -decorate --online - краткая форма вывода лога git checkout lion && git checkout master - каталог меняется как по волшебству в режиме реального времени.  
10 git branch giraffe 00:08:54
24 чел. ★ 5 Done
  На этом уроке мы создадим ветку жирафа. Добавим его в наш зоопарк. И сделаем это двумя способами.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 48 мин. [Показать отчёт]
Научился: создали Giraffe.java git status-ом проверили появление нового файла. добавили конструктор Жирафа в Зоопарк, откомпилировали, со всеми поздоровались. git add  для Жирафа и git add для Зоопарка - утолкали их в Индекс (он же Сцена, он же Stage Area). В git status после аДэДэ новомодифицированнные файлы позеленели от счастья. Пока они были в каталоге не под присмотром Индекса, ходили они в красном. Гит коммит минус Эм Гираффе - заархивировали свою работу в локальный репозиторий для ответственного хранения. Гит лог минус минус грапх минус минус олл минус минус декорэйт минус минус онелине - сие начало рисовать псевдографикой разветвление веток, чего прежде не видел. copy-to-stage.bat == действие этого файла равноценно вызову команды git add 
11 git merge giraffe lion 00:10:24
2 теста
24 чел. ★ 5 Done
  На этом уроке мы займемся объединением веток. Изучим для этого команду “git merge”. Сделаем это с помощью git.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 47 мин. [Показать отчёт]
Научился: git merge master - объединить текущую ветку(на неё указывает стрелка HEAD -> ...) с веткой master Already up to date - объединять нечего, всё ноздря в ноздрю. Fast-forward - объединение простым добавлением недостающих строк в целевой ветке. Merge conflict in - указание файла, где есть конфликты для объединения веток. Если прозевал при коммите "минус эм" - вывалится окно текстового редактора vi (Первая версия была написана Биллом Джоем в 1976 году) с сообщением о Ваших деяниях и правильных путях выхода из сложившейся ситуации. Выход из vi - двоеточие + икс + Энтер 
Сложности: Узнал новое для себя. 1976 год прошлого двадцатого века... В то время наиболее распространённым был редактор ed. Поскольку он был довольно сложным для «простого смертного», George Coulouris разработал редактор em (editor for mortals — редактор для смертных). Билл Джой модифицировал редактор em и назвал его en, а позднее — он получил название ex, на котором и основан vi. Редактор писался для терминала ADM-3A, имевшего ограниченную клавиатуру: на ней не было клавиш-стрелок, а из модификаторов доступны только ⇧ Shift и Ctrl. Эти обстоятельства повлияли на выбор используемых в редакторе клавиш. 
12 win merge 00:09:56
1 тест
23 чел. ★ 5 Done
  На этом уроке мы сделаем изменения из предыдущего урока средствами windows.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 46 мин. [Показать отчёт]
Научился: cd .. - выйти на каталог выше. Не использовал, бил всегда сразу в корень )) Компилировать в Stage Area можно лишь в лабораторных условиях видеоурока. Синхронизация средствами ОС нагляднее, но ближе к ручной работе. Синхронизация средствами Git автоматизированнее. 
13 pingwin 00:13:25
2 теста
22 чел. ★ 5 Done
  На этом уроке мы отправим наши изменения на GitHub и на FTP. Добавим новый класс в «неактуальную» по времени программу.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 13 мин. [Показать отчёт]
Научился: git checkout -- Zoo.java -  вернуть изменения относительно неверно созданного файла. Создавая новые сущности не ленись создавать новые ветки (git branch new_pingwin) git checkout XXX - команда переключения на ХХХ ветку и команда синхронизации с Индексом этой же ветки, если уже на ней. 
Сложности: Осознать, что неделя пролетела. 
14 remote merge 00:12:29
1 тест
20 чел. ★ 5 Done
  На этом уроке мы попробуем решить проблему загрузки на сервер от созданного «Пингвина».
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 58 мин. [Показать отчёт]
Научился: git push из подветки вернёт ошибку о том, что текущая ветка (current branch) не является веткой для загрузки (upstream branch). git push --set-upstream origin pingwin решает эту проблему и позволяет пуш для текущей подветки с установкой этой подветки "веткой для загрузки (upstream branch)". Если в удалённом репозитории на ГитХабе есть изменения в коде, которых нет в локальном репозитории, то при попытке git push будет возвращена ошибка об этом с предложением сначала сделать pull и сначала забрать себе те новые строки кода для синхронизации работы с удалёнными коллегами, а затем уже пушить свои вирши на ГитХаб. git merge --abort - отменяет начатое неудачно слияние. git branch -a -покажет все ветки. Выход из неудачного слияния - правка конфликтного файла, адэдэ, гиткоммит минус мЭ с адекватным комментарием о коммите. 
15 win final 00:11:16
1 тест
19 чел. ★ 5 Done
  На этом уроке мы повторим приключение «Пингвина» используя систему windows и ftp.
Бонус. Пройдите Git-практикум на сайте: https://katacoda.com/courses/git
Крайне рекомендую, очень хороший ресурс!
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 34 мин. [Показать отчёт]
Научился: Чтобы хранить директорию (каталог) под контролем версий Вам надо создать репозиторий. С Гитом Вы инициализируете репозиторий в корневой папке одного проекта. Используйте для этого команду git init После инициализации репозитория создаётся скрытая подпапка .git для хранения метаданных о работе Системы Контроля Версий. ================== Working Directory содержит последние скачанные из репозитория версии вместе со всеми изменениями, которые ещё предстоит закоммитить (отправить архивом в репозиторий на Вашем локальном диске). В процессе работы над кодом Вашего проекта все изменения делаются именно в Working Directory. Вы можете просматривать какие именно файлы подвергались изменениям после крайнего коммита в репозиторий. Для этого применяйте команду git status Ответ на эту команду называется "статус рабочего дерева"(working tree status) Все файлы являются "неотслеживаемыми" Гитом, пока не задано обратное. ================== Чтобы сохранить (или закоммитить) файлы в репозиторий Гита, Вам сначала придётся добавить их в Staging Area. Есть три пространства: рабочая директория, сцена и собственно репозиторий. Пользователи перемещают, иначе "продвигают", изменения из рабочего каталога(Working Directory) в промежуточную область(Staging Area), прежде чем вносить их в репозиторий. Один из ключевых подходов в Git заключается в том, что коммиты являются целенаправленными, небольшими и частыми. Промежуточная область(Staging Area) помогает поддерживать этот рабочий процесс, позволяя продвигать только определенные файлы за раз вместо всех изменений в вашем рабочем каталоге. git add имя_файла_с_расширением - этой командой добавляем файл в промежуточную область(Staging Area). ================== git status покажет состояние и рабочего каталога(Working Directory), и промежуточную область(Staging Area) в любой момент. ================== Как только файл был добавлен в промежуточную область, его необходимо зафиксировать в хранилище. Команда git commit -m 'commit message' помещает файлы из промежуточной области(Staging Area) в репозиторий и записывает время\дату, автора и комментарий. При этой операции будут зафиксированы только изменения, добавленные в область подготовки(Staging Area), любые файлы в рабочем каталоге(Working Directory), которые не были подготовлены, не будут включены. ================== Иногда есть определенные файлы или каталоги, которые вы никогда не захотите отслеживать, например, локальная конфигурация разработки. Чтобы игнорировать эти файлы, вы создаете файл .gitignore в корне хранилища. Файл .gitignore позволяет вам определять символы подстановки для файлов, которые вы хотите игнорировать, например * .tmp будет игнорировать все файлы с расширением .tmp. Любые файлы, соответствующие определенному шаблону, не будут отображаться в выводе состояния git и будут игнорироваться при попытке выполнить команду git add. 
16 ФИНАЛЬНЫЙ КУРС без видео
18 чел. ★ 5 Done
  Напишите отзыв об этом курсе.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 35 мин. [Показать отчёт]
Научился: Я знаю карате, джиу-джитсу, кун-фу и ещё много разных страшных слов. Х) Здесь же история другая. Придя с просторов Интернета к Евгению на Видеошарп, через пол-года ежедневных занятий, ты начинаешь печатать глядя на монитор, а не бойко бацая по клавиатуре, чтоб все слышали, какой ты скорописец двумя пальчиками. Переспав с AJAX начинаешь ориентироваться в веб-программировании, поиграв в кубики и кружочки начинаешь понимать основы ООП. Много курсов есть, даже прикрутили к ним указатели об их уровне сложности, так что стенать о том, что как-то тут всё по-детски не получается. У меня, по крайней мере. Для тех, кому Демо-игры выглядят простоватыми, есть мега-курс "Шахматы on-line" https://www.videosharp.info/video/chess3 Уж там-то про лёгкость не особо слышно )) Курс Git Hub начал не особо представляя тему, практически с чистого листа. С Линуксом не знаком близко, контроль версий изредка делал "в лоб" архивируя каталог с проектом, при необходимости. К финалу курса проникся лёгкостью командной строки Гита в сравнении с аналогичным вариантом снятия контрольных точек с помощью файловых менеджеров операционной системы. Git это круто и удобно, если ваяешь что-то сложнее "Привет, мира". Проблем с пониманием не возникало, задание, выполняемое в командной строке, затем повторно демонстрировалось и с помощью файл-менеджера Total Commander либо окон Windows Explorer. Осталось дело за запоминанием и применением в работе. Курс отличный, прошел легко и с удовольствием. Автору спасибо за грамотно подобранный материал! 
Сложности: Появился интерес поставить на старый ноут Пингвина. Debian вроде бы Celeron-1,4GHz должен потянуть... 
  Итого:   16 видеоуроков 2 час. 42 мин.
27 тестов
18 чел. ★ 4.99  
  Финалисты:   Иван Воронин,   Алексей,   Дмитрий Че,   Павел,   Evgenii Kudriavtcev,   Павел Демьянов,   ser2018,   Dmitry Sinitsin,   Chip,   vip,   New programist,   Яков,   Anatoli,   Булат,   Tim,   Александр,   Tom,   Алексей .

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





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

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

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

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


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



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