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

Отчёт отправил: 20082. Павел Выполнено за 21 мин. [Показать отчёт]
Научился: Заинтересовался. 
2 git init 00:05:18
1 тест
44 чел. ★ 5 Done
  На этом уроке мы создадим «Зоопарк» папок. Выполним первые команды для git: “git init” и “git status”. Узнаем, чем отличаются папки Workdir, Stage area, Repository.
Посмотрим, что находится внутри "папки .git".
Отчёт отправил: 20082. Павел Выполнено за 1 час. 40 мин. [Показать отчёт]
Научился: есть три места которыми гит работает: где работаю, подготовка к архивированию и само хранилище. эти три места(а в целом гит-репозиторий) нужно создать командой git init, на компьютере, в том месте(папке) где мы хотим чтобы хранился наш проект. Git - это система контроля версий, а GitHub - один из множества веб-сервисов, использующих эту систему. 
3 git add checkout 00:08:11
3 теста
43 чел. ★ 4.9 Done
  На этом уроке мы продолжим знакомиться с новыми командами в git: “git add” и “git checkout”. Проделаем это же в ручном режиме. Визуально увидим, как это все работает.
Отчёт отправил: 20082. Павел Выполнено за 52 мин. [Показать отчёт]
Научился: Созданные файлы помещаются в рабочую директорию. Гит за ними не смотрит: Untracked files(имеют красный цвет).  Гит просит его добавить на сцену, чтобы можно было за ним следить. (Перед тем как архивировать файл, нужно сделать их копии). Если мы меняем файл в рабочей папке(РП)., он не соответствует файлу расположенному на сцене( готовому к архивированию). гит об этом говорит и просит, до архивирования, либо согласиться с изменениями, и обновить файл на сцене, измененным файлом в РП, либо откатить изменения, обновить файл в рабочей папке, старым файлом из сцены. 
4 git commit reset diff 00:12:21
3 теста
38 чел. ★ 5 Done
  На этом уроке мы поместим подготовленные файлы в хранилище (Repository). Потом достанем этот же файл из хранилища. Узнаем новые команды git: commit, reset и diff
Отчёт отправил: 20082. Павел Выполнено за 2 час. 1 мин. [Показать отчёт]
Научился: git Status - есть ли изменения, подтверждены ли они. git dif - убидится что содержимое папок одинаковое. git dif проверяет соответствие фалов на сцене и РП git dif Hard проверяет соответствие фалов в хранилище и РП Отобразятся все различия в файлах. git log - все кoмиты, кто и когда заархивировал свои файлы комит -архвируется сцена(в которой хранятся файлы, подготовленные для этого), и помещается в хранилище, в какую либо ветку(папку), например master. При необходимости всегда сможем вернуться к этому архиву. Пример необходимости: В файле рабочей папки написали ошибку. Скопировали этот файл на сцену(подготовку к архивированию).  команда git dif не находит различий между рп и сценой. git checkout не сработает(нет смысла со сцены возвращать в РП тоже самое). Но у нас есть хранилище, и в нем находится нужная нам версия файла. git dif Hard находит эти различия. выполняем git reset head - оброщаемся в архив, берем из него старую версию файлов и обновляем сцену. git dif Hard и git dif говорит что рп не соответствует ни хранилище, ни сцена. Но  рп  мы можем обновить со сцены командой git cheackout и работать со старой версией. 
5 git commit zebra 00:06:58
2 теста
38 чел. ★ 5 Done
  На этом уроке мы продолжим изучать систему контроля за версиями git. Добавим новый файл в папку. Начнем его отслеживать средствами git.
Отчёт отправил: 20082. Павел Выполнено за 1 час. 34 мин. [Показать отчёт]
Научился: git -a -m comit :  параметр -a может за нас добавлять модифицированные файлы на сцену, во время комита. Но только модифицированные файлы, новые не может, их надо add самостоятельно.  
6 git ignore 00:11:39
3 теста
36 чел. ★ 5 Done
  На этом уроке мы откомпилируем и запустим наш зоопарк. Научимся избавляться с ненужными в репозитории файлами.
Отчёт отправил: 20082. Павел Выполнено за 4 час. 18 мин. [Показать отчёт]
Научился: git checkout производит изменения рп со сцены. 1. если в сцене есть файл а в рп нет, произойдет добавление файла в рп. 2. если в цене нет файла а в рп есть, то из рп файл удалиться.(например сделали ресет какой либо версии из архива) 3. если в сцене есть изменения файлов, а в рп, у этих файлов изменения нет, произойдет обновление файла в рп. Если мы случайно добавили файлы на сцену, мы можем их от туда удалить 1 способ: при помощи команды cached - удаляет файл на сцене. git rm --cached Zebra.class 2 способ: git add  в обратную сторону изменения сцены с рп. 1. если в сцене есть фаил а в рп нет, файл в сцене удалится. 2. если в сцене нет файла а в рп есть, файл в сцену добавиться. 3. тагже с модификацией. можно убрать модификацию в сцене(если есть изменения в сцене, а в рп их нет) и добавить её туда. .gitignore - текстовый документ в корневой папке, в котором записываются игнорируемые типы, при копировнии файлов на сцену из рп. .gitignore по аналогии похоже на батник который копирует на сцену только джава файлы copy *.java ..\stage 
7 git push clone 00:13:28
2 теста
32 чел. ★ 5 Done
  На этом уроке мы “отправим наш Зоопарк в Мадагаскар”, отправим на сервер, то что у нас получилось. Поработаем с GitHub.
Отчёт отправил: 20082. Павел Выполнено за 2 час. 30 мин. [Показать отчёт]
Научился: Отправить на сервер и получить обратно наш проект Git Hub (сервер, хранилище репозиториев) сервис для работы с гитом, хранит наши проекты на удаленном сервере, в который, в любой момент, можно их загрузить(просмотреть при помощи встроенного интерфейса) git remote add origin https:////Repository name.git remote(команда обращается к удаленному серверу) origin(как называется наш удаленный сервер, принято origin) git remote(удаленный) https:////Repository name.git - где хранится, что будет, какой адрес в результате выполнения команды система запоминает метку origin. git remote rm origin - удаляет метку, если нужна другая git push -u origin master - отправляет на сервер ветку master с архивами. git clone http.../.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-Основы-ветвления-и-слияния

Отчёт отправил: 20082. Павел Выполнено за 2 час. 4 мин. [Показать отчёт]
Научился: git fetch-загружает файлы с сервера, но только в репозиторий, при этом создает свою ветку. git branch -a - отображает все ветки. remotes/origin/master - загружается проект с сервера на эту ветку, при помощи команды git fetch. git checkout remotes/origin/master - перейти на эту ветку, команда dir покажет что там есть все загруженные, командой git fetch, файлы. git checkout master - возвращаемся на главную ветку(предпологаю что это способ перемещения по веткам). git pull * 
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/
Отчёт отправил: 20082. Павел Выполнено за 3 час. 11 мин. [Показать отчёт]
Научился: git branch lion - создает ветку лев(также создает новую сцену, когда мы переходим на новую ветку - git checkout lion, мы переходим на новую сцену и берем из неё данные в свою рабочую область) $ git log --graph --all --decorate --oneline --отоброзит красиво комиты. при содании ветки, нужно обращать внимание на какой ветке мы находимся в этот момент, так как мы наследуем(копируем) данные из неё. Например если мы находимя на ветке Lion и создаем ветку giraffe, то мы получаем данные из Liona, что для жирафа выглядет не очень. Должны сначало сделать git checkout master, а потом уже создавать ветку. git branch -d giraffe - удалит ветку. при смене веток: git checkout master, git checkout Lion можно наблюдать как изменяется рабочая область(меняется сцена, данные из неё вставляются в рабочую область, лишние удаляются) 
10 git branch giraffe 00:08:54
24 чел. ★ 5 Done
  На этом уроке мы создадим ветку жирафа. Добавим его в наш зоопарк. И сделаем это двумя способами.
Отчёт отправил: 20082. Павел Выполнено за 34 мин. [Показать отчёт]
Научился: Две разные ветки, как будто два разных проекта, переключаться между ними очень легко. Интересные статья, из прошлого урока, о том как нужно создавать ветки: https://habr.com/post/106912/ 
11 git merge giraffe lion 00:10:24
2 теста
24 чел. ★ 5 Done
  На этом уроке мы займемся объединением веток. Изучим для этого команду “git merge”. Сделаем это с помощью git.
Отчёт отправил: 20082. Павел Выполнено за 5 час. 41 мин. [Показать отчёт]
Научился: Схема объеденения дочерних веток в родительскую: прежде чем объеденять нужно свою, дочернию ветку проверить на соответствие с веткой прородителем. Для этого заходим в свою ветку git checkout lion,  и пытаемся слить её с прородителем git merge master (Взять из неё данные). Должно получиться так, что брать от туда нечего, нигкто туда не успел ни чего залить, ни каких хитрых изменений небыло. (только не совсем понимаю, что может произойти если не объединять сразу в master, можно ведь точно также исправить все конфликты). git merge Lion  с ветки мастер, без проблем зальет в мастер льва и его вызов. Но после этого, объединения мастера с другими ветками может вызывать конфликт. git merge Giraffe (почему то) сразу нельзя заливать в master, поэтому сначало проверяем на соответствие: с жирафа получаем данные с мастера git merge master, и видим что возникает конфлик. После устранение конфликтов и комита, гит объединяет две ветки в одну (Giraffe). Нужно теперь ветку мастер поднять выше, чтобы она имела наиболее актуальные данные. Проблем быть не должно так, как конфликты мы вроде бы все устронили. После объединения, master имеет то же самое что и Giraffe, можно комитить. 
Сложности: не совсем понимаю, что может произойти если не объединять сразу в master, можно ведь точно также исправить все конфликты 
12 win merge 00:09:56
1 тест
23 чел. ★ 5 Done
  На этом уроке мы сделаем изменения из предыдущего урока средствами windows.
Отчёт отправил: 20082. Павел Выполнено за 2 час. 9 мин. [Показать отчёт]
Научился: В принципе так и представлял, из прошлого урока.... в гите более автоматизировано все, а на вине, понятней)) сложно сказать что проще... в гите надо знать все команды, понимать где ты находишься, что можешь натворить и можно ли это исправить. В вине, же все прозрачно,  делаешь что хочешь, и как хочешь, любыми инструментами)) 
13 pingwin 00:13:25
2 теста
22 чел. ★ 5 Done
  На этом уроке мы отправим наши изменения на GitHub и на FTP. Добавим новый класс в «неактуальную» по времени программу.
Отчёт отправил: 20082. Павел Выполнено за 1 час. 21 мин. [Показать отчёт]
Научился: Делаю свои ошибки, экспериментирую. Понял, что пока не сделаю комит ветки, git status будет показывать все изменения любых веток, как будто я в этой ветке их делал. 
Сложности: почему то git checkout не удалял файл Penguin.java. git checkout  -- Penguin.java тоже. Пришлось удалить файл командой git clean -f -d - Удалить все локальные файлы и директории, которые не отслеживает Git, из вашей текущей копии. 
14 remote merge 00:12:29
1 тест
20 чел. ★ 5 Done
  На этом уроке мы попробуем решить проблему загрузки на сервер от созданного «Пингвина».
Отчёт отправил: 20082. Павел Выполнено за 1 час. 43 мин. [Показать отчёт]
Научился: Создали отдельную ветку, в ней пингвина. таким образом спокойно можем обновить ветку мастер с сервера. После это пытаемся слить пингвина и обновленную с сервера мастер, что само собой не получается. (Файл Zoo мастера имеет создание жирафа и льва, а в ветке пингвина, заместо этого, идет создание пингвина). Можно исправить конфликт - сказать что нам нужно и то и то, но мы решили откатить слияние, и добавить ветку пингвина на сервер, отдельно, чтобы с ней мог работать другой человек, пока без объединения с мастером: git merge --abort -отменяет слияние git push origin Penguin - отправляет ветку на сервер. На гитхабе убеждаемся что у нас теперь там две ветки которые мы можем переключать. В гитбаше, с другого компа(там где нет пингвина) переходим на мастер и делаем git pull - загружает с сервера все что есть, в том числе и все ветки (в отличии от git push который загружает только указанную ветку), но другие ветки вроде(кроме мастера) не обновляет. Теперь на другом компе у нас есть ветка пингвин, разработанная вообще другим пользователем. Переходим на неё, проверяем на соответствие с мастером(получаем данные из мастера merge), устраняем конфликты, и пушим. На клоне(где создавался пингвин) переходим на ветку мастер(git pull можно только на неё делать, чтоб не изменять и не конфликтовать с другими ветками(собственно для этого они и создавались) и вроде бы как даже мы не сможем в них запулиться) и загружаем, репозиторий с сервера, уже с исправленными данными. В клоне, ветка пингвин имеет устаревшие данные (наш мастер уже имеет пингвина, и помимо этого еще и льва и жирафа) поэтому её можно удалить, ну а можно Обновить слив с мастер(git merge master) 
15 win final 00:11:16
1 тест
19 чел. ★ 5 Done
  На этом уроке мы повторим приключение «Пингвина» используя систему windows и ftp.
Бонус. Пройдите Git-практикум на сайте: https://katacoda.com/courses/git
Крайне рекомендую, очень хороший ресурс!
Отчёт отправил: 20082. Павел Выполнено за 2 час. 32 мин. [Показать отчёт]
Научился: Много хороших советов, повторил то что делал 
16 ФИНАЛЬНЫЙ КУРС без видео
18 чел. ★ 5 Done
  Напишите отзыв об этом курсе.
Отчёт отправил: 20082. Павел Выполнено за 33 мин. [Показать отчёт]
Научился: Очень понравился курс, много позитивных мыслей, даже не страшно теперь, как говорит сам автор, лезть в теорию и что то изучать самому). Очень понравился подход "под капотом", по началу помогло понять, что мы вообще делаем, зачем это нужно, в конце же, помогло понять ценность гита, что очень много работы автоматизировано и гит реально полезен. Схема, которую обязательно нужно отпринтовать, это вообще нужная вещь!! Я её еще на середине курса, на стенку повешал, команды с ней учатся очень быстро. Получается  запоминаю не совсем команды, а взаимодействия между 3 каталогами, то что мы можем и хотим с этими каталогами сделать. Было бы здорово увидеть раздел "под капотом" еще на каком нибудь из ваших курсов. Например, точно также как и гит раньше, без всякого понимания использую различные сборщики проектов, maven, ant--- для чего они нужны, как устроены, чем полезны, пока шишек не набью, точно также как с гитом, узнаю наврятли, а хотелось бы...  Также хотелось бы познакомится с необходимостью тестирования, Junit.  Может немного с вебом, какие нибудь фреймворки... В любом случае классный курс получился, обязательно постараюсь  находить время и на другие ваши уроки. С уважением, Павел!!. 
  Итого:   16 видеоуроков 2 час. 42 мин.
27 тестов
18 чел. ★ 4.99  
  Финалисты:   Иван Воронин,   Алексей,   Дмитрий Че,   Павел,   Evgenii Kudriavtcev,   Павел Демьянов,   ser2018,   Dmitry Sinitsin,   Chip,   vip,   New programist,   Яков,   Anatoli,   Булат,   Tim,   Александр,   Tom,   Алексей .

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





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

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

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

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


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



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