Comments 26
Студентов можно/нужно учить работе с Git?
Скриншоты с базовыми функционалом?
Какова практическая польза статьи, если в ней нет ни практик, ни кода, ни how it works?
Кому как. Кому-то будет просто полезно узнать, какой один из вариантов применения в обучении существует. Кому-то — что вообще в обучении можно применять 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 и поймет их.
Но я понимаю выбор именно консольных команд для обучения, это как сборка проекта запуском компилятора и линковщика вручную. С одной стороны, позволяет понять, что кроется под кнопочкой build в IDE, плюс разминка для мозгов, с другой стороны — снятие проблемы со студентами, которые делают не то, что их просят. Сам выдавал инструкцию разрабочтикам в виде набора команд, например, когда надо было всю команду переключить на новую master-ветку после массивного rebase-а, который приходилось делать после того, как один чудак файл с паролем в репозиторий выложил.
Чем же tortoise плох для начинающих?
Просто я наблюдал за целым отделом программистов, который переводился сперва с 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" -_-
Относительно небольшое количество студентов все же делает осмысленные коммиты и пользуется при этом каким-то клиентом. Но можно ли (и стоит ли) заставлять всех? Вот не знаю даже.
Гитом как таковым нужно уметь пользоваться 100%, на этом сейчас почти все пайплайны завязаны, соответственно разработчику с этим придется взаимодействовать.
А вот нужно ли учиться делать это именно через гуи — на вкус и цвет, cli тоже неплохой, но слишком многословный.
Гитом как таковым нужно уметь пользоваться 100%, на этом сейчас почти все пайплайны завязаны, соответственно разработчику с этим придется взаимодействовать.
Это-то понятно. Но я все-таки не хочу слишком сильно усложнять студентам (и себе) жизнь. Про гит и клиенты к нему я рассказываю, кто хочет (читай — у кого глаза горят) — поставит и будет пользоваться, а кому лишь бы сдать и забыть, тем и через браузер норм, у них и без этого с предметом проблем достаточно -_-
Но это чисто мое мнение, конечно.
Зависит от мотивации и целей, конечно. Если это лабы на каком-нибудь непрофильном факультете — тогда конечно нет смысла людям давать знания, которые им не нужны.
Не знаю, как у вас, но по моим наблюдениям около 40% группы идут в ВУЗ не потому, что хотят получить эту специальность, а потому что родители заставили, от армии косят или "все пошли — и я пошел". С чего бы им изначально быть мотивированными?
Часть из них можно замотивировать уже в процессе обучения, при некотором напряжении (и везении), конечно.
Так что тут сложно всё.
В идеале — конечно. Но моя реальность уже такова, что эти люди пришли, и будут приходить каждый год — и с ними надо что-то делать. Отчислить при этом кого-то практически нереально (такова политика ВУЗа).
Я пока что пришел к мысли, что нужно стараться вовлечь в процесс как можно больше людей, но на тех, кто никак не вовлекается — просто не тратить слишком много сил и нервов.
Плюс нельзя забывать, что даже те, кто поступил осознанно, может быть не очень мотивирован или нуждаться в некотором давлении обстоятельств, чтобы шевелиться.
Использование GitHub в обучении студентов