Тёмный

🔀Полный гайд по использованию GIT в команде [Unity 3D] [Tutorial] 

Emerald Powder
Подписаться 77 тыс.
Просмотров 63 тыс.
50% 1

В одном из прошлых видео я попытался показать зачем нужен git, и показать как пользоваться основными его функциями, если вы работаете в одиночку. Но git также имеет множество фич позволяющих серьезно упростить работу в команде, синхронизацию кода и других файлов у всех участников разработки и слияние их изменений. И они отлично работают с Unity 3D. Так что сегодня я постараюсь рассказать про основные функции гита именно для работы в команде, показав процесс на примере работы двух человек над игрой в Unity 3D
Содержание:
Создание проекта и репозитория - 0:49
Загрузка и скачивание изменений - 3:43
Автоматическое решение конфликтов - 9:51
Ручное решение конфликтов - 17:10
Предыдущее видео: • 🔃 Git - нужен ли он, и...
Файл .gitignore: github.com/git...
Чья-то инструкция по настройке ключей: habr.com/ru/po...
Клиент, который я использую: tortoisegit.org/
На этом канале регулярно появляются новые видео, которые позволят тебе научиться создавать игры, или подарят новые идеи и вдохновение, если ты уже умеешь. Подписывайся!
Остались какие-то вопросы, пожелания, или идеи для других видео? Смело пиши в комментарии под видео

Опубликовано:

 

29 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 95   
@nikolaykulchicki
@nikolaykulchicki 4 года назад
Хотелось бы дополнить. - мердж сцен и префабов: в Юнити есть утилита yamlmerge (лежит в папке юнити) эта консольная утилита позволяет мержить сцены и префабы. ее плюс в том что она анализирует содержимое файла на предмет юнити сущностей и их взаимосвязей а не просто как файл.Приведу пример - разработчик в префабе на гейм обджект навесил скрипт(в своей ветке) а дизайнер переместил гейм обджект в низ по иерархии (в своей ветке). Если смерджить это обычным мерджером то результатом будет префаб в котором есть два го (со скиптом программера) и еще один (перемещенный в низ по иерархии) при этом внутренние UUID (идентификаторы юнити уникальные для кажого объекта) в этом случае будут одинаковые. Но если настроить yamlmerge то результатом будет один го(со скриптом + перемещенный по иерархии)
@1Moonsoon
@1Moonsoon 4 года назад
Спасибо за видео, оказалось нужным.
@qwerty6vov
@qwerty6vov 4 года назад
спасибо! в принципе все понятно, кроме ключей putty, если бы их показал как ставить, было бы вообще круто, так как по ссылку не очень понятно, но все равно спасибо
@StealerSlain
@StealerSlain 4 года назад
Ты забыл упомянуть, что надо прожимать Ctrl+S перед любыми действиями с гитом, т.к. юнити сама сцену не сохраняет. И может получиться так, что закоммитишь, забыв сохранить сцену. И правда ли лучше Perforce использовать? Многие рекомендуют его, потому что git больше предназначен для проектов, где подавляющая часть файлов это исходный код - без моделек, картинок и аудио.
@BorisAverin
@BorisAverin 2 года назад
Супер
@TheShmain
@TheShmain 4 года назад
полезно, молодец.
@xSPESHERx
@xSPESHERx Год назад
А что если все работают на одной сцене и коммит делают в разные ветки? Могут быть конфликты в проекте?
@EmeraldPowder
@EmeraldPowder Год назад
Да, со сценами как раз основная проблема, что гиту сложно их мержить. Тут можно побольше распихивать всё по префабам, чтобы реже пересекались файлы которые вы затрагиваете. Или можно попробовать тулзу для улучшенного мержа сцен, я сам ей особо не пользовался, гуглится по "unity yaml merge"
@MsDam1x
@MsDam1x 2 года назад
На стороне художника возникает такая ошибка "no supported authentication methods available server sent publickey" (на видео это место на 3:28) Что могло пойти не так ? :)
@orda7501
@orda7501 Год назад
получилось найти решение?
@Liqvidniy
@Liqvidniy 4 года назад
)
@maxvell-gamedeveloper
@maxvell-gamedeveloper 2 года назад
С приложением githab Dekstop куда проще
@CaThYo27
@CaThYo27 2 года назад
Здравствуйте! у меня не получаеться подключить. Сможете мне помочь?
@csgo-funmoment_official3059
@csgo-funmoment_official3059 4 года назад
Да ты половину вещей не показываешь, но которые очень важны и без них ничего не выйдет...Как тебя тогда можно слушать дальше? Но я лайк поставил т.к все же в твоем уроке есть инфа, которая пригодилась. Но ключ и gitignore было сделать не просто т.к я этого раньше не делал и не понимал что и куда сувать, вообщем все получилось!!!
@EmeraldPowder
@EmeraldPowder 4 года назад
В видео получилось уместить далеко не всё что умеет гит, чтобы прямо про всё рассказать нужна серия из десятка видео, да и я сам далеко не все фичи его знаю. Но мне кажется с инфой из этого видео вполне можно начать работать в команде из пары человек, а там уже походу разбираться, если возникает потребность в дополнительных фичах
@csgo-funmoment_official3059
@csgo-funmoment_official3059 4 года назад
@@EmeraldPowder Я вот работаю Git в команде по твоему рассказу и есть такая проблема что после слияния веток Unity Выдает ошибки и так получается что возможно работать только передавать архив с изменениями (и меня это напрягает), я попробовал не передавать Git Clone на другой ПК, а сделать клон на своем ПК и в другой папке (ну как ты в ролике) в итоге всё получилось и все изменения, слияния веток работали коректно...ПО сути с Git можно работать в команде и даже нужно, но он часто работает не корректно. (Наверно потому что Unity это не сильно простая программа) либо Git требует очень сильного контроля над изменениями версий.
@angelaletis160
@angelaletis160 4 года назад
больше запутал чем обьяснил, туда сюда, там не буду тут не буду, тортилу используешь, и много лишней не нужной инфы
@jacobmmm8260
@jacobmmm8260 4 года назад
Не знаю, но мне показалось очень информативно, несмотря на то что я используб гит не в Unity. Пасибо, Автору
@c4llv07e
@c4llv07e 4 года назад
Думаю ещё стоит сказать, что ветка master не должна быть основной для разработки - туда надо кидать только стабильные релизы. Ну а так же, что не надо в один commit помещать весь свой код, а надо разделять на решения/фичи.
@vladromanov814
@vladromanov814 6 месяцев назад
Здравствуйте, сейчас эксперементирую с гитхабом и всегда выбивает ошибки мерджа, сейчас дословно распишу что делаю, мб сможете помочь: 1. создал две идентичные папки с пустой сценой 2. создал 2 ветки(art, dev) и опубликовал их на удаленный репозиторий 3. перевел папки в соответствующии ветки 4. в 1 игре создал красный квадрат, во 2 синий 5. git add , git commit и git push изменения в соответствующии удаленные ветки 6. пытаюсь смерджить все с мастер веткой, 1 мердж идет нормально, 2 выдает конфликт мерджа как избежать собственно говоря этого конфликта? P.s если надо могу записать видио как я все это делаю, заранее спасибо
@neverworld8815
@neverworld8815 3 года назад
Если честно в Миллиарды раз легче просто через облако передавать проекты целиком... Потратив 2 часа времени я даже пушить не могу, при этом через команды в веб проекте всё нормально работает
@KadykovDenis
@KadykovDenis 3 года назад
Всегда одно и то же, появляется человек в команде который говорит что Гит это круто и он знает как работать, в итоге проект после некоторого действия (непонятно какого) просто не пушится. Чел активист Гита, нихуя не понимает почему и предлагает перезалить весь проект, тогда я ему говорю, ну и нахуя этот Гит, если можно пакетами кидаться? по крайней при распаковке пакета понятно что чем заменяется. У Юнити нормальный инструмент слияния, с ним можно правильно организовать работу, но нет блять, подавай Гит.
@neverworld8815
@neverworld8815 3 года назад
@@KadykovDenis ну хз, с гитом проблем не возникало серьезных я довольно быстро объяснял как с ним работать, а так для него есть поддержка и в самом юнити, и в Visual Studio, можно не выходя из кода коммитить и пушить
@neverworld8815
@neverworld8815 3 года назад
​@@KadykovDenis да и в серьезной команде есть нюансы касающиеся авторского права а без этого, просто так кидаться файлами не кайф, есть много лже разработчиков которые просто пиздят у других
@Veles017
@Veles017 10 месяцев назад
Прекрасное видео! Будет очень круто, если вы перезапишете свежую версию!
@Nayrd7
@Nayrd7 Год назад
Пытаюсь сам работать с подобным, нифига не получается.
@user-gm3gt7cl2y
@user-gm3gt7cl2y 5 лет назад
а как мержить конфликты изображений?
@Tezla0
@Tezla0 5 лет назад
Тоже задался этим вопрос
@EmeraldPowder
@EmeraldPowder 5 лет назад
@@Tezla0 Кстати отличный вопрос, я и сам никогда не сталкивался с таким в жизни. Но тут конечно не получится уже открыть студией и удалить ненужные строки, придётся использовать фичу разрешения конфликтов git клиента (которая у меня промелькнула на видео, где два окошка с кодом сверху и одно большое снизу). Проверил как это выглядит в tortoise git, там нажимаем правой кнопкой на файл, Tortoise git -> Edit Conflicts, и вот в таком окне можно выбрать одну из трёх версий: imgur.com/DC2G9hQ Ну, а если нужно как-то слить, то конечно придётся открывать графический редактор
@posmacnicolai
@posmacnicolai 4 года назад
У меня вопрос: В тортойсе есть такая функция которая так скажем синхронизирует файлы с гита с файлами на в проекте. Я ее использую для разработки и синхронизации с разных компов. Называется Pull. Так ее можно использовать для синхронизации вместо merge или есть разница?
@EmeraldPowder
@EmeraldPowder 4 года назад
Да, git pull это по сути fetch и сразу merge, по моему даже где-то в мануале по Гиту так написано
@posmacnicolai
@posmacnicolai 4 года назад
@@EmeraldPowder Спасибо за помощь, методом тыка понял как работает. Спасибо кстати и за tortoise git очень мне понравился, простой такой в управлении и под рукой всегда). Кстати, есть 1 вещь которая может случиться при синхронизации проектов , а именно может вылезть ошибка(при запуске проекта в юнити) : this project contains scripts and/or assemblies that use obsolete apis, и при нажатии кнопки Go ahead or No thanks что то ломается в проекте и вылазят в консоли ошибки которые не позволяют запустить игру и вооббще что то делать. Проблема в том что при чтении скриптов, юнити находит ошибки, или некоректно написаный код или (в моем случае) циклы беспонечные), хотя на другом комне вроде все работало!). Надо просто почистить скрипты от ошибок(или закоментировать их) и запустить в Assets -> Update APIs и все будет нормально работать.( и можно раскоментировать ошибочные строки).
@posmacnicolai
@posmacnicolai 4 года назад
ответ нашел тут: forum.unity.com/threads/api-update-required-pop-up-every-time-i-open-unity-editor.723656/
@АлександрСкрынник-к5ъ
Не совсем понял для чего нужна настройка ключей. Зачем это вообще? (P.S. Перешел по ссылке - объяснения которые там даны тоже особо не понятны((()
@EmeraldPowder
@EmeraldPowder 4 года назад
Ключ он по сути вместо логина с паролем. Это всё придумали чтобы кто угодно не мог указать в настройках репозитория у себя твой адрес на github и пушить туда свои изменения. Соответственно если этого не настроить то при попытке что-то залить будет выводиться ошибка доступа. Или даже при попытке скачать, если репозиторий не публичный
@АлександрСкрынник-к5ъ
@@EmeraldPowder ну там ведь можно настроить доступ репозиторию другим пользователям. Или там есть какие-то ограничения?
@jerma6659
@jerma6659 2 года назад
Как создать второй репозиторий? Я захожу в другую папку, которая хранит другой проект, и хочу создать там репозиторий, но такой кнопки нет
@Obelardos2
@Obelardos2 5 лет назад
Еще интересно как работать с большим проектом (ограничения гита) и как настроить все на локальный сервер)
@EmeraldPowder
@EmeraldPowder 5 лет назад
Ограничения там если только упрёшься в лимит github/bitbucket, там что-то около 2GB кажется. Некоторые любят git lfs для больших файлов, но я не использую его. У меня самый большой проект с длинной историей и кучей плагинов приходящих-уходящих весил около 20GB, что по моему не совсем критично, зато без lfs я мог без проблем достать всякие текстуры или посмотреть скрипты которые были в первой версии, для чего гит собственно и нужен
@PurpleDaemon_
@PurpleDaemon_ 5 лет назад
@@EmeraldPowder привет, нужна помощь щарящего человека . У меня вроде относительно небольшой проект(300 МБ) с парой скачанных 3д ассетов, но гит говорит, что там уже 1000+ файлов и не даёт такое коммитить. Гитигнор брал этот: github.com/github/gitignore/blob/master/Unity.gitignore , но тоже не помогло. Можешь что нибудь посоветовать?
@EmeraldPowder
@EmeraldPowder 5 лет назад
@@PurpleDaemon_ Я что-то не помню чтобы у самого гита было ограничение на количество файлов. Может быть это ограничение клиента? Попробуй напрямую консольным гитом сделать git add -A и git commit. Или разбить на несколько коммитов, в целом то на количество файлов в репозитории точно нет ограничений
@yatsuk_vitalii
@yatsuk_vitalii 4 года назад
@@EmeraldPowder слишком поздно наверное, но в гитхаб ограничения на коммит (нужно просто чаще делать коммит)
@nightkot4917
@nightkot4917 2 года назад
Дошел до внедрения ключей. pageant не запустить. Выдает "Already is running"
@erickmanciny1352
@erickmanciny1352 2 года назад
У кого возникли проблемы с ключами и гит не пропускает пуш: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-WQkC1A9UVmg.html
@leshalozhkin
@leshalozhkin 2 года назад
Нужно ли в файл gitignore дописывать путь начиная с C: и так далее?
@PawkaZZZ
@PawkaZZZ 3 года назад
А не легче использовать onedrive для разработки игры или я не понимаю все прелести гит'а?
@ЕвгенийВыходцев-у8б
у кого нибудь возникала ошибка в процессе то что он ругается то папка названа не мастер? и вторая в процессе push ошибка 1? просто пропадает желание работать с git но понимаю что надо!
@GameCraftStudio
@GameCraftStudio Год назад
Так даже проще будет
@ТимурГамаль
@ТимурГамаль 4 года назад
Как создать именно группу?
@ТимурГамаль
@ТимурГамаль 4 года назад
Привет это нужно чтобы создавать игру с кем то или нет я просто не понял
@EmeraldPowder
@EmeraldPowder 4 года назад
Да, чтобы работать над одним проектом в команде, особенно если в ней больше одного программиста
@ТимурГамаль
@ТимурГамаль 4 года назад
@@EmeraldPowder То есть если мы вместе зайдем в юнити с одного аккаунта и создадим проект.,то что делаю я будет видеть он?
@ТимурГамаль
@ТимурГамаль 4 года назад
@@EmeraldPowder Если мы через это приложение будем делать, с ним в одно и тоже время он будет видеть изменения?
@STALKER908
@STALKER908 3 года назад
@@ТимурГамаль нет, это так не работает. Он будет видить изменения только когда ...(то умное слово которое я не запомнил) кароче когда он закачает эти изменения
@kalos4484
@kalos4484 Год назад
Спасибо
@tenko4647
@tenko4647 3 года назад
Отличный контент на канале, спасибо!
@GameCraftStudio
@GameCraftStudio Год назад
Братан а не проще разве просто скопировать папку с проектом и отнести её в google диск
@EmeraldPowder
@EmeraldPowder Год назад
По сравнению с гитом, тогда нельзя будет смотреть историю изменений за все время, видеть кто какую строчку кода изменил. И не будет никакого механизма решать конфликты, если два человека один и тот же файл редактировали, то при заливке последний просто перезапишет другой
@MrChelovek68
@MrChelovek68 Год назад
Гит скорее хитрая файловая система со снепшотами и вычислением разницы, чем околофайловая система хранилища от гугла или другого. Не проще,бро
@amni5tianone263
@amni5tianone263 3 года назад
Cпасибо!
@Mr.Epsilion
@Mr.Epsilion 4 года назад
Благодарю
@GabrielRayk
@GabrielRayk 4 года назад
Спасибо, хороший видос
@АлексейДудников-ф6ц
А что делать в случае работы на одной сцене? Например у меня дизайнер сделал красивое окно. А я в это время создавал другие объекты. Часто получалось так, что айдишники объектов пересекались или что то не так было с компонентами и получался конфликт на 120 строк который никак не решить и приходилось плясать с бубном. Как такие моменты решаются?
@EmeraldPowder
@EmeraldPowder Год назад
Можно просто выносить все в префабы, и стараться не пересекаться, обычно этого хватает. Но есть утилита yaml merge кажется, которая помогает Гиту мержить сцены и другие юнитиевские файлы, можно её попробовать, если часто такое возникает
@АлексейДудников-ф6ц
@@EmeraldPowder да, спасибо. Я её пробовал, но она нам не помогла)
@МаксимКузмин-у9б
@МаксимКузмин-у9б 10 месяцев назад
@@EmeraldPowder Можете подсказать вот я хочу в будущем сделать когда будет комп чтобы я на ноуте в visual Studio писал код и он сразу сохранялся по облаку и на комп так можна сделать. И чтобы там и там проект открытый.
@kotikovdmitry4274
@kotikovdmitry4274 4 года назад
Спасибо, очень подробно
@Nick_Wind
@Nick_Wind 4 года назад
По факту в команде художники не работают с гитом, это дикость какая-то) Художник просто сохраняет всё в облаке, а если хочет посмотреть что да как в игре - смотрит последний стабильный билд, загруженный куда-либо)
@EmeraldPowder
@EmeraldPowder 4 года назад
Смотря какие команды, и какое разделение. Во всяких инди командах вообще один человек может быть, или один - разработчик, и музыку пишет, а второй рисует, моделлит, делает уровни, и настраивает освещение. В больших командах да, художник наверное не будет коммитить. Но там всё равно есть какой-нибудь левел-дизайнер, которому надо работать с репозиторием проекта, но он может не уметь кодить и в гите не разбираться
@ruslanmikhailov2844
@ruslanmikhailov2844 2 года назад
Спасибо за труды. Хотя бы наглядно ) Для начала очень хорошо. Правда пришлось с токенами поколдовать для пушей, но это мелочь и не в тему Юнити, а уже детали гитхаба.
@CaThYo27
@CaThYo27 2 года назад
Здравствуйте! у меня не получаеться подключить. Сможете мне помочь?
@ruslanmikhailov2844
@ruslanmikhailov2844 2 года назад
​@@CaThYo27 к сожалению сам гуглил. вроде на гитхабе инструкция как эти токены сделать. гуглил что-то вроде "токен, гитхаб". правда на английском
@CaThYo27
@CaThYo27 2 года назад
@@ruslanmikhailov2844 Но вы разобрались,да и мне не о токенах нужно поговорить,у вас есть дискорд чтобы помочь мне?
@ruslanmikhailov2844
@ruslanmikhailov2844 2 года назад
@@CaThYo27 дискорда нет. не понимаю тогда какая помощь нужна?
@CaThYo27
@CaThYo27 2 года назад
@@ruslanmikhailov2844 Я честно не могу объяснить проблему. Могу только через демонстрацию экрана показать. Пожалуйста,если вы можете, скажите где мы сможем созвониться
@nikitaegle5533
@nikitaegle5533 5 лет назад
ТАК Я НЕ ПОНЯЛ!!!КАКОГГОХРЕГА ТУТ ТАК МАЛО ПОДПИСЧИКОВ?ЭТО ЖЕ ОФИГЕННЫЙ КАНАЛ!!!ПОРТАЛЫ,ЧАСТИЦЫ,СМЕНЯ ДНЯ И НОЧИ.ЭТО ЖЕ ТО ЧТО НУЖНО ДЛЯ НАЧИНАЮЩИХ АЙТИ 3Д РАЗРАБОТЧИКОВ КАК Я.БУДУ РАД ЕСЛИ ТЫ НАУЧИШЬ ДЕЛАТЬ ТОРНАДОПРИКОТОРО ИСЧЕЗАЮТ ОБЪЕКТЫ ИЛИ ЧТОТО ТИПО ТОГО
@Creativeeart
@Creativeeart 4 года назад
Скоро взлетит) это аналог Brackeys)
@АлеАле-ч2й
@АлеАле-ч2й 4 года назад
+1
@paracelsushohenheim519
@paracelsushohenheim519 3 года назад
Зачем так тараторить в обучающем видео?
@MyBikeLife
@MyBikeLife 3 года назад
норм он говорит, зачем сопли жевать 15 минут мусоля то, что можно за 5 минут рассказать. Тут не возникает желание поставить 2х
@lisafox9026
@lisafox9026 4 года назад
Это не полный гайд по гиту ни разу, если новичек посмотрит, он запутается в полетах черепашки и прыжках туды сюды , а если кто продвинут, то нафиг твое видео?
@malikvalley
@malikvalley 4 года назад
Согласен. Я вообще чихуа не понял. Ну летает черепаха, и что? Что бубнить-то свои эти коммиты, инсержы...
@max3466
@max3466 2 года назад
Так это я использую из того ролика это из того ролика кое чоо скачиваем из описания ну еще немного, готово! Гайд хуже некуда
@CaThYo27
@CaThYo27 2 года назад
Здравствуйте! у меня не получаеться подключить. Сможете мне помочь?
@glorytoukraine429
@glorytoukraine429 3 года назад
Кто-то что-то понял?)
Далее
Трудности СГОРЕВШЕЙ BMW M4!
49:41
Просмотров 1,5 млн
Разработка Игр в Команде
8:26
Просмотров 20 тыс.
Что такое Git? Зачем он нужен?
14:30
Using Unity with Git in 15 minutes
15:19
Просмотров 6 тыс.
How to Setup a Git Repository for a Unity Project
13:56