ïŒç®æ¬¡ïŒ
- æŒç¿3: IntelliJ, Git, GitHubã«æ £ããã
- ç®ç
- 課é¡è§£æ±ºã«é¢ããããŠããŠã®å
±æã
- ãæ©ãè§£ãããšãã§ã¯ãªãã
- 課é¡è§£æ±ºã«é¢ããããŠããŠã®å
±æã
- ããæ¹
- å顿ãçè§£ã§ããªãå Žåã«ã¯ããã«è³ªåããããšãïŒããã§æ©ãã®ã¯æéã®ç¡é§ïŒ
- driverãšobserverãæ±ºãããïŒ10~15åçšåºŠã§äº€ä»£ãããïŒ
- driver
- å®éã«äœæ¥ããïŒæãåããïŒäººããã以å€ã®äººã¯çŽæ¥äœæ¥ããŠã¯ãããªãã
- driverã¯äœæ¥ããéã«èããŠããããšã説æããªããäœæ¥ããããšãåãããªããªãçžè«ããããšã
- äŸ
- ããŸãåé¡èªãã§ã¿ãã£ããããïŒå顿ïŒãããããã©ãããããšã ããïŒã
- observer
- driverã®äœæ¥ãçºããæ°ã¥ããããšã»åãããªãããšã質åããããšãäœæ¥ãäžæãããŠæ§ããªãã
- driverã®ããæ¹ãããè¯ãæ¹æ³ããããšæãããããã®æšã話ãããšã
- driver
- Gitã«ããããŒãžã§ã³ç®¡çãšãGitHubãéãããªã¢ãŒããªããžããªã®å©çšã«æ £ãããã
- èããŠãããšã説æã§ããããã«ãªããã
- åãããªãæã«ã¯äœæ¥ãæ¢ããŠè³ªåã§ããããã«ãªããã
- 誰ã代衚äžäººæ±ºããGitHubã«ãã°ã€ã³ãããã¢ããçšãªããžããªãæ°èŠäœæãããã
- ãªããžããªå: prog2-ex3
- publicã«ããããšã
- Settingsãã¯ãªãã¯ãããCollaboratorsããã¯ãªãã¯ã
- ãã¹ã¯ãŒããèŠæ±ãããã®ã§ãå ¥åã
- Add collaboratorã®æ¬ã«ãããŒãããŒã®GitHubã®usernameãå
¥åããAdd collaboratorãã¯ãªãã¯ã
- 3人ããŒã ã®å Žåã¯ãããŒãããŒ2åãšãå ¥åãããã
- æ£ããå
¥åã§ããŠããã°ããxxx has invited you to collaborate on the yyy/prog2-ex3 repositoryããšãã£ãã¿ã€ãã«ã®ã¡ãŒã«ããããŒãããŒåŽã«å±ããŠããã¯ãã
- ããŒãããŒã¯ã該åœã¡ãŒã«ãéãããView invitationããã¯ãªãã¯ã
- ç¶ããŠããAccept invitaionããã¯ãªãã¯ã
- ããã§ãè€æ°äººã§commit&pushã§ãããå ±çšãªããžããªãæºåã§ããã¯ãã
- ããŒãããŒã¯ã該åœã¡ãŒã«ãéãããView invitationããã¯ãªãã¯ã
- å ±åå
容
- å ±çšãªããžããªã®äœæ¥çšURLãå ±åããããšã
æŒç¿3_2: å ±çšãªããžããªãžäºãã«commit&pushããŠã¿ããïŒmergeãšconflictsè§£æ¶ã®ç·Žç¿ïŒ
- æŒç¿3_1ã®ä»£è¡šè
ãã以äžã®äœæ¥ãå§ããããšã
- IntelliJãèµ·åããéããŠãäœæ¥ãŠã£ã³ããŠãéããã
- Check out from Version Control ãã¯ãªãã¯ããGitãéžæã
- Git Repository URL ã«ãæŒç¿3_1ã§çšæããäœæ¥çšURLã貌ãä»ããã
- TestããŠåé¡ãªããã° Clone ãããYesã
- NextããŠãã£ãŠFinishãããã§ IntelliJ ã®ãããžã§ã¯ããšããŠçšæã§ããã¯ãã ã
- å·ŠåŽã®ãããžã§ã¯ãäžèЧãããprog2-ex3ããéžã³ãCtrl+ã¯ãªãã¯ã
- New -> File ãšéžã³ããã¡ã€ã«åããREADME.mdããšããŠOKã
- Git管çäžã«çœ®ããèãããã®ã§ Yesã
- äœæãã README.md ã«ã次ãå
¥åã
# ããã°ã©ãã³ã°2ã®æŒç¿3ã®ç·Žç¿äž - README.md ã add ããcommit & push ããããïŒããã§äžäººç®ã® commit&pushãçµäºïŒ
- ãã¢çª
- IntelliJãèµ·åããéããŠãäœæ¥ãŠã£ã³ããŠãéããã
- Check out from Version Control ãã¯ãªãã¯ããGitãéžæã
- Git Repository URL ã«ãæŒç¿3_1ã§çšæããäœæ¥çšURLã貌ãä»ããã
- TestããŠåé¡ãªããã° Clone ãããYesã
- NextããŠãã£ãŠFinishãããã§ IntelliJ ã®ãããžã§ã¯ããšããŠçšæã§ããã¯ãã ã
- æåã«äœæããæç¹ã§ã¯ãªããžããªã空ã ã£ãã¯ãã ããäºäººç®ããã¯æåã«ç»é²ããã README.md ãç»é²æžã¿ã®ã¯ãã§ããã
- README.md ãç·šéãããã
- 2è¡ç®ã«ããã¢ã®äººãæžããããšãåãããããªæé¢ãèšå ¥ãå 容ã¯èªç±ã
- README.md ã add ããcommit & push ããããïŒããã§äºäººç®ã® commit&pushãçµäºïŒ
- ããŒã ã§ãã£ãŠãå Žåã3人ç®ãããã¢çªããšåãããã«ãããã
- ããã§ commit & push ã1å·¡ãçµããç¶æ
ã«ãªãã¯ãã ã
- 泚æç¹ãšããŠããã®æç¹ã§ã¯ãæåã®äººã次ã®äººããšã§ IntelliJ ãããžã§ã¯ããåæãåããŠããªãã®ã§ãäžèº«ãéã£ãŠããããããèžãŸããŠã2å·¡ç®ã®äœæ¥ã«ç§»ããã
- ããã§ commit & push ã1å·¡ãçµããç¶æ
ã«ãªãã¯ãã ã
- 2å·¡ç®ã®äœæ¥
- ãããã2å·¡ç®ã«å ¥ããæåã«ãªããžããªãäœæãã代衚è ã®çªã
- PC (IntelliJ) åŽã®ãããžã§ã¯ããšãGithubäžã®ãªããžããªãšã§ã¯ãã¡ã€ã«ã®äžèº«ãç°ãªã£ãŠãããããã§ã¯ãã®ããšãç¥ããªããã®ãšããŠäœæ¥ãé²ããããïŒæ°ã¥ããªãå ã«ä¿®æ£ãããŠãããšãããã®ã§ïŒ
- å€ããªããžããªã®ãŸãŸãPCåŽã®ãããžã§ã¯ãã§äœæ¥ãããã
- README.md ãä¿®æ£ãããæ°ããæç« ã远å ãçã®æŽæ°ããããšãåããããã«ç·šéãããã
- æ®æ®µéãã« README.md ã add ããcommit ããããcommitã¯ããŒã«ã«ã®ãªããžããªã«ç»é²ããã ããªã®ã§ããããŸã§ã¯åé¡ãªãé²ãã¯ãã§ããã
- GitHubãªããžããªã«æ°ããæŽæ°ãããããšã«æ°ã¥ãããpushããŠã¿ããã
- Push of current branch master was rejected. Remote changes need to be merged before pushing. ãšèšãããã¯ãã ãããã¯ããªã¢ãŒãã«æŽæ°çããããä»pushããããšããçãšã©ã¡ããæ£ããã®ãã·ã¹ãã çã«å€æã§ããªãã®ã§ãpushäœæ¥ãæåŠãããããšã瀺ããŠããããŸããããã«å¯Ÿãã察çãšããŠãpushããåã«mergeããããšã¢ããã€ã¹ãæç€ºããŠãããmergeãšã¯ãäž¡æ¹ã®çãçµã¿åãããäžæçãªçãäœæããããšãæå³ãããææéãmergeããŠã¿ããã
- ãMergeããã¯ãªãã¯ã
- Merge conflicts dected. Resolve them before continuing update. ãšèšãããã®ã§ããã®éãã«äœæ¥ãããã€ãŸããæ°ããäœæ¥ããåã«è¡çªïŒ2ã€ã®ããŒãžã§ã³ã䜵åããããšã«ããçããççŸïŒã解決ããå¿ èŠãããã
- ãMerge...ããã¯ãªãã¯ã
- 3ããã«ã®ãŠã£ã³ããŠãéããŠããã¯ãã ãå·Šã Local Changes(PCåŽãªããžããªã§ã®æŽæ°å 容)ãå³åŽã Changes from Server(GitHubãªããžããªã§ã®æŽæ°å 容) ã§ãããåã èµ€ãè²ã¥ããããŠãè¡ããè¡çªãã§ãããäžå€®ã¯ Result() ã§ãããå·Šå³ã®2ã€ã®ããŒãžã§ã³ãèŠãªãããäžå€®ã«æ£ããçãäœæããã
- ããã§ã¯ãå ã«ãªã¢ãŒããªããžããªã®å 容ãå ããæ¬¡ã«PCåŽã®å 容ãå ããããšããäž¡æ¹ã®å 容ãå«ããã®ãæ£ããçã ãšãããããã®ããã«äžå€®ããã«ãç·šéããã
- è¡çªãè§£æ¶ãçµããã Applyã
- ãã®ç¶æ
ïŒè¡çªè§£æ±ºApplyããç¶æ
ïŒã§ãæ¹ã㊠push ããŠã¿ããã
- Push commits ã衚瀺ãããå çšã®commitã¡ãã»ãŒãžã«å ããmergeããæ å ±ãå«ã㊠push ããããšããæ§åãèŠããã¯ãã ããPushããã¯ãªãã¯ã
- ä»åºŠã¯ push ãæåããã¯ãã ããã®ããã«ãè€æ°äººã§äœæ¥ããå Žåã«ã¯åã ã®ãªããžããªéã«ããããããŒãžã§ã³ã®éãããåœç¶ã®ããã«çããããã®éã«ã¯ merge(䜵å) ããŠãçãã conflicts(è¡çª)ãresolve(è§£æ¶)ããŠãããpushãçŽããããã®æµããèŠãããã
- Tips: IntelliJã®äžæ®µããã«ã«ãVersion Control, Local Changes,,,ãçã®ã¡ãã¥ãŒã衚瀺ãããŠããã¯ããããã§ãLogããèŠããšãæŽæ°å±¥æŽãå¯èŠå衚瀺ãããŠããããã®æ§åãåããããã説æããŠããäŸãgit pull ãš git pull ârebase ã®éãã£ãŠïŒå³ã亀ããŠèª¬æããŸãïŒã®ãgit mergeãšã¯ãã§ãããåæã«ãçŽ¹ä»æžã¿ã ããä»ãªãããçè§£ãæ·±ãŸã£ãŠããããšãæåŸ ããããã®ãããªãããŒãžã§ã³ãæèããŠäœæ¥ãããããšãæ¯æŽããŠãããããŒã«ãããŒãžã§ã³ç®¡çã·ã¹ãã ã§ããã
- 代衚è ã2åç®ã® push ãçµããããæ¬¡ã®äººã«äº€ä»£ããŠåãããã«ãç·šé->commit->push->è¡çª->merge->resove->pushãããããããã å šå¡ã3åpushãããŸã§ç¹°ãè¿ã ããšãïŒãã¢ãªãåèš6åã®pushèšé²ãæ®ããŸã§ãããã3人ãªãåèš9åã®pushèšé²ãæ®ããŸã§ãããïŒ
- å ±åå
容
- æåŸã®æŽæ°ããã人ããã¿ãŒããã«ã§IntelliJãªããžããªã«ç§»åãããã§ git log ããçµæãå ±åããããšã