Pull to refresh

Comments 26

Студентов можно/нужно учить работе с Git?
Скриншоты с базовыми функционалом?


Какова практическая польза статьи, если в ней нет ни практик, ни кода, ни how it works?

Практическая польза?
Кому как. Кому-то будет просто полезно узнать, какой один из вариантов применения в обучении существует. Кому-то — что вообще в обучении можно применять GitHub. А кому-то — как инструкция к действию как внедрять использование GitHub в обучении программированию.

Спасибо большое за пример. Тоже занимаюсь обучением, но в корп.среде. И всегда топил за использование максимально приземлённых и простых вещей, вместо изобретения новых приложений для совместной работы (хотя так вышло что большую часть карьеры как раз и занимался разработкой таких приложений). Мне было полезно — увидел именно пример выстроенной системной работы, а не обучение гитхабу.

Да не за что.
Суть именно в том, чтобы использовать GitHub в процессе обучения, а не только научить работе с ним.

При обучении студентов собственно git тоже используем GitHub как платформу, куда можно пушить. Можно было бы второй локальный репозитарий или локальный GitLab, но зачем искусственная среда, если можно показать все на реальной и уже готовой. GUI больше не используем (был опыт с TortoiseGit из-за XP в классах): и мне, и студентам проще объясняться четкими текстовыми командами, а не "найдите иконку в виде зеленых стрелочек, поставьте галочку как-там-назвали-знакомый-ключ". GUI только для задач, где он полезен: посмотреть историю в gitk, разрешить конфликты в IDE.

TortoiseGit — плохое решение для начинающих. По моему, он популярен у тех, кто раньше его использовал на vcs основанных на дереве в фс — CVS, Subversion. Но у GIT первично дерево коммитов и под него есть гораздо более удачные gui-тулзы: GitExtensions, SourceTree. Понятное дело, для инструктирования он менее удобен, чем диктованиек команд, но, по моему, нормальный студент it-шник должен быть способен с базовыми вещами в их интерфейсах самостоятельно разобраться. Зато представление о том, что происходит в дереве коммитов, они дают довольно наглядное.

SourceTree на XP не запускался, а было нужно, иначе выбрал бы его вместо TortoiseGit. GitExtensions не пробовал, но дерево коммитов выглядит не лучше, чем у других, да хоть в gitk или git log --graph. Текстовые команды универсальны (были студенты с Mac и Ubuntu) и воспроизводимы (студент не может сделать в GUI одно, а словами описать другое). Зная команды git, студент скорее найдет рецепты на SO и поймет их.

От git log --graph его отличает нормальная интерактивность, gitk не видел. Кроме того, никто не скрывает работу с консолью: она доступна по клику мышкой. Для работы (а не обучения), отсутствие необходимости конвертировать картинку в голове в команды гита играет решающую роль: если какие-то этапы разработки можно выполнять с меньшей когнитивной нагрузкой, это следует так и делать. И мне кажется, что с gui-клиентами тоже имеет смысл знакомиться (пусть и факультативно). Что касается разных ОС, под Ubuntu есть mono, а вот с Mac-ами да, там почему-то какие-то проблемы имеются, в этом плане у SourceTree должно быть меньше проблем, по идее (сам я его бросил после того, как увидел GitExtensions, как мне показалось, у него интерфейс более удобный для основных задач связанных с git-ом, да и сложности с установкой в отсутствии инета в первых версиях SourceTree оттолкнули).

Но я понимаю выбор именно консольных команд для обучения, это как сборка проекта запуском компилятора и линковщика вручную. С одной стороны, позволяет понять, что кроется под кнопочкой build в IDE, плюс разминка для мозгов, с другой стороны — снятие проблемы со студентами, которые делают не то, что их просят. Сам выдавал инструкцию разрабочтикам в виде набора команд, например, когда надо было всю команду переключить на новую master-ветку после массивного rebase-а, который приходилось делать после того, как один чудак файл с паролем в репозиторий выложил.

Чем же tortoise плох для начинающих?

В последний раз, когда с ним сталкивался, это было хитросплетение из хитрого контекстного меню, которое, во-первых, не всегда на виду (что заметно ухудшает кривую обучения необходимостью постоянного открытия этого меню), а во-вторых, названия некоторых пунктов не очень удачно ложатся на терминологию GIT-а, т.е., изучая этот инструмент, будешь знать только его, а не GIT. Уже не говоря о привязке к проводнику Windows. У GIT первично дерево коммитов, а рабочая копия — это «слепок» конкретного коммита. Конечно, есть и пофайловая история и т.п., но это вспомогательные инструменты.
Просто я наблюдал за целым отделом программистов, который переводился сперва с TeamCoherence на Subversion, а затем на Git. У тех, кто привык к TortoiseSVN, а затем поставил TortoiseGIT, в итоге понимание Git-а было гораздо хуже, чем те, кто разбирался с командами Git-а и поставил другой инструмент, ориентированный в первую очередь на дерево коммитов. Были те, кто и с TortoiseGit разобрался, но в итоге им было сложнее с него уйти.

Я работаю в отделе, где почти все массово переходили с TortoiseSVN на TortoiseGit… и на мой взгляд корреляция с пониманием была, скорее с общим уровнем разработчика.
Или, можно сказать, кто хотел — разобрался. То, что три человека сидели на SourceTree, им вроде как не помогло.


Лично мне TortoiseGit нравится в основном понятным логом (не, можно конечно написать git log --branches=* --graph --oneline --decorate --all --pretty=format:'%C(yellow)%h %ad (%ar) [%an]%n%s%C(auto)%d%n', но до этого еще дойти нужно), который, как справедливо отмечают выше, интерактивный.


Ну и интеграция в проводник, по мне так тоже огромный плюс — если пользоваться проводником. Можно "окинуть взглядом" рабочую копию, не вводя никаких команд и не кликая, узнать, поменялось ли что-нибудь или нет.


Конечно, если пользоваться другой оболочкой, то постоянно в проводник переключаться только ради git'a не удобно.

Попробую применить в работе. Скоро стартуют новые группы как раз.

А в качестве клиента рекомендую GitKraken или SourceTree. Хотя студенты в праве выбирать и любые другие GUI-клиенты.

Лично я от студентов вообще не требую пользоваться каким-то клиентом git'a и в результате получаю 80% коммитов, сделанных через браузер, с названием "Added files via upload" -_-


Относительно небольшое количество студентов все же делает осмысленные коммиты и пользуется при этом каким-то клиентом. Но можно ли (и стоит ли) заставлять всех? Вот не знаю даже.

Я заставляю. Для того, чтобы после обучения они не делали коммиты через браузер с названием «Added files via upload». Чтобы потом не было стыдно за тех студентов, которых учил.

Гитом как таковым нужно уметь пользоваться 100%, на этом сейчас почти все пайплайны завязаны, соответственно разработчику с этим придется взаимодействовать.


А вот нужно ли учиться делать это именно через гуи — на вкус и цвет, cli тоже неплохой, но слишком многословный.

Гитом как таковым нужно уметь пользоваться 100%, на этом сейчас почти все пайплайны завязаны, соответственно разработчику с этим придется взаимодействовать.


Это-то понятно. Но я все-таки не хочу слишком сильно усложнять студентам (и себе) жизнь. Про гит и клиенты к нему я рассказываю, кто хочет (читай — у кого глаза горят) — поставит и будет пользоваться, а кому лишь бы сдать и забыть, тем и через браузер норм, у них и без этого с предметом проблем достаточно -_-


Но это чисто мое мнение, конечно.

Зависит от мотивации и целей, конечно. Если это лабы на каком-нибудь непрофильном факультете — тогда конечно нет смысла людям давать знания, которые им не нужны.

Я видел примеры отсутствия мотивации в профильных группах. И это вызывало сильное недоумение у меня.

Не знаю, как у вас, но по моим наблюдениям около 40% группы идут в ВУЗ не потому, что хотят получить эту специальность, а потому что родители заставили, от армии косят или "все пошли — и я пошел". С чего бы им изначально быть мотивированными?


Часть из них можно замотивировать уже в процессе обучения, при некотором напряжении (и везении), конечно.

Я считаю, что в ВУЗе делать нечего тем, кого туда впихнули, кто от армии косит и т.п. По моему мнению, образование нужно получать, когда понимаешь кем хочешь стать. Но это понимание не всегда приходит в том возрасте, когда пора поступать в ВУЗ.

Так что тут сложно всё.

В идеале — конечно. Но моя реальность уже такова, что эти люди пришли, и будут приходить каждый год — и с ними надо что-то делать. Отчислить при этом кого-то практически нереально (такова политика ВУЗа).


Я пока что пришел к мысли, что нужно стараться вовлечь в процесс как можно больше людей, но на тех, кто никак не вовлекается — просто не тратить слишком много сил и нервов.


Плюс нельзя забывать, что даже те, кто поступил осознанно, может быть не очень мотивирован или нуждаться в некотором давлении обстоятельств, чтобы шевелиться.

Тут согласен. Это одна из причин, почему я уволился из подобного учреждения.

А где вы сейчас преподаете, если не секрет?

Не секрет. Преподаю в Компьютерной академии ШАГ. А уволился из колледжа ВИВТ.
Sign up to leave a comment.

Articles