28 KiB
Увод у GitHub
Ова лекција покрива основе GitHub-а, платформе за хостовање и управљање изменама у вашем коду.
Скетч од Tomomi Imura
Квиз пре предавања
Увод
У овој лекцији ћемо обрадити:
- праћење рада на вашем рачунару
- рад на пројектима са другима
- како допринети софтверу отвореног кода
Предуслови
Пре него што почнете, потребно је да проверите да ли је Git инсталиран. У терминалу укуцајте:
git --version
Ако Git није инсталиран, преузмите Git. Затим подесите свој локални Git профил у терминалу:
git config --global user.name "ваше-име"git config --global user.email "ваш-имејл"
Да бисте проверили да ли је Git већ конфигурисан, можете укуцати:
git config --list
Такође ће вам бити потребан GitHub налог, едитор за код (као што је Visual Studio Code), и потребно је да отворите терминал (или командну линију).
Идите на github.com и направите налог ако га већ немате, или се пријавите и попуните свој профил.
✅ GitHub није једини репозиторијум за код на свету; постоје и други, али GitHub је најпознатији.
Припрема
Потребан вам је фолдер са код пројектом на вашем локалном рачунару (лаптопу или десктопу) и јавни репозиторијум на GitHub-у, који ће служити као пример за то како допринети пројектима других.
Управљање кодом
Рецимо да имате локални фолдер са неким код пројектом и желите да почнете да пратите свој напредак користећи git - систем за контролу верзија. Неки људи пореде коришћење git-а са писањем љубавног писма себи у будућности. Читајући своје поруке о изменама (commit messages) данима, недељама или месецима касније, моћи ћете да се сетите зашто сте донели одређену одлуку или да "вратите" промену - то јест, ако пишете добре поруке о изменама.
Задатак: Направите репозиторијум и сачувајте код
Погледајте видео
-
Направите репозиторијум на GitHub-у. На GitHub.com, у картици репозиторијума или из горње десне навигационе траке, пронађите дугме new repo.
- Дајте свом репозиторијуму (фолдеру) име.
- Изаберите create repository.
-
Навигирајте до свог радног фолдера. У вашем терминалу, пребаците се у фолдер (такође познат као директоријум) који желите да почнете да пратите. Укуцајте:
cd [name of your folder] -
Иницијализујте git репозиторијум. У вашем пројекту укуцајте:
git init -
Проверите статус. Да бисте проверили статус вашег репозиторијума, укуцајте:
git statusизлаз може изгледати овако:
Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: file.txt modified: file2.txtОбично команда
git statusговори ствари као што су који фајлови су спремни за чување у репозиторијуму или имају измене које можда желите да сачувате. -
Додајте све фајлове за праћење
Ово се такође назива постављање фајлова/додавање фајлова у област за постављање.git add .git addса аргументом.означава да су сви ваши фајлови и измене спремни за праћење. -
Додајте одабране фајлове за праћење
git add [file or folder name]Ово нам помаже да додамо само одабране фајлове у област за постављање када не желимо да сачувамо све фајлове одједном.
-
Уклони све фајлове из области за постављање
git resetОва команда нам помаже да уклонимо све фајлове из области за постављање одједном.
-
Уклони одређени фајл из области за постављање
git reset [file or folder name]Ова команда нам помаже да уклонимо само одређени фајл из области за постављање који не желимо да укључимо у следеће чување.
-
Сачувајте свој рад. У овом тренутку сте додали фајлове у такозвану област за постављање. Место где Git прати ваше фајлове. Да бисте учинили промену трајном, потребно је да сачувате фајлове. Да бисте то урадили, креирате измену (commit) командом
git commit. Измена представља тачку чувања у историји вашег репозиторијума. Укуцајте следеће да бисте креирали измену:git commit -m "first commit"Ово чува све ваше фајлове, додајући поруку "first commit". За будуће поруке о изменама, желећете да будете описнији у свом опису како бисте пренели какву сте промену направили.
-
Повежите свој локални Git репозиторијум са GitHub-ом. Git репозиторијум је добар на вашем рачунару, али у неком тренутку желите да имате резервну копију ваших фајлова негде и такође позовете друге људе да раде са вама на вашем репозиторијуму. Једно такво одлично место за то је GitHub. Запамтите да смо већ креирали репозиторијум на GitHub-у, тако да је једино што треба да урадимо да повежемо наш локални Git репозиторијум са GitHub-ом. Команда
git remote addће то урадити. Укуцајте следећу команду:Напомена, пре него што укуцате команду, идите на страницу вашег GitHub репозиторијума да бисте пронашли URL репозиторијума. Користићете га у наредној команди. Замените
https://github.com/username/repository_name.gitса вашим GitHub URL-ом.git remote add origin https://github.com/username/repository_name.gitОво креира remote, или везу, названу "origin" која показује на GitHub репозиторијум који сте раније креирали.
-
Пошаљите локалне фајлове на GitHub. До сада сте креирали везу између локалног репозиторијума и GitHub репозиторијума. Хајде да пошаљемо ове фајлове на GitHub следећом командом
git push, овако:Напомена, име ваше гране може бити другачије од
main.git push -u origin mainОво шаље ваше измене у вашој "main" грани на GitHub. Постављање
upstreamгране укључујући-uу команди успоставља везу између ваше локалне гране и удаљене гране, тако да можете једноставно користити git push или git pull без навођења имена гране у будућности. Git ће аутоматски користити upstream грану и нећете морати експлицитно да наводите име гране у будућим командама. -
Да додате још измена. Ако желите да наставите са прављењем измена и њиховим слањем на GitHub, само ћете морати да користите следеће три команде:
git add . git commit -m "type your commit message here" git pushСавет, Можда ћете желети да усвојите
.gitignoreфајл како бисте спречили да се фајлови које не желите да пратите појаве на GitHub-у - као што је тај фајл са белешкама који чувате у истом фолдеру, али нема место у јавном репозиторијуму. Можете пронаћи шаблоне за.gitignoreфајлове на .gitignore templates.
Поруке о изменама
Одлична порука о Git измени завршава следећу реченицу:
Ако се примени, ова измена ће <ваша порука овде>
За поруку користите императив, садашње време: "промени" уместо "променио" или "промена".
Као и у поруци, у телу (опционо) такође користите императив, садашње време. Тело треба да укључи мотивацију за промену и упореди је са претходним понашањем. Објашњавате зашто, а не како.
✅ Одвојите неколико минута да истражите GitHub. Можете ли пронаћи заиста добру поруку о измени? Можете ли пронаћи заиста минималну? Које информације мислите да су најважније и најкорисније за преношење у поруци о измени?
Задатак: Сарађујте
Главни разлог за постављање ствари на GitHub је да се омогући сарадња са другим програмерима.
Рад на пројектима са другима
Погледајте видео
У вашем репозиторијуму, идите на Insights > Community да видите како ваш пројекат стоји у поређењу са препорученим стандардима за заједницу.
Ево неких ствари које могу побољшати ваш GitHub репозиторијум:
- Опис. Да ли сте додали опис за ваш пројекат?
- README. Да ли сте додали README? GitHub пружа смернице за писање README.
- Смернице за допринос. Да ли ваш пројекат има смернице за допринос?
- Кодекс понашања. Да ли ваш пројекат има кодекс понашања?
- Лиценца. Можда најважније, да ли ваш пројекат има лиценцу?
Сви ови ресурси ће користити новим члановима тима. То су обично ствари које нови доприносиоци гледају пре него што уопште погледају ваш код, како би утврдили да ли је ваш пројекат право место за њих да проводе своје време.
✅ README фајлови, иако захтевају време за припрему, често се занемарују од стране заузетих одржавалаца. Можете ли пронаћи пример посебно описног README-а? Напомена: постоје неки алати за креирање добрих README-ова које бисте могли да испробате.
Задатак: Спојите код
Документација о доприносу помаже људима да допринесу пројекту. Она објашњава које врсте доприноса тражите и како процес функционише. Доприносиоци ће морати да прођу кроз низ корака да би могли да допринесу вашем репозиторијуму на GitHub-у:
- Fork вашег репозиторијума. Вероватно ћете желети да људи fork-ују ваш пројекат. Fork значи креирање реплике вашег репозиторијума на њиховом GitHub профилу.
- Clone. Одатле ће клонирати пројекат на свој локални рачунар.
- Креирање гране. Желите да их замолите да креирају грану за свој рад.
- Фокусирање измена на једну област. Замолите доприносиоце да концентришу своје доприносе на једну ствар у исто време - на тај начин су шансе да можете спојити њихов рад веће. Замислите да напишу исправку грешке, додају нову функцију и ажурирају неколико тестова - шта ако желите или можете да имплементирате само 2 од 3 или 1 од 3 измене?
✅ Замислите ситуацију у којој су гране посебно критичне за писање и испоруку доброг кода. Које случајеве употребе можете замислити?
Напомена, будите промена коју желите да видите у свету и креирајте гране за свој рад. Све измене које направите биће направљене на грани на којој сте тренутно "checked out". Користите
git statusда видите на којој грани се налазите.
Хајде да прођемо кроз процес рада доприносиоца. Претпоставимо да је доприносилац већ fork-овао и клонирао репозиторијум, тако да има Git репозиторијум спреман за рад на свом локалном рачунару:
-
Креирање гране. Користите команду
git branchда креирате грану која ће садржати измене које намеравају да допринесу:git branch [branch-name] -
Пребацивање на радну грану. Пребаците се на одређену грану и ажурирајте радни директоријум командом
git switch:git switch [branch-name] -
Радите на изменама. У овом тренутку желите да додате своје измене. Не заборавите да кажете Git-у о томе следећим командама:
git add . git commit -m "my changes"Уверите се да сте дали добро име својој измени, за ваше добро као и за добро одржаваоца репозиторијума на којем помажете.
-
Спојите свој рад са
mainграном. У неком тренутку сте завршили са радом и желите да спојите свој рад са оним изmainгране.mainграна је можда промењена у међувремену, па се уверите да сте је прво ажурирали на најновију верзију следећим командама:git switch main git pullУ овом тренутку желите да се уверите да се сви конфликти, ситуације у којима Git не може лако да споји измене, дешавају у вашој радној грани. Зато покрените следеће команде:
git switch [branch_name] git merge mainКоманда
git merge mainће донети све измене изmainгране у вашу грану. Надамо се да можете само наставити. Ако не, VS Code ће вам рећи где је Git збуњен и само измените погођене фајлове да бисте навели који садржај је најтачнији.Да бисте се пребацили на другу грану, користите модерну команду
git switch:git switch [branch_name] -
Пошаљите свој рад на GitHub. Слање вашег рада на GitHub подразумева две ствари.
-
Отворите PR. Следећи корак је да отворите PR. То радите тако што одете на форковани репозиторијум на GitHub-у. На GitHub-у ћете видети опцију која вас пита да ли желите да креирате нови PR, кликнете на то и бићете преусмерени на интерфејс где можете променити наслов поруке комита, додати прикладнији опис. Сада ће одржавалац репозиторијума који сте форковали видети овај PR и држимо палчеве да ће га ценити и спојити ваш PR. Сада сте сарадник, ура! :)
-
Очистите. Сматра се добром праксом да очистите након што успешно спојите PR. Треба да очистите и локалну грану и грану коју сте послали на GitHub. Прво је избришите локално помоћу следеће команде:
git branch -d [branch-name]Затим идите на GitHub страницу форкованог репозиторијума и уклоните удаљену грану коју сте управо послали.
Pull request може звучати као чудан термин јер заправо желите да "пошаљете" своје измене у пројекат. Али одржавалац (власник пројекта) или главни тим треба да размотри ваше измене пре него што их споји са "главном" граном пројекта, тако да заправо тражите одржавалаца да донесу одлуку о изменама.
Pull request је место где можете упоредити и дискутовати о разликама које сте унели у грану уз рецензије, коментаре, интегрисане тестове и још много тога. Добар pull request прати отприлике исте смернице као и порука комита. Можете додати референцу на проблем у трагачу проблема, на пример када ваш рад решава одређени проблем. То се ради коришћењем # праћеног бројем вашег проблема. На пример #97.
🤞Држимо палчеве да сви тестови прођу и да власник(ци) пројекта споје ваше измене у пројекат🤞
Ажурирајте своју тренутну локалну радну грану са свим новим комитима из одговарајуће удаљене гране на GitHub-у:
git pull
Како допринети отвореном коду
Прво, пронађите репозиторијум (или repo) на GitHub-у који вас занима и коме бисте желели да допринесете изменом. Желите да копирате његов садржај на свој рачунар.
✅ Добар начин да пронађете репозиторијуме погодне за почетнике је претрага по ознаци 'good-first-issue'.
Постоји неколико начина за копирање кода. Један од начина је да "клонирате" садржај репозиторијума, користећи HTTPS, SSH или GitHub CLI (Command Line Interface).
Отворите терминал и клонирајте репозиторијум овако:
git clone https://github.com/ProjectURL
Да бисте радили на пројекту, промените директоријум на одговарајући:
cd ProjectURL
Такође можете отворити цео пројекат користећи Codespaces, GitHub-ов уграђени едитор кода / облачно развојно окружење, или GitHub Desktop.
На крају, можете преузети код у зипованом фолдеру.
Неколико занимљивих ствари о GitHub-у
Можете да означите звездицом, пратите и/или "форкујете" било који јавни репозиторијум на GitHub-у. Своје репозиторијуме означене звездицом можете пронаћи у падајућем менију у горњем десном углу. То је као обележавање, али за код.
Пројекти имају трагач проблема, углавном на GitHub-у у картици "Issues", осим ако није другачије назначено, где људи дискутују о проблемима везаним за пројекат. А картица Pull Requests је место где људи дискутују и прегледају измене које су у току.
Пројекти могу имати дискусије у форумима, мејлинг листама или каналима за ћаскање као што су Slack, Discord или IRC.
✅ Погледајте свој нови GitHub репозиторијум и испробајте неке ствари, као што су уређивање подешавања, додавање информација у репозиторијум и креирање пројекта (као што је Канбан табла). Постоји много тога што можете урадити!
🚀 Изазов
Упарите се са пријатељем да радите на кодовима једно другог. Креирајте пројекат заједно, форкујте код, креирајте гране и спојите измене.
Квиз након предавања
Преглед и самостално учење
Прочитајте више о доприносу софтверу отвореног кода.
Вежбајте, вежбајте, вежбајте. GitHub има одличне путеве за учење доступне преко skills.github.com:
Такође ћете пронаћи напредније курсеве.
Задатак
Завршите курс Прва недеља на GitHub-у
Одрицање од одговорности:
Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције Co-op Translator. Иако се трудимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати меродавним извором. За критичне информације препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу произаћи из коришћења овог превода.



