¾î¶² ÅøÀ̵ç óÀ½ ¹è¿ï ¶§´Â ±×´ë·Î µû¶óÇØ º¸´Â ÀÛÀüÀÌ È¿À²ÀûÀÌ´Ù. ½Ç½ÀÀ»
ÇÏ´Ù º¸¸é Å« Áٱ⸦ ÀÍÈú ¼ö ÀÖ°í ¹» ´õ °øºÎÇØ¾ß¾ËÁö ¸ñ·ÏÀ» ÆÄ¾ÇÇÒ ¼ö ÀÖ´Ù. °£´ÜÇÑ ¸ðÀÇ ÇÁ·ÎÁ§Æ®¸¦
¼öÇàÇÏ¸ç ±êÀ¸·Î ¼Ò½º¸¦ °ü¸®ÇÏ´Â ÀýÂ÷¿Í ±âº» °³³äÀ» ÀÍÇô º¸ÀÚ.
¿©±â¼´Â °£´ÜÇÑ ½´ÆÃ °ÔÀÓÀ» ¸¸µé¾î º¸µÇ ÁøÂ¥ ÄÚµùÀ» ÇÏÁö´Â ¾Ê°í Èä³»¸¸ ³½´Ù.
°¶·¯±×, Àκ£ÀÌ´õ°°Àº °íÀü °ÔÀÓó·³ À§¿¡¼ ³»·Á¿À´Â ÀûÀ» ½î¾Æ ¶³¾î¶ß¸®´Â °ÔÀÓÀÌ´Ù. °ÔÀÓÀº ÇÊ¿äÇÑ ±â´ÉÀ» Á÷°üÀûÀ¸·Î ÀÌÇØÇϱ⠽±°í Àû´çÈ÷ ºê·£Ä¡µµ ÇØ º¼ ¼ö ÀÖ´Ù.

½Ç½ÀÀ» À§ÇØ C µå¶óÀ̺êÀÇ ·çÆ®¿¡
StudyGit Æú´õ¸¦ ¸¸µç´Ù. ½Ç½À À§Ä¡¸¦ °ÁÂ¿Í ÀÏÄ¡½ÃÄÑ¾ß È¥¶õÀÌ ´úÇÏÁö¸¸ »óȲ¿¡ µû¶ó
´Ù¸¥ Æú´õ¸¦ »ç¿ëÇØµµ »ó°üÀº ¾ø´Ù. ´Ü, ³Ê¹« ±íÀº °÷Àº
°æ·Î°¡ ±æ¾î ºÒÆíÇϸç ÇѱÛÀÌ Æ÷ÇÔµÈ °æ·Î´Â ÇÇÇÏ´Â °ÍÀÌ ÁÁ´Ù. ÀÌ ¾È¿¡ ÇÁ·ÎÁ§Æ®¸¦ ¼öÇàÇÒ game Æú´õ¸¦ ¶Ç ¸¸µç´Ù. ¸í·ÉÇà¿¡¼ ´ÙÀ½ ¸í·ÉÀ» ¼øÂ÷ÀûÀ¸·Î ½ÇÇàÇÑ´Ù.
soen@SoenDesk MINGW64 ~
$ cd c:/
soen@SoenDesk MINGW64 /c
$ mkdir StudyGit
soen@SoenDesk MINGW64 /c
$ cd StudyGit
soen@SoenDesk MINGW64 /c/StudyGit
$ mkdir game
soen@SoenDesk MINGW64 /c/StudyGit
$ cd game
soen@SoenDesk MINGW64 /c/StudyGit/game
Æú´õ ¸¸µé°í ¾ÈÀ¸·Î µé¾î°¡ ¶Ç Æú´õ¸¦ ¸¸µå´Â ¸í·ÉÀÌ´Ù. gitCMD¿¡¼
ÀÛ¾÷Çϰí ÀÖ´Ù¸é mkdir ¸í·É ´ë½Å md ¸í·ÉÀ» »ç¿ëÇϸé
µÈ´Ù. ¸í·ÉÇà¿¡¼ ÀÛ¾÷ÇÏ´Â°Ô ±ÍÂú°Å³ª Àͼ÷ÇÏÁö ¾Ê´Ù¸é Ž»ö±â¿¡¼ Æú´õ¸¦ ¸¸µé¾îµµ »ó°ü ¾ø´Ù. ÀÌ °æ¿ì ¸í·ÉÇà¿¡¼ cd /c/StudyGit/game ¸í·ÉÀ¸·Î
Æú´õ ¾ÈÀ¸·Î µé¾î°£´Ù. ÇöÀç ´ÙÀ½°ú °°ÀÌ Æú´õ¸¦ ±¸¼ºÇϰí game Æú´õ
¾ÈÀ¸·Î µé¾î¿Í ÀÖ´Â »óÅÂÀÌ´Ù.
game Æú´õ ¾È¿¡ ÇÁ·ÎÁ§Æ®¸¦ ¸¸µé°í ±êÀ¸·Î °ü¸®ÇÏ´Â ½Ç½ÀÀ» ÁøÇàÇÑ´Ù. ¸ðµç Á¤º¸°¡ ÀÌ Æú´õ ¾È¿¡ ÀúÀåµÇ¹Ç·Î ¸¸¾à Áß°£¿¡ ½Ç½ÀÀ» À߸øÇ߰ųª óÀ½ºÎÅÍ ´Ù½Ã ÇØ º¸°í ½Í´Ù¸é game Æú´õ¸¦ ½Ï Áö¿ö¹ö¸®°í »õ·Î ¸¸µç ÈÄ Ã³À½ºÎÅÍ ´Ù½Ã ÇÏ¸é µÈ´Ù.
¸í·É¾î´Â ¾Ö½á ¿Ü¿ì°í Â÷ÀÌÁ¡À» Á¤È®È÷ ¾Ë°í ÀÖ¾î¾ß ÇÑ´Ù. ±êÀº ÀÌÇØ
°ú¸ñÀÌ ¾Æ´Ñ ¾Ï±â °ú¸ñÀÌ´Ù. ¸í·É¾î¸¦ ·¹ÆÛ·±½º µÚÁö°í ÀÖÀ¸¸é ½Ç¼öÇÒ À§ÇèÀÌ ³ô´Ù. ¸í·É¾î¿Í ¸í·ÉÀÇ È¿°ú°¡ ¸Ó¸®¼Ó¿¡ ¿Ïº®ÇÏ°Ô Á¤¸®µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù. ´ëÃæ ÀÐÁö ¸»°í ²À ½Ç½ÀÀ» ÇØ ºÁ¾ß ÇÑ´Ù.
ÇÁ·ÎÁ§Æ® Æú´õÀÎ gameÀ» ¿öÅ·Æ®¸®(Working
Tree)¶ó°í ºÎ¸¥´Ù. ¿©±â¼ ÄÚµù ÀÛ¾÷À» Çϸç ÇÁ·ÎÁ§Æ® Æú´õ ¾È¿¡´Â Debug, Release, res, lib µîÀÇ ¼ºê Æú´õ°¡ °èÃþÀ» ÀÌ·ç¹Ç·Î Æ®¸®¶ó´Â ¿ë¾î¸¦ ¾´´Ù. ¿öÅ·Æ®¸®¶ó´Â ¸»À» ¾î·Æ°Ô »ý°¢ÇÒ ÇÊ¿ä¾øÀÌ ±×³É ÇÁ·ÎÁ§Æ® Æú´õ¶ó°í »ý°¢ÇÏ¸é µÈ´Ù.
¿öÅ·Æ®¸®´Â ÇÁ·ÎÁ§Æ®ÀÇ ÇöÀç »óÅÂÀ̸ç Ç×»ó ÃֽŠ¼Ò½º¸¦ °¡Áö¸ç ½Ã½Ã°¢°¢À¸·Î º¯ÇÑ´Ù. ÀÌ ¾ÈÀÇ ¼Ò½º¸¦ ½ÃÁ¡º°·Î ¹é¾÷Çϰí ÇÊ¿ä½Ã ÀÌÀü ¹öÀüÀ» ÂüÁ¶ÇÏ´Â °ÍÀÌ ¹öÀü°ü¸®ÅøÀÌ ÇÏ´Â ÀÏÀÌ´Ù. ±êÀº ¿öÅ·Æ®¸®ÀÇ ¼Ò½º¸¦ 3´Ü°è·Î °ü¸®ÇÑ´Ù.

¼Ò½º¸¦ ¹é¾÷ÇÏ´Â °÷À» ¸®ÆÄÁöÅ丮(Repository)¶ó°í Çϴµ¥ ¸»ÀÌ
±â´Ï ÀúÀå¼Ò·Î ª°Ô ¹ø¿ªÇÑ´Ù. ÀÌ ¾È¿¡ ¼Ò½º¸¦ ¹öÀüº°·Î ÀúÀåÇϴµ¥ ¹öÀü Çϳª¸¦ ÀúÀå¼Ò·Î ¿Ã¸®´Â µ¿ÀÛÀ»
Ä¿¹Ô(Commit)À̶ó°í ÇÑ´Ù. ÇÁ·ÎÁ§Æ®¸¦ ½ÃÀÛÇßÀ» ¶§ºÎÅÍ
ÃֽйöÀü±îÁö Áß°£ ¼Ò½º°¡ ´Ù ÀúÀåµÈ´Ù. ÇÁ·ÎÁ§Æ® ±â°£ÀÌ ±æ¾îÁö¸é ÀÌ ¾ÈÀÇ ¿ë·®ÀÌ ¾î¸¶¾î¸¶ÇØÁú °ÍÀÌ´Ù.
¼öµ¿À¸·Î 1¿ù2ÀÏÀÚ.zip, ±è´ë¸®ÀÛ¾÷º».zip µîÀ¸·Î ¾ÐÃàÇÏ¿© ¿ÜÀåÇϵ忡 ÀúÀåÇÑ´Ù¸é
À̶§ ¿ÜÀåÇϵ忡 ÇØ´çÇÏ´Â °÷ÀÌ ÀúÀå¼ÒÀÌ´Ù. ´Ù¸¸ ÃÖ¼ÒÇÑÀÇ ¹Ù²ï ºÎºÐ¸¸ ÀúÀåÇÏ¿© ¿ë·®À» Àý¾àÇÏ°í °Ë»ö, ºñ±³°¡ ºü¸£´Ù´Â ¸é¿¡¼ ¿ÜÀåÇϵå¿Í´Â ÁúÀûÀ¸·Î ¼öÁØÀÌ ´Ù¸£´Ù.
±êÀº ´Ù¸¥ ¹öÀü°ü¸®Åø¿¡ ºñÇØ ¿öÅ·Æ®¸®¿Í ÀúÀå¼Ò »çÀÌ¿¡ ½ºÅ×ÀÌÁö¶ó´Â ´Ü°è¸¦ Çϳª ´õ °ÅÄ£´Ù´Â Á¡ÀÌ µ¶Æ¯ÇÏ´Ù. ½ºÅ×ÀÌÁö´Â ÀúÀå¼Ò¿¡ ¹é¾÷Çϱâ Àü¿¡ °ÅÄ¡´Â ÀÓ½ÃÀûÀÎ ´ë±â Àå¼ÒÀÌ´Ù. Áß°£¿¡
ÇÑ ´Ü°è¸¦ ´õ °ÅÄ¡¸é ¾ÈÀüÇÏ°í ´õ À¯¿¬ÇÑ °ü¸®°¡ °¡´ÉÇØÁø´Ù.
¢º ÃÖÁ¾ ÀúÀåÇÒ ÆÄÀÏÀ» ½ºÅ×ÀÌÁö¿¡¼ ¼±º°ÇÒ ¼ö ÀÖ´Ù. ¾ÆÁ÷ ¹Ì°áÁ¤µÈ
ÆÄÀÏÀº Àá½Ã Á¦¿ÜÇØ ³õ°í ³ª¸ÓÁö¸¸ ¹öÀü¿¡ ¹Ý¿µÇÒ ¼ö ÀÖ´Ù.
¢º ¿©·¯ ±â´ÉÀ» µ¿½Ã¿¡ ±¸ÇöÇß´õ¶óµµ ³í¸®ÀûÀÎ ¹À½À» ³ª´©¾î ¿Ã¸± ¼ö ÀÖ´Ù. ¿¹¸¦
µé¾î ±â´ÉÀ» Ãß°¡ÇÏ´ø Áß ¹ö±×µµ ¹ß°ßÇÏ¿© ¼öÁ¤Çß´Ù¸é µÎ ¹À½À» µû·Î ¿Ã¸®¸é µÈ´Ù.
¢º ½ºÅ×ÀÌÁö¿¡ ¿Ã·Á ³õÀº ÆÄÀϰú ¿öÅ·Æ®¸®ÀÇ ÆÄÀÏÀ» ºñ±³ÇÏ¿© ÃÖÈÄ Ä¿¹Ô ÈÄÀÇ »óÅÂ¿Í ºñ±³Çϱ⠽±´Ù. ÇÑ´Ü°è ´õ °ÅÃÄ ½ÅÁßÇÏ°Ô ÀÛ¾÷ÇÒ ¼ö ÀÖ°í ½Ç¼ö¸¦ ¹æÁöÇÑ´Ù.
¹¹µçÁö ÇÑ ´Ü°è¸¦ ´õ °ÅÄ¡¸é ÇÒ ¼ö ÀÖ´Â ÀÏÀÌ ´õ ¸¹¾ÆÁö°í ¼¶¼¼ÇØÁø´Ù. ¹Ý¸é
ÀÛ¾÷ ÀýÂ÷°¡ ±æ¾îÁ® ºÒÆíÇÑ ¸éÀÌ ÀÖ°í º¹Àâµµ°¡ Áõ°¡ÇÏ´Â ´ÜÁ¡ÀÌ ÀÖ´Ù. ºñ±³³ª º¹¿ø ÀÛ¾÷½Ã ±× ´ë»óÀÌ
¿öÅ·Æ®¸®ÀÎÁö ½ºÅ×ÀÌÁöÀÎÁ¦ Àß ±¸ºÐÇØ¾ß ÇÑ´Ù. ÀúÀå¼Ò·Î Ä¿¹ÔÇϱâ Àü¿¡ ½ºÅ×ÀÌÁö¿¡ ¸ÕÀú ¿Ã·Á¾ß ÇÏ´Â ¹ø°Å·Î¿òÀÌ
ÀÖÁö¸¸ ÇѲ¨¹ø¿¡ ó¸®ÇÏ´Â ¿É¼Çµµ Á¦°øÇÑ´Ù.
½Ç½À ÆíÀÇ»ó ÇÁ·ÎÁ§Æ® Æú´õÀÎ gameÀº Á÷Á¢ ¸¸µé¾úÁö¸¸ ½ÇÁ¦ °³¹ß¿¡¼´Â
ºñÁÖ¾ó ½ºÆ©µð¿À³ª ÀÌŬ¸³½º°°Àº ÅøÀÌ ¸¸µé¾î ÁØ´Ù. ÀÌ Æú´õ¿¡´Â ÇÁ·ÎÁ§Æ® ¼öÇà¿¡ ÇÊ¿äÇÑ ¸ðµç °ÍÀÌ °®Ãß¾îÁ®
ÀÖÁö¸¸ ¾ÆÁ÷ ±êÀÌ ÀνÄÇÏ´Â ¿öÅ·Æ®¸®´Â ¾Æ´Ï´Ù.
±êÀ¸·Î °ü¸®ÇÏ·Á¸é ¿öÅ·Æ®¸® »Ó¸¸ ¾Æ´Ï¶ó ½ºÅ×ÀÌÁö³ª ÀúÀå¼Ò±îÁö °®Ãß¾î¾ß ÇÑ´Ù. ÀÌ
ÀÛ¾÷À» Ãʱâȶó°í Çϸç git init ¸í·ÉÀ» »ç¿ëÇÑ´Ù. ÃʱâÈÇÒ
µð·ºÅ丮 ¾ÈÀ¸·Î À̵¿ÇÏ¿© ¸í·ÉÀ» ³»¸®¸é ÀúÀå¼Ò¸¦ ¸¸µç´Ù´Â ¸Þ½ÃÁö¸¦ Ç¥½ÃÇÏ¸ç ±Ý¹æ ÃʱâȰ¡ ¿Ï·áµÈ´Ù.
soen@SoenDesk MINGW64 /c/StudyGit/game
$ git init
Initialized empty Git repository in
C:/StudyGit/game/.git/
soen@SoenDesk MINGW64 /c/StudyGit/game (main)
game µð·ºÅ丮¸¦ ¸ÕÀú ¸¸µé¾î ³õ°í ±× ¾È¿¡¼ git init¸¦ ½ÇÇàÇߴµ¥ ÀÌ µÎ µ¿ÀÛÀ» ÇѲ¨¹ø¿¡ ó¸®ÇÒ ¼ö ÀÖ´Ù.
StudyGit µð·ºÅ丮¿¡¼ ´ÙÀ½ ¸í·ÉÀ» ½ÇÇàÇÏ¸é µð·ºÅ丮¸¦ ¸¸µé¸é¼ ¹Ù·Î ÃʱâȱîÁö ÇØ ÁØ´Ù.
soen@SoenDesk MINGW64 /c/StudyGit
$ git init game
Initialized empty Git repository in
C:/StudyGit/game/.git/
µÎ¹ø ÀÛ¾÷ÇÒ °ÍÀ» Çѹø¿¡ ÇØ Áشٴ ¸é¿¡¼ Æí¸®ÇÏ´Ù. ±×·¯³ª ¿ÏÀüÈ÷
°°Áö´Â ¾Ê¾Æ¼ µð·ºÅ丮 ¾ÈÀ¸·Î µé¾î°¡´Â °Í±îÁö´Â ÇØ ÁÖÁö ¾Ê´Â´Ù. »ý¼º ¹× ÃʱâÈ ÈÄ cd game ¸í·ÉÀ¸·Î ¾ÈÀ¸·Î µé¾î°¡¾ß ¿ÏÀüÈ÷ °°¾ÆÁø´Ù.
init ¸í·É¿¡ ÀÇÇØ ¸¹Àº º¯È°¡ ¹ß»ýÇÑ´Ù. Ž»ö±â·Î game Æú´õ¸¦ º¸¸é
.gitÀ̶ó´Â ¼û±è Æú´õ°¡ »ý¼ºµÇ¾î ÀÖÀ¸¸ç ±× ¾È¿¡µµ º¹ÀâÇÑ ¼ºêÆú´õ°¡ ±¸¼ºµÇ¾î ÀÖ´Ù. ±âº»
»óÅ¿¡¼´Â ¾È º¸ÀÏ ¼öµµ Àִµ¥ Ž»ö±âÀÇ º¸±âÅÇ¿¡¼ "¼û±ä Ç׸ñ"À» üũÇÏ¸é º¸ÀδÙ. ¾î¶»°Ô »ý°å´ÂÁö ±¸°æÀ̳ª ÇØ º¸ÀÚ.

.git Æú´õ ¾È¿¡ ½ºÅ×ÀÌÁö¿Í ÀúÀå¼Ò°¡ ÀÖÀ¸¸ç ¹öÀü °ü¸®¿¡ ÇÊ¿äÇÑ
¸ðµç Á¤º¸°¡ ÀúÀåµÈ´Ù. ¿öÅ·Æ®¸® ¾È¿¡ ¹é¾÷¿ë Æú´õ¸¦ ¸¸µé¾î »ì¦ ¼û°Ü ³ù´Ù°í º¸¸é µÈ´Ù. Ãʱ⠿뷮Àº 20K·Î ¾ÆÁÖ ÀÛÁö¸¸ ÇÁ·ÎÁ§Æ®¸¦ ÁøÇàÇϸé ÀÌ ¾È¿¡ Á¤º¸°¡
Á¡Á¡ ´Ã¾î³´Ù. ÀÌÀü ¹öÀüÀÇ ¹é¾÷ÀÌ ¸ðµÎ ÀÌ ¾È¿¡ µé¾î°¡¸ç ´©°¡ ¾ðÁ¦ ¾î¶»°Ô ¹Ù²Ù¾ú´ÂÁö ³¹³¹ÀÌ ±â·ÏÇÑ´Ù.
³»ºÎ ±¸Á¶´Â ±»ÀÌ ¸ô¶óµµ µÇ¸ç ±êÀÌ ¾Ë¾Æ¼ °ü¸®ÇÑ´Ù. ¾ÐÃàµÇ¾î ÀÖ´Â
Á¤º¸¶ó »ç½Ç µé¿©´Ù ºÁµµ ¹¹°¡ ¹ºÁö ºÐ°£ÇÏ±â ¾î·Æ´Ù. ¿ÀÈ÷·Á ÇԺηΠ°Çµå¸®¸é Á¤±³ÇÑ ÀúÀå ±¸Á¶°¡ ¼Õ»óµÇ¹Ç·Î
±ê¿¡°Ô ±×³É ¸Ã°ÜµÎ´Â °ÍÀÌ ÁÁ´Ù.
ÇÁ·ÒÇÁÆ®¿¡µµ º¯È°¡ Àִµ¥ °æ·Î ³¡¿¡ (main)À̶ó´Â ºê·£Ä¡ À̸§ÀÌ
Ç¥½ÃµÇ¾î ÀÖ´Ù. ¿©±â¿¡´Â ÇöÀç ºê·£Ä¡¸¦ Ç¥½ÃÇϴµ¥ ³ªÁß¿¡ ºê·£Ä¡¸¦ ¹Ù²ã °¡¸ç ÀÛ¾÷ÇÒ ¶§´Â ´Ù¸¥ ºê·£Ä¡
À̸§ÀÌ Ç¥½ÃµÈ´Ù. ÇÁ·ÒÇÁÆ®¿¡ Áö±Ý ÀÛ¾÷ÁßÀÎ À§Ä¡¿Í ºê·£Ä¡¸¦ ¸íÈ®È÷ Ç¥½ÃÇÏ¿© Çò°¥¸®Áö ¾Êµµ·Ï ÇØ ÁØ´Ù.

Ãʱâȸ¦ ¿Ï·áÇÏ¸é ±êÀº ¹öÀü °ü¸®¸¦ ½ÃÀÛÇÑ´Ù. ¼Ò½º´Â °³¹ßÀÌ ÁøÇàµÊ¿¡
µû¶ó ¼ö½Ã·Î ¹Ù²ï´Ù. °³¹ßÀÚ´Â ¸ÅÀÏ ¶Ç´Â ÁÖ¿ä ±â´ÉÀ» ¿Ï¼ºÇÒ ¶§¸¶´Ù ÀúÀå¼Ò·Î Ä¿¹ÔÇÏ¿© ¹é¾÷À» ³²±ä´Ù. ¸í·É Çϳª¸¸ ³»¸®¸é º¯°æµÈ ³»¿ëÀ» ã¾Æ ÀúÀå¼Ò¿¡ °íÀÌ ¹é¾÷ÇØ µÐ´Ù. ÀúÀå¼ÒÀÇ
ÀúÀå ´ë»óÀº ÇÁ·ÎÁ§Æ® ÁøÇà ´Ü°è¸¶´Ù »ý¼ºµÇ´Â ¹öÀüÀÌ¸ç °¢ ¹öÀüÀÇ ³»¿ëÀº ´Ù ´Ù¸£´Ù.
¿öÅ·Æ®¸®¿¡´Â ÇÁ·ÎÁ§Æ®¿¡ ´ëÇÑ ¸ðµç °ÍÀÌ ´Ù µé¾î ÀÖ´Ù. ÇÁ·ÎÁ§Æ®ÀÇ
ÇöÀç ¼Ò½º´Â ¹°·ÐÀ̰í ÀÌÀü ÀÛ¾÷ ±â·Ï±îÁö ¿ÂÀüÈ÷ ±× ¾È¿¡ ǰ°í ÀÖ´Ù. ÀÌ·± µ¶¸³ÀûÀÎ »óŸ¦ ½º½º·Î ¿Ï°á(Self Contained)À̶ó°í Ç¥ÇöÇÑ´Ù. game Æú´õ¸¦ µý À§Ä¡·Î
¿Å°Üµµ ¸ðµç Á¤º¸°¡ °°ÀÌ À̵¿ÇÏ¸ç ¾ÐÃàÇØ¼ Àü´ÞÇϸé À̷±îÁö ±×´ë·Î ³²¾Æ ÀÖ´Ù.
ÀÌÁ¦ ½ÇÁ¦ ÇÁ·ÎÁ§Æ®¸¦ ÁøÇàÇØ º¸ÀÚ. °³¹ßÅø·Î ¼Ò½º¸¦ ¸¸µé°í ÄÄÆÄÀÏÇÑ
ÈÄ ½ÇÇàÇØ º¸°í °á°ú¸¦ È®ÀÎÇØ ºÁ¾ß°ÚÁö¸¸ Áö±ÝÀº ½Ç½ÀÁßÀ̹ǷΠÆòÀÌÇÑ ÅØ½ºÆ®·Î ¼Ò½º¸¦ ¸¸µå´Â ô Èä³»¸¸ ³» º¸±â·Î ÇÑ´Ù. Áö±ÝÀº º¯°æµÈ ¼Ò½º¸¦ ¾î¶»°Ô °ü¸®ÇÒ °ÍÀΰ¡¸¸ ½Ç½ÀÇÏ¸é µÇ´Ï ³»¿ëÀÌ Áß¿äÇÑ°Ç ¾Æ´Ï´Ù.
¿©±â¼´Â ¸Þ¸ðÀåÀ» »ç¿ëÇߴµ¥ VSCode³ª NotePad++ °°Àº Áñ°Ü ¾²´Â ÆíÁý±â¸¦ »ç¿ëÇØµµ »ó°ü¾øÀ¸¸ç ¾î·°Å³ª °ü¸® ´ë»óÀÎ ÆÄÀÏÀ» »ý¼ºÇÏ¿© ÇÁ·ÎÁ§Æ®¸¦
ÁøÇàÇϴ ô¸¸ ÇÏ¸é µÈ´Ù. ¸ÞÀÎ ¼Ò½º ÆÄÀÏÀÎ game.cpp ÆÄÀÏÀ»
¸¸µé°í ÀÌ ¾È¿¡ ´ÙÀ½ ¼Ò½º¸¦ ÀÛ¼ºÇÑ´Ù. °ÔÀÓÀ» ÁøÇàÇÏ´Â Äڵ带 ÀÇ»ç ÄÚµå·Î Ç¥ÇöÇß´Ù. whileÀº Á¶°ÇÀÌ ¸¸Á·ÇÒ ¶§±îÁö ¹Ýº¹ÇÏ´Â Á¦¾î¹®À̸ç ÁÖÀΰøÀÌ »ì¾Æ ÀÖ´Â µ¿¾È °ÔÀÓÀ» ÁøÇàÇÑ´Ù.

ÆíÁý±â¸¦ µû·Î ½ÇÇàÇÏ´Â°Ô ±ÍÂúÀ¸¸é ¸í·ÉÇà ¾È¿¡¼ vim game.cpp ¸í·ÉÀ¸·Î
½ºÅ©¸° ÆíÁý±â¸¦ ¿°í ¹Ù·Î ÆíÁýÇÒ ¼öµµ ÀÖ´Ù. vimÀº °ü¸® ¸ðµå·Î ¿¸®¹Ç·Î i³ª a¸¦ ´©¸£°í ÀÔ·ÂÀ» ½ÃÀÛÇϸç ÀúÀåÇÒ ¶§´Â Esc¸¦ ´©¸£°í :wq¸¦ ÀÔ·ÂÇÏ¸é µÈ´Ù.

bash¿¡ ÅëÇյǾî ÀÖ´Â ÆíÁý±â¿©¼ ¸í·ÉÇàÀ» ¶°³ªÁö ¾Ê°í ÆíÁýÇÒ ¼ö
ÀÖ¾î Æí¸®ÇÏ´Ù. ±×·¯³ª ´ÜÃà۰¡ º¹ÀâÇØ ¹è¿ì±â ¾î·Á¿ì¸ç ÇÑ±Û È¯°æ°úµµ Àß ¸ÂÁö ¾Ê´Ù. ¸Þ¸ðÀåÀº °³ÇàÀÌ CR/LFÀε¥ ºñÇØ vimÀº °³ÇàÀÌ LF¸¸À¸·Î µÇ¾î ÀÖ¾î Å©±â°¡ ¾à°£ ÀÛ´Ù. ³»¿ë»óÀÇ Â÷ÀÌ´Â ¾øÁö¸¸ À©µµ¿ì ȯ°æ¿¡¼´Â °³Çà Äڵ带 ¹Ù²Ù°Ú´Ù´Â ±ÍÂúÀº °æ°í°¡ ¹ß»ýÇÒ ¼ö ÀÖ´Ù. À¢¸¸ÇÏ¸é ¼Õ¿¡ ÀÍÀº ÆíÁý±â¸¦ ¾²´Â °ÍÀÌ ¹«³ÇÏ´Ù.
¼Ò½º ³»¿ëÀº ÁÖÀΰø°ú Àû±ºÀÌ ÃѾËÀ» ÁÖ°í ¹ÞÀ¸¸ç °ÔÀÓÀ» ÁøÇàÇÏ´Â ÀýÂ÷¸¦ ±Û·Î ´ëÃæ ÀûÀº °ÍÀε¥ ½ÇÁ¦ Äڵ带 ÀÛ¼ºÇß´Ù°í
Ä¡ÀÚ. game.cpp ¼Ò½º ÆÄÀÏÀ» ¸¸µé±â¸¸ ÇßÁö ¾ÆÁ÷ ¹é¾÷ÇÏÁö´Â ¾Ê¾ÒÀ¸¹Ç·Î ¹öÀüÀº ¾Æ´Ï´Ù. ÇöÀç »óŰ¡ ¾î¶²Áö status ¸í·ÉÀ¸·Î È®ÀÎÇØ º¸ÀÚ. ¸Þ½ÃÁö°¡ ¿µ¹®À¸·Î ³ª¿À´Âµ¥´Ù Ãà¾àÀûÀ̶ó Àß Àоî¾ß ÇÑ´Ù.
soen@SoenDesk MINGW64 /c/StudyGit/game (main)
$ git status
On branch main
No commits yet
Untracked files:
(use
"git add <file>..." to include in what will be committed)
game.cpp
nothing added to commit but untracked files
present (use "git add" to track)
ÇöÀç main ºê·£Ä¡¿¡¼ ÀÛ¾÷ÁßÀÌ¸ç ¾ÆÁ÷ Ä¿¹ÔÇÒ °Ô ¾ø´Ù. ´ë½Å untracked ÆÄÀÏÀÌ Çϳª ¹ß°ßµÇ¾ú´Âµ¥ game.cpp´Â ¿öÅ·Æ®¸®¿¡´Â Á¸ÀçÇÏÁö¸¸ ±êÀÌ ÃßÀûÇϰí ÀÖÁö ¾ÊÀº »óÅÂÀÌ´Ù. °ýÈ£¾È¿¡´Â
ªÁö¸¸ ÇÙ½ÉÀûÀÎ µµ¿ò¸»ÀÌ Ç¥½ÃµÇ¾î ÀÖ´Ù.
¹é¾÷ÇÏ·Á¸é ¸ÕÀú add ¸í·ÉÀ¸·Î ½ºÅ×ÀÌÁö¿¡ ¿Ã·Á¾ß ÇÑ´Ù. add ¸í·É ÀÚü´Â º° Ãâ·ÂÀÌ ¾øÀ¸¹Ç·Î ½ÇÇà ÈÄ status·Î »óŸ¦
´Ù½Ã È®ÀÎÇØ ºÁ¾ß ÇÑ´Ù. ¹è½Ã´Â ÀÌÀü¿¡ ³»·È´ø ¸í·ÉÀ» ±â¾ïÇϰí ÀÖÀ¸¹Ç·Î À§ÂÊ È»ìÇ¥¸¦ ´·¯ git status ¸í·ÉÀ» Àç½ÇÇàÇÏ¸é µÈ´Ù.
soen@SoenDesk MINGW64 /c/StudyGit/game (main)
$ git add game.cpp
soen@SoenDesk MINGW64 /c/StudyGit/game (main)
$ git status
On branch main
No commits yet
Changes to be committed:
(use
"git rm --cached <file>..." to unstage)
new
file: game.cpp
¸Þ½ÃÁö°¡ ¾î¶»°Ô ¹Ù²î¾ú´ÂÁö º¸ÀÚ. Changes to be committed´Â
Ä¿¹ÔÇÒ º¯È°¡ »ý°å´Ù´Â ¶æÀÌ´Ù. Untracked ¿´´ø
game.cpp°¡ Ä¿¹Ô ´ë±â »óÅ·Π¹Ù²î¾ú´Ù.

ÆÄÀÏÀ» ½ºÅ×ÀÌÁö¿¡ ¿Ã¸®¸é ÀÌÈÄ ±êÀº ÀÌ ÆÄÀÏÀÇ º¯È¸¦ ÃßÀûÇϸç Ä¿¹Ô ´ë»óÀÎÀÌ ¾Æ´ÑÁö ÆÇ´ÜÇÑ´Ù. Áï, Ç×»ó »óŸ¦ ÃßÀûÇÑ´Ù.
ÆÄÀÏÀ» ½ºÅ×ÀÌÁö¿¡ ¿Ã¸®´Â °ÍÀº °ü¸® ´ë»óÀ¸·Î ÁöÁ¤ÇÑ´Ù´Â ¶æÀÌÁö ¾ÆÁ÷ ÀúÀå¼Ò·Î ¿Ã¸° °ÍÀº ¾Æ´Ï´Ù. ½ºÅ×ÀÌÁö¿¡ ÀÖ´Â ÆÄÀÏÀ» ÀúÀå¼Ò¿¡ ¿Ã¸± ¶§´Â commit ¸í·ÉÀ» »ç¿ëÇÑ´Ù. commitÀº È®Á¤À̶ó´Â ¶æÀε¥ ÇÁ·ÎÁ§Æ® Áß°£¿¡ ¹é¾÷ÀÌ ÇÊ¿äÇÒ¸¸Å ±â´ÉÀ» ¿Ï¼ºÇßÀ» ¶§ ¹öÀüÀ¸·Î È®Á¤ÇÏ¿© ÀúÀåÇ϶ó´Â
¸í·ÉÀÌ´Ù.
commit ¸í·ÉÀ» ³»¸± ¶§´Â -m
¿É¼ÇÀ¸·Î Ä¿¹Ô ³»¿ëÀ» ¼³¸íÇÏ´Â ¸Þ½ÃÁö¸¦ ÀÛ¼ºÇÑ´Ù. ÀÌ ¸ÞÁö½Ã´Â ¾î¶² º¯°æÀ» Çß´ÂÁö ¿ä¾àÀûÀ¸·Î
¼³¸íÇϴµ¥ ´Ù¸¥ °³¹ßÀÚ°¡ Âü°íÇÒ ¼ö ÀÖµµ·Ï °¡±ÞÀû »ó¼¼È÷ ºÙÀÌ´Â °ÍÀÌ ÁÁ´Ù. -m ¿É¼ÇÀ» »ý·«ÇÏ¸é ±âº»
ÆíÁý±âÀÎ ¸Þ¸ðÀåÀÌ µû·Î ¿¸®¸ç ¸Þ½ÃÁö ÀÔ·ÂÀ» ¿ä±¸ÇÑ´Ù.

¿©±â¿¡ ¸ÞÁöÁö¸¦ ÀÔ·ÂÇϰí ÀúÀå ÈÄ ´Ý¾Æ¾ß Ä¿¹ÔÀÌ ¿Ï·áµÈ´Ù. ÆíÁý±â¸¦
¿¸é ¿©·¯ ÁÙµµ µÈ ´õ »ó¼¼ÇÑ ¸Þ½ÃÁö¸¦ ³²±æ ¼ö ÀÖ´Ù. ¸Þ½ÃÁö¸¦ ÀÛ¼ºÇÏÁö ¾ÊÀ¸¸é Ä¿¹ÔÀº Ãë¼ÒµÈ´Ù. Áï, ¸Þ½ÃÁö¾øÀÌ´Â Ä¿¹ÔÇÒ ¼ö ¾øµµ·Ï µÇ¾î ÀÖ´Ù. ÆíÁý±â¸¦ ¿°í ´Ý´Â°Ô ±ÍÂúÀ¸¸é -m ¿É¼ÇÀ» ²À ºÙÀÌÀÚ.
¸Þ½ÃÁö´Â Çѱ۷εµ ÀÛ¼ºÇÒ ¼ö ÀÖ°í ±æÀÌ Á¦Çѵµ ¾ø´Ù. ±¹Á¦ÀûÀÎ ÇÁ·ÎÁ§Æ®¶ó¸é
°¡±ÞÀû ¿µ¹®À¸·Î ÀÛ¼ºÇÏ´Â°Ô ¹Ù¶÷Á÷ÇÏÁö¸¸ ½Ç½ÀÁß¿¡ ÀÏÀÏÀÌ ±×·² ¼ö´Â ¾ø°í ¿µ¾î·Î º¯°æ ³»¿ëÀ» Á¤È®È÷ ±â¼úÇϱ⵵ ¾î·Á¿ì´Ï Çѱ۷ΠÀÛ¼ºÇÏÀÚ. ¸Þ½ÃÁö´Â °ø¹éÀ̳ª Ư¼ö¹®ÀÚµµ ¾µ ¼ö ÀÖÀ¸¹Ç·Î ¹Ýµå½Ã µû¿ÈÇ¥·Î °¨½Î¾ß ÇÑ´Ù.
soen@SoenDesk MINGW64 /c/StudyGit/game (main)
$ git commit -m "ÇÁ·ÎÁ§Æ® ½ÃÀÛ"
[main (root-commit) 8b8c594] ÇÁ·ÎÁ§Æ® ½ÃÀÛ
1 file
changed, 6 insertions(+)
create
mode 100644 game.cpp
1°³ÀÇ ÆÄÀÏÀÌ ¹Ù²î¾úÀ¸¸ç 6ÁÙÀÌ
»ðÀԵǾú´Ù´Â ¶æÀÌ´Ù. game.cpp°¡ µåµð¾î ½ºÅ×ÀÌÁö¿¡ ¿Ã¶ó°¡°í ÀúÀå¼Ò¿¡µµ ¹é¾÷µÇ¾î ù ¹öÀüÀÌ µÇ¾ú´Ù.

ÆÄÀÏÀ» ¸¸µé¾î ½ºÅ×ÀÌÁö¿¡ µî·ÏÇϰí Ä¿¹Ô±îÁö ÇßÀ¸´Ï ÇöÀç´Â ¿öÅ·Æ®¸®, ½ºÅ×ÀÌÁö, ÀúÀå¼ÒÀÇ »óŰ¡ ¸ðµÎ °°´Ù. °ú¿¬ ±×·±Áö »óŸ¦ È®ÀÎÇØ º¸ÀÚ.
$ git status
On branch main
nothing to commit, working tree clean
´õ ÀÌ»ó Ä¿¹ÔÇÒ°Ô ¾øÀ¸¸ç ¿öÅ·Æ®¸®´Â ±ú²ýÇÏ´Ù. Áï, game.cpp´Â ÀúÀå¼Ò¿¡ ¹é¾÷µÈ °Í°ú ¿ÏÀüÈ÷ °°Àº »óÅ·Πº¯È°¡ ¾ø´Ù´Â ¶æÀÌ´Ù. ´ÙÀ½Àº ÀúÀå¼Ò¿¡ Ä¿¹ÔÇØ ³õÀº ¸ñ·ÏÀ» È®ÀÎÇØ º¸ÀÚ. À̶§´Â log ¸í·ÉÀ» »ç¿ëÇÑ´Ù.
$ git log
commit 8b8c594f3b8c8a6b78da50924e8a78fe340f2f81
(HEAD -> main)
Author: soen <soenmaster@naver.com>
Date:
Sun Oct 27 02:27:51 2024 +0900
ÇÁ·ÎÁ§Æ® ½ÃÀÛ
Ä¿¹Ô Çϳª¿¡ ´ëÇÑ Á¤º¸¸¦ Ä¿¹Ô ·Î±×¶ó°í Çϴµ¥ Áö±ÝÀº Çϳª¹Û¿¡ ¾øÁö¸¸ ÇÁ·ÎÁ§Æ®°¡ ÁøÇàµÇ¸é Á¡Á¡ ½×¿©°¥ °ÍÀÌ´Ù. ÀÌ ¸Þ½ÃÁö´Â Àб⠾î·Á¿îµ¥ Á¤È®ÇÑ ¶æÀ» ´Ù ÀÌÇØÇØ¾ß ÇÑ´Ù. ù ÁÙºÎÅÍ
Â÷·Ê´ë·Î ¾Ë¾Æº¸ÀÚ.
¢ºÄ¿¹Ô ÇØ½Ã : Ä¿¹Ô µ¿ÀÛ¿¡ ´ëÇÑ À¯ÀÏÇÑ IDÀÌ¸ç ½ÇÁ¦ ¼ýÀÚ´Â ¸Å¹ø ´Þ¶óÁø´Ù. 8b8c594... À¸·Î ½ÃÀÛÇÏ´Â 16Áø¼ö 40ÀÚ¸®·Î Ç¥±âÇÑ´Ù. ¹«·Á 20¹ÙÀÌÆ®(=160ºñÆ®)³ª
µÇ´Â ¹«Áö¸·ÁöÇÏ°Ô Å« ¼öÀ̸ç Àü¼¼°è¿¡¼ ¼ö¸¸¸íÀÇ °³¹ßÀÚ°¡ ¼ö½Ã·Î Ä¿¹ÔÇØµµ Àý´ë Áߺ¹µÇÁö ¾Ê´Â ¼öÀÌ´Ù. ³Ê¹«
±æ¾î ºÒÆíÇѵ¥ ½ÇÁ¦·Î ¾µ ¶§´Â 7ÀÚ¸®±îÁö¸¸ ¾²¸é µÈ´Ù.
¢º HEAD : Çìµå´Â ÇöÀç ¼öÁ¤ÁßÀÎ ¹öÀüÀ̶ó´Â ¶æÀε¥ ÇÁ·ÎÁ§Æ® ¼öÇà
È帧»óÀÇ Ä¿¼¶ó°í »ý°¢ÇÏ¸é µÈ´Ù. HEAD -> mainÀº ÇöÀç ¸ÞÀÎÀÇ ÃÖ»ó´Ü¿¡¼ ÀÛ¾÷ÁßÀ̶ó´Â
¶æÀÌ´Ù. ³ªÁß¿¡ ºê·£Ä¡°¡ »ý±â¸é ¾îµð¿¡¼ ÀÛ¾÷ÁßÀÎÁö Çò°¥¸± ¼ö ÀÖ¾î ÀÛ¾÷ À§Ä¡¸¦ º¸¿©ÁØ´Ù.
¢º Author : ´©°¡ º¯°æÇß´ÂÁö Ç¥±âÇÑ´Ù. ÀÌ Á¤º¸¸¦ ±â·ÏÇϱâ À§ÇØ Ãʱ⿡ »ç¿ëÀÚ µî·ÏÀ» ÇÑ °ÍÀÌ´Ù. À̸§°ú
¸ÞÀÏ ÁÖ¼Ò°¡ °°ÀÌ Ç¥±âµÈ´Ù. ¿©·¯ »ç¶÷ÀÌ Âü¿©ÇÏ´Â ÇÁ·ÎÁ§Æ®¶ó¸é À̸¦ º¸°í Ä¿¹ÔÇÑ »ç¶÷¿¡°Ô ¸Þ½ÃÁö¸¦ º¸³»°Å³ª
±Ã±ÝÇÑ »çÇ×À» Áú¹®ÇÒ ¼ö ÀÖ´Ù.
¢ºDate : º¯°æÇÑ ½Ã°£ÀÌ´Ù. Áö¿ª
½Ã°£À¸·Î Ç¥½ÃµÇ¸ç ¿ì¸®³ª¶ó ½Ã°£Àº GMT¿¡¼ 9½Ã°£ ´õ »¡¶ó
ÀÌ Á¤º¸µµ °°ÀÌ Ç¥±âÇÑ´Ù. ±¹Á¦ÀûÀÎ ÇÁ·ÎÁ§Æ®¿¡¼´Â Áö¿ª±îÁö ¾Ë¾Æ¾ß Á¤È®ÇÑ ½Ã°£À» ¾Ë ¼ö ÀÖ´Ù.
¢º¸Þ½ÃÁö : ÀÌ Ä¿¹Ô¿¡¼ ¾î¶² µ¿ÀÛÀ» Çß´ÂÁö °³¹ßÀÚ°¡ ³²±ä ¸Þ½ÃÁö¸¦
º¸¿© ÁØ´Ù. ¼Ò½º¸¦ ÀÏÀÏÀÌ º¸Áö ¾Ê¾Æµµ ¸Þ½ÃÁö¸¦ º¸¸é º¯°æ »çÇ×À» ´ëÃæ ¾Ë ¼ö ÀÖ´Ù. ±×·¡¼ Ä¿¹Ô ¸Þ½ÃÁö¸¦ »ó¼¼ÇÏ°Ô ÀÛ¼ºÇØ¾ß ÇÑ´Ù.
ºñ·Ï ¼Ò½º´Â Çϳª¹Û¿¡ ¾øÁö¸¸ ÇÁ·ÎÁ§Æ® Àüü¸¦ ÀúÀå¼Ò¿¡ ¾ÈÀüÇÏ°Ô ¹öÀüÀ¸·Î ¸¸µé¾î µÎ¾úÀ¸¹Ç·Î ÀÌÁ¦ ¿öÅ·Æ®¸®°¡ ¾îÂîµÇ¾îµµ
»ó°ü¾ø´Ù. ¾ðÁ¦µçÁö ÀúÀå¼Ò¿¡ º¸°üÇØµÐ ¹öÀüÀ» ´Ù½Ã °¡Á®¿À°Å³ª ¿ø»ó º¹±¸ÇÒ ¼ö ÀÖ´Ù.
°ÔÀÓÀÇ Ã¹ ¹öÀüÀ» ¸¸µé¾î Ä¿¹Ô±îÁö ¿Ï·áÇß´Ù. ÀÌÁ¦ ±â´ÉÀ» °è¼Ó È®ÀåÇØ
º¸ÀÚ. ÇöÀç ¼Ò½º´Â ÁÖÀΰøÀÌ µü Çϳª¸¸ ³ª¿À°í Á×À¸¸é ³¡³ª ¹ö¸°´Ù. ÀÌ·¯¸é
³Ê¹« ½Ã½ÃÇѵ¥ 3¹ø Á¤µµ´Â ±âȸ¸¦ Áà¾ß ÇÑ´Ù. for ·çÇÁ·Î
°¨½Î ÁÖÀΰø 3´ë°¡ Á×À» ¶§±îÁö °ÔÀÓÀ» ¹Ýº¹ÇÑ´Ù.
¼Ò°³ ȸé Ç¥½ÃÇϰí Ű ´©¸¦ ¶§±îÁö ´ë±â
for (1~3) {
while
(Á×À» ¶§±îÁö) {
ÁÖÀΰø
À̵¿
Àû±º
À̵¿
ÃѾË
¹ß»ç ¹× Ãæµ¹ Á¡°Ë
}
}
½ÇÁ¦·Î´Â ÁÖÀΰøÀÌ ÆøÆÄµÇ´Â ±×·¡ÇÈ Ã³¸®¿Í ½Ç°¨³ª´Â »ç¿îµåµµ ³ª¿Í¾ß ÇÏÁö¸¸ ¹Ýº¹¸¸ Çϵµ·Ï Çß´Ù. Áß¿äÇÑ º¯È°¡ »ý°åÀ¸¹Ç·Î ¹öÀüÀ¸·Î Ä¿¹ÔÇÏÀÚ. ÀÌ ÆÄÀÏÀ» ÀúÀåÇϸé
¿öÅ·Æ®¸®ÀÇ ¼Ò½º´Â ¹Ù²î°í ½ºÅ×ÀÌÁö¿Í ÀúÀå¼ÒÀÇ ¼Ò½º´Â ÀÌÀü »óÅ ±×´ë·ÎÀÌ´Ù.

¿öÅ·Æ®¸®ÀÇ game.cpp¸¦ ¼öÁ¤Çߴµ¥ ½ºÅ×ÀÌÁöÀÇ game.cpp´Â ¼öÁ¤ÇÑ ÀÌÀü ¹öÀüÀÌ´Ù. µû¶ó¼ add ¸í·ÉÀ¸·Î ½ºÅ×ÀÌÁö¿¡ ¸ÕÀú ¿Ã¸° ÈÄ ÀúÀå¼Ò·Î Ä¿¹ÔÇØ¾ß ÇÑ´Ù. ¿øÄ¢ÀûÀ¸·Î´Â
´ÙÀ½ µÎ ¸í·ÉÀ» ¼øÂ÷ÀûÀ¸·Î ³»·Á¾ß ÇÑ´Ù.
$ git add game.cpp
$ git commit -m "ÁÖÀΰø 3´ë·Î ´Ã¸²"
add¿¡ ÀÇÇØ ¿öÅ·Æ®¸®ÀÇ ¼Ò½º°¡ ½ºÅ×ÀÌÁö·Î º¹»çµÇ°í commit¿¡ ÀÇÇØ ½ºÅ×ÀÌÁöÀÇ ¼Ò½º°¡ ÀúÀå¼Ò·Î ¿Ã¶ó°£´Ù. ¼Ò½º¸¦ ¼öÁ¤ÇÒ
¶§¸¶´Ù ¸Å¹ø µÎ ¸í·ÉÀ» ¹Ýº¹ÇÏ´Â °ÍÀº ³Ê¹« ±ÍÂúÀº ÀÏÀÌ´Ù. ±×·¡¼ µÎ ¸í·ÉÀ» Çϳª·Î ÇÕÃÄ Ä¿¹ÔÇÏ´Â ¹æ¹ýÀ»
Á¦°øÇÑ´Ù.
$ git commit -am "ÁÖÀΰø 3´ë·Î ´Ã¸²"
[main 7a9c088] ÁÖÀΰø 3´ë·Î
´Ã¸²
1 file
changed, 6 insertions(+), 4 deletions(-)
commitÀÇ -am ¿É¼ÇÀº add ¸ÕÀú ÇÑ ÈÄ message ³»¿ëÀ¸·Î Ä¿¹ÔÇÑ´Ù. ¾îÂ÷ÇÇ ½ºÅ×ÀÌÁö¸¦ °æÀ¯ÇØ¾ß Ä¿¹ÔÇÒ ¼ö ÀÖÀ¸¹Ç·Î µÎ µ¿ÀÛÀ» ÇѲ¨¹ø¿¡ ¼öÇàÇÏ´Â °ÍÀÌ Æí¸®ÇÏ´Ù. ´Ü, ÀÌ ¸í·ÉÀº ½ºÅ×ÀÌÁö¿¡ ÀÌ¹Ì ¿Ã¸° ÆÄÀÏ¿¡ ´ëÇØ¼¸¸ ¾µ ¼ö ÀÖÀ¸¸ç
»õ·Î ¸¸µç ÆÄÀÏ¿¡´Â Àû¿ëÇÒ ¼ö ¾ø´Ù. ¹ÌÃßÀû »óÅÂÀÇ ÆÄÀÏÀº ÀÏ´Ü
add¸¦ ¸ÕÀú ÇØ¾ß ÇÑ´Ù.
ÆÄÀÏ Çϳª°¡ º¯°æµÇ¾ú°í 7ÁÙ »ðÀÔÇϰí 6ÁÙÀ» »èÁ¦Çß´Ù°í º¸°íÇÑ´Ù. ½ÇÁ¦ º¯Èº¸´Ù´Â ´Ù¼Ò °úÀåµÇ°Ô Æò°¡Çϴµ¥
µé¿©¾²±â¸¦ ¼öÁ¤ÇÑ °Íµµ ¹Ù²Û °ÍÀ¸·Î º¸±â ¶§¹®ÀÌ´Ù. Ä¿¹Ô±îÁö ÇѲ¨¹ø¿¡ ´Ù ÇØ ¹ö·ÈÀ¸´Ï status¸¦ Âï¾î º¸¸é ´õ ÇÒ°Ô ¾ø´Ù°í ³ªÅ¸³´Ù. ·Î±×¿¡´Â ¾î¶»°Ô
±â·ÏµÇ¾î ÀÖ´ÂÁö Ãâ·ÂÇØ º¸ÀÚ.
$ git log
commit 7a9c088d2b57d0b86eefffda86baeca7f11d4374
(HEAD -> main)
Author: soen <soenmaster@naver.com>
Date:
Sun Oct 27 02:32:00 2024 +0900
ÁÖÀΰø 3´ë·Î ´Ã¸²
commit 8b8c594f3b8c8a6b78da50924e8a78fe340f2f81
Author: soen <soenmaster@naver.com>
Date:
Sun Oct 27 02:27:51 2024 +0900
ÇÁ·ÎÁ§Æ® ½ÃÀÛ
Ä¿¹Ô ·Î±×°¡ Çϳª ´õ ´Ã¾î³µ´Ù. ·Î±×´Â Ãß°¡ÇÑ ¿ª¼øÀ¸·Î Ç¥½ÃÇϸç ȸé»óÀÇ
Á¦ÀÏ À§¿¡ ÀÖ´Â ·Î±×°¡ °¡Àå ÃÖ±Ù¿¡ ½ÇÇàÇÑ Ä¿¹ÔÀÌ´Ù. ¾ÕÀ¸·Î °è¼Ó ´Ã¾î³¯ °ÍÀÌ´Ù.
°ÔÀÓÀº ¸ð¸§Áö±â ¼Ò¸®°¡ ³ª¾ß Àç¹ÌÀÖ´Ù. ÀÌÁ¦ »ç¿îµå ±â´ÉÀ» Ãß°¡ÇØ
º¸ÀÚ. »ç¿îµå´Â º°µµÀÇ ±â´ÉÀ̹ǷΠ¸ÞÀÎ ¸ðµâ¿¡¼ Á÷Á¢ ÇÏ´Â °Íº¸´Ù´Â
sound.cpp ¼Ò½º¸¦ µû·Î ¸¸µå´Â °ÍÀÌ ÁÁ´Ù. ¸Þ¸ðÀåÀ¸·Î »õ ÆÄÀÏÀ» ¸¸µé°í ´ÙÀ½ ¼Ò½º¸¦
ÀÛ¼ºÇÑ´Ù.

¹è°æ À½¾ÇÀ» Àç»ýÇÏ´Â ÇÔ¼ö¿Í È¿°úÀ½À» ³»´Â ÇÔ¼ö¸¦ ¸¸µé¾ú´Ù. °ÔÀÓ¿¡¼´Â
ÀûÀýÇÑ ½ÃÁ¡¿¡ ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ¼Ò¸®¸¦ Ãâ·ÂÇÏ¸é µÈ´Ù. game.cpp¿¡ »ç¿îµå¸¦ Àç»ýÇÏ´Â Äڵ带 ÀÛ¼ºÇÑ´Ù.
¼Ò°³ ȸé Ç¥½ÃÇϰí Ű ´©¸¦ ¶§±îÁö ´ë±â
for (1~3) {
¹è°æÀ½¾Ç
Àç»ý ½ÃÀÛ
while
(Á×À» ¶§±îÁö) {
ÁÖÀΰø
À̵¿
Àû±º
À̵¿
ÃѾË
¹ß»ç ¹× Ãæµ¹ Á¡°Ë
Àû±º
Á×À¸¸é È¿°úÀ½
}
¹è°æÀ½¾Ç
Àç»ý Á¤Áö
}
»õ ¸ðµâ¿¡ ÇÊ¿äÇÑ ÇÔ¼ö¸¦ ÀÛ¼ºÇÏ°í ¸ÞÀο¡¼ ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ¿øÇÏ´Â ÀÛ¾÷À» ¼öÇàÇÏ´Â ¿¹ÀÌ´Ù. ±â´ÉÀ» Ãß°¡ÇÒ ¶§¸¶´Ù ¼Ò½º ÆÄÀϵµ °è¼Ó ´Ã¾î³´Ù. ¿©±â±îÁö ÀÛ¾÷ÇÑ
ÈÄ »óŸ¦ Ãâ·ÂÇØ º¸ÀÚ.
$ git status
On branch main
Changes not staged for commit:
(use
"git add <file>..." to update what will be committed)
(use
"git restore <file>..." to discard changes in working
directory)
modified: game.cpp
Untracked files:
(use
"git add <file>..." to include in what will be committed)
sound.cpp
no changes added to commit (use "git
add" and/or "git commit -a")
game.cpp´Â ¿öÅ·Æ®¸®¿¡¼ ¼öÁ¤ÇßÁö¸¸ ¾ÆÁ÷ ½ºÅ×ÀÌÁö¿¡´Â ¿Ã¸®Áö
¾Ê¾Æ Ä¿¹Ô Áغñ°¡ ¾ÈµÈ »óÅÂÀÌ´Ù. sound.cpp´Â »õ·Î ¸¸µç ÆÄÀÏÀ̶ó ¹ÌÃßÀû »óÅÂÀÌ´Ù. ÀÌ µÑÀ» Ä¿¹ÔÇÏ·Á¸é ¸ÕÀú ½ºÅ×ÀÌÁö¿¡ ¿Ã·Á¾ß ÇÑ´Ù.
$ git add game.cpp sound.cpp
add ¸í·ÉÀÇ Àμö·Î ½ºÅ×ÀÌÁö·Î ¿Ã¸± ÆÄÀÏÀ» ³ª¿ÇÑ´Ù. ¿øÇÏ´Â ÆÄÀϸ¸ ¼±º°ÀûÀ¸·Î ÁöÁ¤ÇÒ ¼ö ÀÖÁö¸¸ °³¼ö°¡ ¸¹À¸¸é ÀÏÀÏÀÌ Àû´À¶ó ºÒÆíÇÏ´Ù. ÀÌ·² ¶§´Â git add . ¸í·ÉÀ¸·Î ÇöÀç µð·ºÅ丮ÀÇ ¸ðµç ÆÄÀÏÀ»
ÁöÁ¤ÇÏ¸é µÈ´Ù. µÎ ÆÄÀÏÀ» ½ºÅ×ÀÌÁö·Î ¿Ã¸®°í »óŸ¦ È®ÀÎÇØ º¸ÀÚ.
$ git add .
soen@SoenDesk MINGW64 /c/StudyGit/game (main)
$ git status
On branch main
Changes to be committed:
(use
"git restore --staged <file>..." to unstage)
modified: game.cpp
new
file: sound.cpp
Áö±ÝÀº ¼Ò½º ÆÄÀÏÀÌ 2°³ ¹Û¿¡ ¾øÀ¸´Ï °³º° ÆÄÀÏÀ» ¿Ã¸®³ª µð·ºÅ丮¸¦
Åë°·Î ¿Ã¸®³ª È¿°ú´Â °°´Ù. ±×·¯³ª ´Ù¸¥ ÆÄÀÏÀÌ ´õ ÀÖ°í ¼öÁ¤ÇÑ ÆÄÀÏÀÇ ÀϺθ¸ ¿Ã¸°´Ù¸é ÀÌ µÑÀº ´Þ¶óÁö´Ï
°¡±ÞÀûÀÌ¸é ÆÄÀϸíÀ» ±¸Ã¼ÀûÀ¸·Î ¸í½ÃÇÏ´Â°Ô ¾ÈÀüÇÏ´Ù.
game.cpp´Â ³»¿ëÀÌ ¼öÁ¤µÇ¾ú°í sound.cpp´Â »õ·Î ¸¸µç ÆÄÀϷΠǥ½ÃµÇ¾î ÀÖÀ¸¸ç µÑ ´Ù ½ºÅ×ÀÌÁö¿¡ ¿Ã·ÈÀ¸¹Ç·Î Ä¿¹ÔÇÒ ¼ö ÀÖ´Â »óÅÂÀÌ´Ù. Ä¿¹ÔÇØ º¸ÀÚ. À̶§´Â -am ¿É¼ÇÀ»
ÁÙ ÇÊ¿ä´Â ¾ø°í -mÀ¸·Î ¸Þ½ÃÁö¸¸ Àü´ÞÇÏ¸é µÈ´Ù.
$ git commit -m "¹è°æÀ½¾Ç ¹× È¿°úÀ½ Ãß°¡"
[main eb4622b] ¹è°æÀ½¾Ç ¹× È¿°úÀ½ Ãß°¡
2
files changed, 10 insertions(+)
create
mode 100644 sound.cpp
2°³ÀÇ ÆÄÀÏÀÌ ¹Ù²î¾úÀ¸¸ç 10ÁÙÀ»
Ãß°¡Çß´Ù. ·Î±×¸¦ Âï¾î º¸¸é ¹æ±Ý Ä¿¹ÔÇÑ °Í±îÁö 3°³ÀÇ Ä¿¹Ô
·Î±×°¡ ³ªÅ¸³´Ù.
$ git log
commit eb4622bb171021f99e1188f538ca0f117aedb6ca
(HEAD -> main)
Author: soen <soenmaster@naver.com>
Date:
Sun Oct 27 03:03:08 2024 +0900
¹è°æÀ½¾Ç ¹× È¿°úÀ½ Ãß°¡
...
Ä¿¹Ô ·Î±×ÀÇ ¸Þ½ÃÁö´Â ´©°¡ ¾î¶² ÀÛ¾÷À» Çß´ÂÁö¸¦ ¿ä¾àÀûÀ¸·Î º¸¿©ÁÖ¸ç ÀÌ ·Î±×¸¦ ÅëÇØ »ç¿îµå ±â´ÉÀ» Ãß°¡ÇßÀ½À»
¾Ë ¼ö ÀÖ´Ù. ±×·¯³ª ¾î¶² ÆÄÀÏÀ» ¹Ù²å´ÂÁö´Â Ç¥½ÃÇÏÁö ¾Ê´Âµ¥ ¿Ö³ÄÇϸé Çѹø¿¡ ¼ö½Ê°³ÀÇ ÆÄÀÏÀ» ¹Ù²Ü ¶§
ÀÏÀÏÀÌ Ç¥½ÃÇÏÀÚ¸é ÇÙ½É º¯°æ ³»¿ëÀÌ Àß º¸ÀÌÁö ¾Ê±â ¶§¹®ÀÌ´Ù.
´õ »ó¼¼ÇÑ º¯°æ »çÇ×À» ¾Ë°í ½Í´Ù¸é --stat ¿É¼ÇÀ» »ç¿ëÇÑ´Ù. ¾î¶² ÆÄÀÏÀ» ¾î¶»°Ô ¹Ù²Ù¾ú´ÂÁö±îÁö ´Ù º¸¿© ÁÖ¾î »ó¼¼ÇÏÁö¸¸ ´ë½Å ¸ñ·ÏÀÌ ±æ¾îÁö´Â ºÒÆíÇÔÀÌ ÀÖ´Ù. °íÀÛ ¼¼¹ø Ä¿¹ÔÇߴµ¥µµ ¾çÀÌ ±²ÀåÀÌ ¸¹´Ù.
$ git log --stat
commit eb4622bb171021f99e1188f538ca0f117aedb6ca
(HEAD -> main)
Author: soen <soenmaster@naver.com>
Date:
Sun Oct 27 03:03:08 2024 +0900
¹è°æÀ½¾Ç ¹× È¿°úÀ½ Ãß°¡
game.cpp | 3 +++
sound.cpp | 7 +++++++
2
files changed, 10 insertions(+)
commit 7a9c088d2b57d0b86eefffda86baeca7f11d4374
Author: soen <soenmaster@naver.com>
Date:
Sun Oct 27 02:32:00 2024 +0900
ÁÖÀΰø 3´ë·Î ´Ã¸²
game.cpp | 10 ++++++----
1 file
changed, 6 insertions(+), 4 deletions(-)
commit 8b8c594f3b8c8a6b78da50924e8a78fe340f2f81
Author: soen <soenmaster@naver.com>
Date:
Sun Oct 27 02:27:51 2024 +0900
ÇÁ·ÎÁ§Æ® ½ÃÀÛ
game.cpp | 6 ++++++
1 file
changed, 6 insertions(+)
¸ñ·ÏÀÌ ÀÌ·¸°Ô ±æ¾îÁö¸é ÇÑ È¸é¿¡ ´Ù Ç¥½ÃÇÏÁö ¸øÇÏ°í ½ºÅ©·ÑÇØ °¡¸ç ºÁ¾ß ÇÑ´Ù.
¾Æ·¡, À§ Ä¿¼Å°³ª PgUp, PgDn Ű·Î
¿À¸£¶ô ³»¸®¶ô ÇÒ ¼ö ÀÖ´Ù. ¹è½Ã¿¡ Àͼ÷ÇÏÁö ¾ÊÀº »ç¶÷Àº ½ºÅ©·Ñ ¸ðµå¸¦ ºüÁ® ³ª¿ÀÁö ¸øÇØ ´çÈ²ÇØ Çϴµ¥ Q۸¦ ´©¸£¸é µÈ´Ù.
·Î±×°¡ ³Ê¹« ±æ¸é È®½ÇÈ÷ º¸±â ºÒÆíÇØÁö¸ç ÇѲ¨¹ø¿¡ ¼ö½Ê °³ÀÇ ÆÄÀÏÀ» ¼öÁ¤Çß´Ù¸é ÁöÀúºÐÇϱâ±îÁö ÇÏ´Ù. ÀÌ·² ¶§´Â --oneline ¿É¼ÇÀ¸·Î ·Î±×´ç ÇÑÁÙ¾¿¸¸ Ç¥½ÃÇϵµ·Ï
ÇÑ´Ù. ÀÛ¾÷ÀÚ¿Í ½Ã°£ µîÀº »ó¼¼È÷ ¾Ë ¼ö ¾øÁö¸¸ ÀüüÀûÀÎ È帧Àº °£·«È÷ »ìÆìº¼ ¼ö ÀÖ´Ù.
$ git log --oneline
eb4622b (HEAD -> main) ¹è°æÀ½¾Ç ¹× È¿°úÀ½ Ãß°¡
7a9c088 ÁÖÀΰø 3´ë·Î ´Ã¸²
8b8c594 ÇÁ·ÎÁ§Æ® ½ÃÀÛ
7ÀÚ¸®ÀÇ ÂªÀº Ä¿¹ÔÇØ½Ã¿Í ¸Þ½ÃÁö¸¸ Ç¥½ÃÇÑ´Ù. ½Ã°£¼øÀ¸·Î ¾î¶² ÀÛ¾÷À» ÁøÇàÇß´ÂÁö ¿ä¾àÀûÀ¸·Î ÆÄ¾ÇÇÒ ¼ö ÀÖ´Ù. ·Î±×°¡
¸¹ÀÌ ½×¿© ÀÖ´Â ÇÁ·ÎÁ§Æ®´Â ±¸Ã¼ÀûÀÎ º¯°æ ³»¿ëº¸´Ù´Â Ä¿¹ÔÇÑ »ç¶÷ÀÌ ³²°Ü ³õÀº ¸Þ½ÃÁö·Î ÁøÇà »óȲÀ» ÆÄ¾ÇÇÏ´Â °ÍÀÌ ´õ ºü¸£´Ù.