¾ÆÁ÷ ÇÁ·ÎÁ§Æ®¸¦ ¸¹ÀÌ ÁøÇàÇÏÁö´Â ¾Ê¾ÒÁö¸¸ ¹öÀü °ü¸® ÀÌ·ÂÀÌ ½×À̱⠽ÃÀÛÇß´Ù. ±êÀÌ
ÀÏÀ» Àß Çϰí ÀÖ´ÂÁö .git Æú´õ¸¦ µé¿©´Ù º¸¸é Ãʱâȶ§ 20K¿´´ø
°ÍÀÌ 28K·Î ¾à°£ ´Ã¾î³µ´Ù. ÀÌ ¾È¿¡ ÁÖÀΰø ´Ã¸®±â ÀüÈÄÀÇ ¼Ò½º, »ç¿îµå Ãß°¡ ÀüÈÄÀÇ ¼Ò½º µîÀÌ ¸ðµÎ µé¾î ÀÖ´Ù. ¼Ò½º¸¸ ¼ÒÆø ¼öÁ¤Çؼ
¸¹ÀÌ ´Ã¾î³ªÁö ¾Ê¾ÒÁö¸¸ ¾ÕÀ¸·Î´Â ´õ ±Þ°ÝÇÏ°Ô ´Ã¾î³¯ °ÍÀÌ´Ù.
ÀÌÈÄ ¸î °¡Áö Ä¿¹ÔÀ» ´õ ÇØ º¸°í ¹öÀü³¢¸® ºñ±³, Ãë¼Ò, ¼öÁ¤ÇÏ´Â ´Ù¾çÇÑ ½Ç½À±îÁö ÇØ º¼ °ÍÀÌ´Ù. ÀÌ·± ½Ç½ÀÀÌ ¿øÈ°ÇÏ·Á¸é
Á¤È®È÷ ¾Õ ´Ü°è¿Í °°ÀÌ ¸¸µé¾î¾ß Çϴµ¥ ÀÌ°Ô ¹ø°Å·Ó´Ù. ½Ç½À ÁßÀÌ´Ï ´ç¿¬È÷ ½Ç¼öÇÒ ¼ö ÀÖ°í ¼º°øÇß´õ¶óµµ
°°Àº ½Ç½ÀÀ» ¿©·¯¹ø ¹Ýº¹ÇØ º¼ Çʿ䵵 ÀÖ´Ù. ÇнÀÀÇ ±âº»Àº ¹Ýº¹ ½Ç½ÀÀÌ´Ù. ±×·±µ¥ Çѹø Ä¿¹ÔÇϸé Ãë¼ÒÇÏ´õ¶óµµ Àü »óÅÂ¿Í ¿ÏÀüÈ÷ °°Áö´Â ¾Ê¾Æ ÃʱâȺÎÅÍ ´Ù½Ã ½Ç½ÀÇØ ¿Í¾ß ÇÑ´Ù.
¿öÅ·Æ®¸®¸¦ ƯÁ¤ »óÅ´ë·Î º¸Á¸ÇØ µÎ·Á¸é µû·Î »çº»À» ¶° µÎ´Â °ÍÀÌ °£ÆíÇÏ´Ù. ±êÀº
¿öÅ·Æ®¸®³»ÀÇ ¼Ò½º¸¦ °ü¸®ÇÒ »Ó Æú´õ ÀÚü¸¦ °ü¸®ÇÏÁö´Â ¾ÊÀ¸´Ï À̶§´Â ÀüÅëÀûÀÎ º¹»ç ¹æ¹ýÀ» »ç¿ëÇØ¾ß ÇÑ´Ù. game
Æú´õ´Â ¿ë·®ÀÌ ÀÛ¾Æ ±»ÀÌ ¾ÐÃàÇÒ ÇÊ¿ä´Â ¾ø°í game_bak(¶Ç´Â game-º¹»çº»)À¸·Î »çº» Æú´õ¸¦ ¸¸µç´Ù.
Çö »óÅ ±×´ë·Î ¹ÚÁ¦¸¦ ¶° µÎ´Â ÀÛÀüÀÌ´Ù. ½Ç½ÀÀ» À߸øÇ߰ųª ÀÌÀü
´Ü°è¸¦ Çѹø ´õ ¹Ýº¹ÇÏ°í ½ÍÀ¸¸é game Æú´õ ¾ÈÂÊÀ» ¿ÏÀüÈ÷ Áö¿ì°í game_bak
Æú´õ¸¦ º¹»çÇÑ ÈÄ ´Ù½Ã ½Ç½ÀÇÏ¸é µÈ´Ù. À̶§ ¼û°ÜÁø Æú´õÀÎ .git¾È¿¡ Áß¿äÇÑ Á¤º¸°¡ ´Ù µé¾î ÀÖÀ¸¹Ç·Î ¹Ýµå½Ã °°ÀÌ º¹»çÇØ¾ß ÇÑ´Ù. ÀÌ
ÀÛÀüÀÌ Àß ÅëÇÏ´ÂÁö Å×½ºÆ®ÇØ º¸ÀÚ. sound.cpp ÆÄÀÏÀ» ¸¶À½´ë·Î ÆíÁýÇÏ¿© ¾û¸ÁÀ¸·Î ¸¸µé¾î º»´Ù.
¹è°æÀ½¾ÇÀç»ý() {
µ¿Çع°°ú
¹éµÎ»êÀÌ ¸¶¸£°í ´âµµ·Ï...
}
È¿°úÀ½Àç»ý() {
¾â¸®¾â¶ó
¾â¶ó¼Í ¾â¶ó¸® ¾â¶ó.
}
ÀÌ·¡ ³õ°í git commit -am "¼¼»óÀº ¿äÁö°æ"À¸·Î Ä¿¹ÔÇÑ´Ù. ¼Ò½º ¼öÁ¤ ÈÄ Ä¿¹ÔÇßÀ¸´Ï ´ç¿¬È÷ ÀúÀå¼Ò¿¡
±â·ÏÇϰí Ä¿¹Ô ·Î±×µµ Ãß°¡ÇÑ´Ù. ¿ä°É °³ÆÇÄ¡±â ÀüÀÇ »óÅ·ΠµÇµ¹¸®°í ½ÍÀ¸¸é game_bak Æú´õ¸¦ Åë°·Î game Æú´õ·Î º¹»çÇØ ³ÖÀ¸¸é µÈ´Ù.

¿ø»ó º¹±¸ ÈÄ ·Î±×¸¦ Ãâ·ÂÇØ º¸¸é ÀÌÀü »óÅ·Π±ò²ûÇÏ°Ô µ¹¾Æ¿Í ÀÖÀ¸¸ç
"¼¼»óÀº ¿äÁö°æ" ·Î±×´Â º¸ÀÌÁö ¾Ê´Â´Ù.
¼ÕÀÌ Á» °¡Áö¸¸ ÀüÅëÀûÀÌ°í »ó½ÄÀûÀÎ ¹æ¹ýÀ̶ó ÀÌÇØÇϱ⠽±´Ù. ½Ç½À ´Ü°èº°·Î ¹é¾÷À» ¶° µÎ°í
½ÍÀ¸¸é game_1, game_2 ½ÄÀ¸·Î ¹øÈ£¸¦ ºÙ¿© µÎ°í µ¹¾Æ°¡°í ½ÍÀº ´Ü°è·Î º¹±¸ÇÑ ÈÄ ½Ç½ÀÀ» ¹Ýº¹Çϸé
µÈ´Ù.
½Ç¹«¿¡¼´Â ±êÀÌ ¼Ò½º¸¦ Àß °ü¸®ÇØ ÁֹǷΠÀÌ·± ¼öµ¿ ¹é¾÷ ¹æ¹ýÀ» ¾µ ÇÊ¿ä´Â ¾ø´Ù. ±×·¯³ª Çö»óÅ ±×´ë·Î ÀÛ¾÷·Î±×±îÁö "¾óÀ½" »óÅ·Π¹é¾÷ÇØ µÎ°í ½Í´Ù¸é ¿öÅ·Æ®¸® ÀÚü¸¦ »çº»À¸·Î ¶° µÎ¸é µÈ´Ù.
±ê ÀÚü¸¦ ½Ç½ÀÇÒ ¶§, ƯÈ÷ ºê·£Ä¡Ã³·³ »óȲÀ» ÀǵµÀûÀ¸·Î ¸¸µé¾î È¿°ú¸¦ »ìÆìº¼ ¶§´Â ÀÌ
¹æ¹ýÀÌ ÀǿܷΠȿÀ²ÀûÀÌ´Ù.
¼¼¹ø ¼öÁ¤ÇÏ¿© Ä¿¹ÔÇß°í ¿öÅ·Æ®¸®´Â ±ú²ýÇÑ »óÅÂÀÌ´Ù. À̹ø¿¡´Â ¼Ò½º¸¦
¼öÁ¤ÇÑ ÈÄ ÀÌÀü ¹öÀü°ú ºñ±³ÇÏ´Â ½Ç½ÀÀ» ÇØ º¸ÀÚ. ÀÜìÀ̸¸ ³ª¿À´Ï °ÔÀÓÀÌ ´ÜÁ¶·Î¿î °¨ÀÌ Àִµ¥ °¡²û
¹«½Ã¹«½ÃÇÑ ´ëÀåÀÌ ³ª¿Í ·¹ÀÌÀú¸¦ ½îµµ·Ï ÇÏ¿© ±äÀåµµ¸¦ ³ô¿© º¸ÀÚ.·çÇÁ ¾ÈÂÊ¿¡ ´ëÀåÀ» ¸¸µé°í µîÀå½ÃŰ´Â
Äڵ带 ÀÛ¼ºÇÑ´Ù.
¼Ò°³ ȸé Ç¥½ÃÇϰí Ű ´©¸¦ ¶§±îÁö ´ë±â
for (1~3) {
¹è°æÀ½¾Ç
Àç»ý ½ÃÀÛ
while
(Á×À» ¶§±îÁö) {
ÁÖÀΰø
À̵¿
Àû±º
À̵¿
ÃѾË
¹ß»ç ¹× Ãæµ¹ Á¡°Ë
Àû±º
Á×À¸¸é È¿°úÀ½
°¡²û
´ëÀå µîÀå, ·¹ÀÌÀú ¹ß»ç
}
¹è°æÀ½¾Ç
Àç»ý Á¤Áö
}
ÄÄÆÄÀÏ ÈÄ Å×½ºÆ®ÇØ º¸´Ï ³À̵µ°¡ Àû´çÇϰí Àç¹Ìµµ ÀÖ¾î ±¦Âú¾Æ º¸ÀδÙ. ½ºÅ×ÀÌÁö¿¡
¿Ã·Á ³õµÇ ¿ÏÀüÈ÷ È®Á¤ÇÑ °ÍÀº ¾Æ´Ï¾î¼ Ä¿¹ÔÀº Àá½Ã º¸·ùÇÑ´Ù. »óŸ¦ Âï¾î º¸¸é ¼öÁ¤ÇÑ ÆÄÀÏÀÌ Ä¿¹Ô
´ë±â »óŶó°í ³ª¿Â´Ù.
$ git add game.cpp
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
½ºÅ×ÀÌÁö¿¡ ¿Ã·Á ³õ°í ´Ù½Ã Å×½ºÆ®ÇØ º¸´Ï Àû±ºÀº °ÇØÁ³´Âµ¥ ÁÖÀΰøÀº ·¹ÀÌÀú ÇÇÇÏ´À¶ó ¹ÙºüÁ³´Ù. ±ÕÇüÀ» ¸ÂÃß±â À§ÇØ ÁÖÀΰøÀº ¿ÞÂÊ ³¡¿¡¼ ¿À¸¥ÂÊ ³¡À¸·Î ¼ø°£ À̵¿ÇÏ´Â ¿öÇÁ ±â´ÉÀ» ³Ö¾î ÁÖ±â·Î ÇÑ´Ù.
¼Ò°³ ȸé Ç¥½ÃÇϰí Ű ´©¸¦ ¶§±îÁö ´ë±â
for (1~3) {
¹è°æÀ½¾Ç
Àç»ý ½ÃÀÛ
while
(Á×À» ¶§±îÁö) {
ÁÖÀΰø
À̵¿ - Á¿ì¿öÇÁ
Àû±º
À̵¿
ÃѾË
¹ß»ç ¹× Ãæµ¹ Á¡°Ë
Àû±º
Á×À¸¸é È¿°úÀ½
°¡²û
´ëÀå µîÀå, ·¹ÀÌÀú ¹ß»ç
}
¹è°æÀ½¾Ç
Àç»ý Á¤Áö
}
¼Ò½º¸¦ ÀúÀåÇÑ ÈÄ Å×½ºÆ®¸¸ ÇØ º¸°í ½ºÅ×ÀÌÁö·Î´Â ¿Ã¸®Áö ¾Ê¾Ò´Ù. ÀÌ
»óŸ¦ Âï¾î º¸¸é Ä¿¹ÔÇÒ °Íµµ ÀÖ°í ½ºÅ×ÀÌÁö·Î ¿Ã¸± °Íµµ ÀÖ´Ù.
$ git status
On branch main
Changes to be committed:
(use
"git restore --staged <file>..." to unstage)
modified: game.cpp
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
ÀÌ·¯¸é ¿öÅ·Æ®¸®, ½ºÅ×ÀÌÁö, ÀúÀå¼ÒÀÇ
»óŰ¡ ¸ðµÎ ´Ù¸£´Ù. Á¤½Å¾øÀÌ °³¹ßÇÏ´Ù º¸¸é ÀúÀå¼ÒÀÇ È®Á¤ ¹öÀü, ½ºÅ×ÀÌÁöÀÇ
Àӽà ¼öÁ¤º», ¿öÅ·Æ®¸®ÀÇ ÇöÀç ÀÛ¾÷º»ÀÌ ¸ðµÎ ´Ù¸¥ »óȲÀÌ µÉ ¼ö ÀÖ´Ù.
while ¾ÈÂʸ¸ ºñ±³ÇØ º¸ÀÚ.
|
ÁÖÀΰø À̵¿ - Á¿ì¿öÇÁ Àû±º À̵¿ ÃÑ¾Ë ¹ß»ç ¹× Ãæµ¹ Á¡°Ë Àû±º Á×À¸¸é È¿°úÀ½ °¡²û ´ëÀå µîÀå, ·¹ÀÌÀú ¹ß»ç |
ÁÖÀΰø À̵¿ Àû±º À̵¿ ÃÑ¾Ë ¹ß»ç ¹× Ãæµ¹ Á¡°Ë Àû±º Á×À¸¸é È¿°úÀ½ °¡²û ´ëÀå µîÀå, ·¹ÀÌÀú ¹ß»ç |
ÁÖÀΰø À̵¿ Àû±º À̵¿ ÃÑ¾Ë ¹ß»ç ¹× Ãæµ¹ Á¡°Ë Àû±º Á×À¸¸é È¿°úÀ½ |
|
¿öÅ·Æ®¸® |
½ºÅ×ÀÌÁö |
ÀúÀå¼Ò |
ÀÌ »óȲ¿¡¼ ¹» ¹Ù²å´ÂÁö È®ÀÎÇÏ·Á¸é ¿öÅ·Æ®¸®ÀÇ ÀÛ¾÷ÁßÀÎ ¼Ò½º¿Í ÀÌÀüÀÇ ¼Ò½º¸¦ ºñ±³ÇØ¾ß ÇÑ´Ù. ÇÊ¿ä ¾øÀ» °Å °°¾Æ Áö¿ö ¹ö·È´Âµ¥ ´Ù½Ã ÇÊ¿äÇØÁ³´Ù°Å³ª ¼öÄ¡¸¦ ¹Ù²å´Âµ¥ ÀÌÀü°ªÀÌ ¹ºÁö ¾Ë¾Æ¾ß ÇÏ´Â °æ¿ìÀÌ´Ù. ÀÌ·² ¶§´Â diff ¸í·ÉÀ¸·Î ÀÌÀü »óÅÂ¿Í ºñ±³ÇÑ´Ù.
$ git diff
diff --git a/game.cpp b/game.cpp
index 167a5cc..f4bd4f5 100644
--- a/game.cpp
+++ b/game.cpp
@@ -2,7 +2,7 @@
for
(1~3) {
¹è°æÀ½¾Ç
Àç»ý ½ÃÀÛ
while (Á×À» ¶§±îÁö) {
-
ÁÖÀΰø À̵¿
+
ÁÖÀΰø À̵¿ - Á¿ì¿öÇÁ
Àû±º À̵¿
ÃÑ¾Ë ¹ß»ç ¹× Ãæµ¹ Á¡°Ë
Àû±º Á×À¸¸é È¿°úÀ½
diff ¸í·ÉÀº ¿öÅ·Æ®¸®ÀÇ ÇöÀç ¼Ò½º¿Í ½ºÅ×ÀÌÁö¿¡ ¿Ã·Á ³õÀº ¼Ò½º¸¦
ºñ±³ÇÑ´Ù. ¾Õ¿¡ -°¡ ºÙÀº °ÍÀº Áö¿öÁ³´Ù´Â ¶æÀ̰í +°¡ ºÙÀº °Ç »õ·Î Ãß°¡Çß´Ù´Â ¶æÀε¥ ÇÑ ÁÙ ³»¿¡¼ ¼öÁ¤ÇÑ °æ¿ì´Â ±× ÁÙÀ» Áö¿ì°í »õ·Î ÀÛ¼ºÇÑ °ÍÀ¸·Î Ç¥½ÃÇÑ´Ù. ÀÌ ºñ±³°á°ú¸¦ ÅëÇØ ½ºÅ×ÀÌÁö¿¡ ¿Ã¸° ÈÄ ÁÖÀΰøÀ» Á¿ì¿öÇÁÇÏ´Â ±â´ÉÀ» ´õ Ãß°¡ÇßÀ½À» ¾Ë ¼ö ÀÖ´Ù.
¼Ò½º °ü¸® ±â´ÉÀ» »ç¿ëÇÏÁö ¾ÊÀ¸¸é ¼öÁ¤Ç߰ųª Áö¿ö ¹ö¸° Äڵ带 ´Ù½Ã º¼ ¹æ¹ýÀÌ ¾ø´Ù. ¹Ù·Î Á÷ÀüÀÇ ÄÚµå¶ó¸é Undo·Î Ãë¼ÒÇØ¼ Àá½Ã º¼ ¼ö ÀÖÁö¸¸ ±×·¯´Ù°¡
Ű Çѹø À߸ø ´©¸£¸é ¼öÁ¤ÇÑ ¼Ò½º¸¦ ÀÒ¾î ¹ö¸± À§ÇèÀÌ ÀÖ´Ù. ¼öµ¿ ¹é¾÷ÇØ ³õ¾Ò´õ¶óµµ ÀÌÀü ¼Ò½º¸¦ ³ª¶õÈ÷
¿¾î ³õ°í ´«±ò ºüÁö°Ô ºñ±³ÇØ ºÁ¾ß ÇÏ´Â °ï¶õÇÔÀÌ ÀÖ´Ù.
±êÀº ¸ðµç ÀÌ·ÂÀ» ´Ù °¡Áö°í ÀÖÀ¸¹Ç·Î diff ¸í·É Çϳª·Î ±ò²ûÇϰÔ
ºñ±³ÇØ ÁØ´Ù. --staged (¶Ç´Â cached)¿É¼ÇÀ»
»ç¿ëÇÏ¸é ½ºÅ×ÀÌÁö¿Í ÀúÀå¼ÒÀÇ ¼Ò½º¸¦ ºñ±³ÇÏ¿© ÃÖÈÄ Ä¿¹Ô ÀÌÈÄ ½ºÅ×ÀÌÁöÀÇ ¼Ò½º°¡ ¾î¶»°Ô ¹Ù²î¾ú´ÂÁö ºñ±³ÇÑ´Ù. ´ëÀåÀÌ
µîÀåÇÏ°í ·¹ÀÌÀú¸¦ ¹ß»çÇÏ´Â Äڵ带 Ãß°¡ÇßÀ½À» ¾Ë ¼ö ÀÖ´Ù.
$ git diff --staged
diff --git a/game.cpp b/game.cpp
index 6d257fa..167a5cc 100644
--- a/game.cpp
+++ b/game.cpp
@@ -6,6 +6,7 @@ for (1~3) {
Àû±º À̵¿
ÃÑ¾Ë ¹ß»ç ¹× Ãæµ¹ Á¡°Ë
Àû±º Á×À¸¸é È¿°úÀ½
+
°¡²û ´ëÀå µîÀå, ·¹ÀÌÀú ¹ß»ç
}
¹è°æÀ½¾Ç
Àç»ý Á¤Áö
}
diff ¸í·ÉÀº º¯°æµÈ ¸ðµç ÆÄÀÏÀ» º¸¿© Áִµ¥ ƯÁ¤ ÆÄÀϸ¸ º¸·Á¸é
ÆÄÀϸíÀ» ÁöÁ¤ÇÑ´Ù. À§ ½Ç½À¿¡¼ ¿ì¸®´Â game.cpp¸¦
¼öÁ¤ÇßÀ½À» ¸íÈ®È÷ ¾Ë°í ÀÖ¾î »ý·«ÇßÁö¸¸ git diff°¡ ÀÌ °æ¿ì´Â
git diff game.cpp¿Í °°Àº ¸í·ÉÀÌ´Ù. git diff sound.cpp ¸í·ÉÀ»
³»¸®¸é ¼öÁ¤ÇÑ °Ô ¾øÀ¸¹Ç·Î ¾Æ¹« Ãâ·Âµµ ³ª¿ÀÁö ¾Ê´Â´Ù. °°´Ù°í ¸Þ½ÃÁö¶óµµ Ãâ·ÂÇØ ÁÖÁö Á» ¹«½ÉÇÏ´Ù.
ÇÁ·ÎÁ§Æ®ÀÇ ÁøÇà »óȲÀ» Á¡°ËÇÒ ¶§´Â ÀÌ¹Ì Ä¿¹ÔÇÑ ¹öÀü³¢¸® ºñ±³ÇÑ´Ù. À̶§´Â
µÎ Ä¿¹ÔÀÇ ÇØ½Ã°ªÀ» Àμö·Î Àü´ÞÇÑ´Ù. ÇØ½Ã´Â ·Î±×¿¡¼ º¹»çÇϴµ¥ ³Ê¹« ±æ¾î¼ ºÒÆíÇÏ´Ï Àüü ÀÚ¸®¼ö¸¦
´Ù ¾²Áö ¾Ê°í 7ÀÚ¸®¸¸ ¾´´Ù. À̰͵µ ¿Ü¿ö¼ ¾²±â´Â ¾î·Á¿ì¹Ç·Î log --oneline ¸í·ÉÀ¸·Î ¸ñ·ÏÀ» Á¶»çÇÑ ÈÄ ÇØ½Ã°ªÀ» º¹»çÇØ »ç¿ëÇÏ´Â °ÍÀÌ Æí¸®ÇÏ´Ù.
$ git log --oneline
eb4622b (HEAD -> main) ¹è°æÀ½¾Ç ¹× È¿°úÀ½ Ãß°¡
7a9c088 ÁÖÀΰø 3´ë·Î ´Ã¸²
8b8c594 ÇÁ·ÎÁ§Æ® ½ÃÀÛ
ÀÌ ¸ñ·Ï¿¡¼ ÁÖÀΰøÀ» ´Ã¸° ÈÄ(7a9c088)¿Í »ç¿îµå¸¦ Ãß°¡ÇÑ ÈÄ(eb4622b)ÀÇ »óŸ¦ ºñ±³ÇØ º¸ÀÚ. À̶§ ¼ø¼¿¡ ÁÖÀÇÇØ¾ß Çϴµ¥
¾ÕÂÊ Ä¿¹ÔÀ» ±âÁØÀ¸·Î µÚÂÊ Ä¿¹ÔÀÇ º¯È¸¦ Á¶»çÇÏ´Â ½ÄÀ̶ó ´õ ºü¸¥ Ä¿¹ÔÀÌ ¾Õ¿¡ ¿Í¾ß ÇÑ´Ù. ¸¶Áö¸· Ä¿¹Ô°ú
±× Á÷Àü Ä¿¹ÔÀ» ºñ±³ÇØ ºÃ´Ù. »ç¿îµå Àç»ý ±â´ÉÀÌ µé¾î°¬À½À» ¾Ë ¼ö ÀÖ´Ù.
$ git diff 7a9c088 eb4622b
diff --git a/game.cpp b/game.cpp
index f676b43..6d257fa 100644
--- a/game.cpp
+++ b/game.cpp
@@ -1,8 +1,11 @@
¼Ò°³
ȸé Ç¥½ÃÇϰí Ű ´©¸¦ ¶§±îÁö ´ë±â
for
(1~3) {
+ ¹è°æÀ½¾Ç
Àç»ý ½ÃÀÛ
while (Á×À» ¶§±îÁö) {
ÁÖÀΰø À̵¿
Àû±º À̵¿
ÃÑ¾Ë ¹ß»ç ¹× Ãæµ¹ Á¡°Ë
+
Àû±º Á×À¸¸é È¿°úÀ½
}
+ ¹è°æÀ½¾Ç
Àç»ý Á¤Áö
}
diff --git a/sound.cpp b/sound.cpp
new file mode 100644
index 0000000..bfcffeb
--- /dev/null
+++ b/sound.cpp
@@ -0,0 +1,7 @@
+¹è°æÀ½¾ÇÀç»ý() {
+ ¶ì¸®¸®¸®¸®~~~
+}
+
+È¿°úÀ½Àç»ý() {
+ ÄçÄç
+}
ÇØ½Ã¸¦ ¾²´Â°Ô ±ÍÂúÀ¸¸é ÇöÀç À§Ä¡ÀÎ HEAD¿Í ÀÌÀü Ä¿¹ÔÀ» ºñ±³ÇÑ´Ù. HEAD~nÀº ¸¶Áö¸· Ä¿¹Ô¿¡¼ n¹øÂ° ¾ÕÀ» ÀǹÌÇÑ´Ù. À§ ¸í·ÉÀº git diff HEAD~1 HEAD·Î °£´ÜÈ÷ ¾µ ¼ö
ÀÖ´Ù. ´õ ¾ÕÂÊÀÇ º¯È¸¦ º¸°í ½ÍÀ¸¸é git diff HEAD~2
HEAD~1 ¸í·ÉÀ» ³»¸®°í git diff HEAD~2 HEAD´Â µÎ ´Ü°è Ä¿¹ÔÀ» ÇѲ¨¹ø¿¡
ºñ±³ÇÑ´Ù.
»õ·Î¿î ±â´ÉÀ» ÀÛ¼ºÇÒ ¶§ ´ýº¡°Å¸®Áö ¸»°í ÀÌÀü Äڵ带 Ç×»ó Âü°íÇÏ¿© ÀÛ¾÷ÇØ¾ß ÇÑ´Ù. ³Ê¹« ±ÞÇÏ°Ô ÀÛ¾÷ÇÏ´Ù º¸¸é ¹ö±×¸¦ ¼öÁ¤ÇÏ´Ù°¡ ´õ Å« ¹ö±×¸¦ ¸¸µé¾î ³õ´Â ½Ç¼ö¸¦ Çϱ⵵ ÇÑ´Ù. ´Ù ÀÛ¼ºÇÑ ÈÄ¿¡µµ ¹» ¹Ù²å´ÂÁö, ºÒÇÇ¿äÇÏ°Ô À߸ø ¼öÁ¤ÇÑ °Ç ¾ø´ÂÁö
¸é¹ÐÈ÷ ºñ±³ÇÏ¿© Á¦´ë·Î ¼öÁ¤ÇßÀ½À» È®ÀÎÇÑ ÈÄ Ä¿¹ÔÇØ¾ß ÇÑ´Ù.
ÀÌ ½Ç½ÀÀº ¿¹Á¦ Äڵ尡 ª¾Æ ÇÑ ´«¿¡ Â÷À̸¦ ¾Ë ¼ö ÀÖÁö¸¸ ¾ÆÁÖ ±ä ¼Ò½º´Â ÅØ½ºÆ® ȯ°æ¿¡¼ ºü¸£°Ô »ìÆì º¸±â
¾î·Æ´Ù. ºñ±³´Â Àß ÇÏÁö¸¸ ÅØ½ºÆ® ȯ°æÀÇ ÇѰ谡 ÀÖ¾î °á°ú¸¦ º¸¿© ÁÖ´Â ¹æ½ÄÀÌ ´«¿¡ ½ï µé¾î¿ÀÁö ¾Ê´Â´Ù. ÀÌ·² ¶§´Â ±×·¡ÇÈ È¯°æÀÇ ºñ±³ÅøÀÌ ÇÊ¿äÇÏ´Ù. ´ÙÀ½Àº ±×·¡ÇÈ ºñ±³ÅøÀÇ
¿¹ÀÌ´Ù.

Á¿ìÀÇ ÆÐ³ÎÀ» ³ª´² ³õ°í »ðÀÔ, »èÁ¦µÈ ³»¿ëÀ» ³ª¶õÈ÷ º¸¿© ÁֹǷÎ
¾îµð°¡ ¾î¶»°Ô ¹Ù²î¾ú´ÂÁö ¾Ë¾Æ º¸±â ½±´Ù. ±×·¡ÇÈ È¯°æÀÇ ÅøÀº ´ÙÀ½¿¡ ¹è¿ö º¸±â·Î Çϰí Áö±ÝÀº ±êÀÌ
ºñ±³¸¦ À§ÇÑ ¸ðµç Áغñ¸¦ ´Ù ÇØ ³õ¾Ò´Ù´Â °Í¸¸ ¾Ë¾Æ µÎÀÚ.
¼Ò½º¸¦ ÀúÀå¼Ò¿¡ ÀÏÀÏÀÌ ¹é¾÷ÇÏ´Â ÀÌÀ¯´Â ¹º°¡ ½Ç¼ö¸¦ Ç߰ųª »ç°í°¡ ¹ß»ýÇÏ¸é ´Ù½Ã °¡Á® ¿À±â À§ÇؼÀÌ´Ù. ¾Õ¿¡¼ ¸¸µç ´ëÀå µîÀå°ú ¿öÇÁ ±â´ÉÀÌ ¸¶À½¿¡ ¾Èµç´Ù°í °¡Á¤Çϰí ÀÌÀü ¼Ò½º·Î º¹¿øÇÏ´Â ½Ç½ÀÀ» ÇØ º¸ÀÚ. ½Å³ª°Ô ÄÚµùÇ߾ °á°úÀûÀ¸·Î »ðÁúÀ̾ú´ø °æ¿ì°¡ ¸¹´Ù. Çö »óŸ¦
´Ù½Ã Á¶»çÇØ º¸ÀÚ.
$ git status
On branch main
Changes to be committed:
(use
"git restore --staged <file>..." to unstage)
modified: game.cpp
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
À§ÂÊ ¸Þ½ÃÁö´Â ½ºÅ×ÀÌÁöÀÇ ¼Ò½º°¡ Ä¿¹ÔÇÑ °Í°ú ´Ù¸£´Ù´Â ¶æÀÌ°í ¾Æ·¡ÂÊ ¸Þ½ÃÁö´Â ¿öÅ·Æ®¸®ÀÇ ¼Ò½º°¡ ½ºÅ×ÀÌÁö¿Í ´Ù¸£´Ù´Â
¶æÀÌ´Ù. °ýÈ£¾È¿¡ °£·«ÇÑ µµ¿ò¸»µµ Àß ¼³¸íµÇ¾î ÀÖ´Ù. Å×½ºÆ®ÇØ
º¸´Ï »õ·Î Ãß°¡ÇÑ ±â´É¿¡ ¹®Á¦°¡ ¸¹¾Æ ¾Æ¿¹ ÀÌÀü »óÅ·Πµ¹¾Æ°¡±â·Î Çß´Ù. ÀÌ·² ¶§´Â restore ¸í·ÉÀ» »ç¿ëÇÏ¸ç º¹±¸ÇÒ ÆÄÀÏÀ» ÁöÁ¤ÇÑ´Ù.
$ git restore game.cpp
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
ÀÌ ¸í·ÉÀº ½ºÅ×ÀÌÁö¿¡ ¿Ã¸° ¸¶Áö¸· »óÅ·Π¿öÅ·Æ®¸®ÀÇ ¼Ò½º¸¦ º¹±¸ÇÑ´Ù. º¹±¸
ÈÄ game.cpp ¼Ò½º¸¦ º¸¸é Á¿ì¿öÇÁ ±â´ÉÀÌ »ç¶óÁ³´Ù. ±×·¯³ª
¾ÆÁ÷ ½ºÅ×ÀÌÁöÀÇ ¼Ò½º´Â Ä¿¹ÔÇÑ »óÅ¿ʹ ´Ù¸£´Ù. À̰ͱîÁö Ãë¼ÒÇÏ·Á¸é --staged
¿É¼ÇÀ» ÁØ´Ù.
$ git restore --staged game.cpp
soen@SoenDesk MINGW64 /c/StudyGit/game (main)
$ 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
no changes added to commit (use "git
add" and/or "git commit -a")
ÀÌ·¯¸é ÃÖÁ¾ Ä¿¹ÔÇÑ ³»¿ëÀ» ½ºÅ×ÀÌÁö·Î ´Ù½Ã °¡Á®¿Â´Ù. ½ºÅ×ÀÌÁöÀÇ ³»¿ëÀÌ
¹Ù²î¾úÀ¸´Ï ¿öÅ·Æ®¸®ÀÇ ¼Ò½º¿Í ´Þ¶óÁ³´Ù. ´Ù½Ã Çѹø restore ¸í·ÉÀ¸·Î
¿öÅ·Æ®¸®ÀÇ ¼Ò½º¸¦ º¹±¸ÇÑ´Ù. ÀÌ·¯¸é ¼¼ ¼Ò½º°¡ ¸ðµÎ °°¾ÆÁö¸ç ÃÖÁ¾ Ä¿¹ÔÇÑ °É ¿Ïº®ÇÏ°Ô º¹±¸ÇÑ °ÍÀÌ´Ù.
$ git restore game.cpp
soen@SoenDesk MINGW64 /c/StudyGit/game (main)
$ git status
On branch main
nothing to commit, working tree clean
Áß°£ Áß°£ÀÇ »óŸ¦ Á¡°ËÇØ º¸±â À§ÇØ ¿ø»ó º¹±¸¸¦ ¼¼ ¹ø¿¡ °ÉÃÄ Çߴµ¥ restore
--staged·Î ½ºÅ×ÀÌÁö¸¦ ¸ÕÀú º¹±¸Çϰí restore ¸í·ÉÀ» ³»¸®¸é µÎ ¹ø¿¡ ¿Ï·áÇÒ
¼ö ÀÖ´Ù. Áß°£¿¡ ½ºÅ×ÀÌÁö°¡ ³¢¾î ÀÖ¾î ¸í·É¹®ÀÌ º¹ÀâÇØ º¸À̴µ¥ Á¤¸®ÇÏÀÚ¸é ´ÙÀ½°ú °°´Ù.

diff, restore ¸í·ÉÀº ¿öÅ·Æ®¸®¿Í ½ºÅ×ÀÌÁö¸¦ ºñ±³, º¹¿øÇÏ´Â °ÍÀ̸ç --staged ¿É¼ÇÀ» ºÙÀÌ¸é ½ºÅ×ÀÌÁö¿Í ÀúÀå¼Ò¸¦
ºñ±³, º¹¿øÇÏ´Â °ÍÀÌ´Ù. µÎ µ¿ÀÛ ¸ðµÎ Áß°£ÀÇ ½ºÅ×ÀÌÁö¸¦
°æÀ¯ÇÏ´Â °ÍÀÌ ¾ÈÀüÇÏ´Ù. ¸¸¾à ¿öÅ·Æ®¸®¿Í ÀúÀå¼Ò¸¦ Á÷Á¢ ºñ±³, º¹¿øÇÏ·Á¸é
´ÙÀ½ µÎ ¸í·ÉÀ» »ç¿ëÇÑ´Ù.
ºñ±³ : git diff HEAD game.cpp
º¹¿ø : git restore --source=HEAD game.cpp
ºñ±³´Â Àб⸸ ÇÏ´Â µ¿ÀÛÀÌ¶ó ½ºÅ×ÀÌÁö¸¦ »©µµ º° ¹®Á¦ ¾ø´Ù. ±×·¯³ª
½ºÅ×ÀÌÁö¸¦ °Ç³Ê¶Ù°í ÀúÀå¼ÒÀÇ ³»¿ëÀ» Á÷Á¢ ¿öÅ·Æ®¸®·Î º¹¿øÇÏ´Â °ÍÀº ¿©·¯¸ð·Î È¥¶õ½º·¯¿î ¹®Á¦¸¦ ¾ß±âÇÒ ¼ö ÀÖ¾î ¹Ù¶÷Á÷ÇÏÁö ¾Ê´Ù. ÀúÀå¼Ò¿¡´Â ¿©·¯ ¹öÀüÀÌ °°ÀÌ µé¾î ÀÖ¾î º¹¿øÇÏ°í ½ÍÀº Á¤È®ÇÑ ¹öÀüÀ» ÁöÁ¤ÇØ¾ß ÇÑ´Ù.
ÇÁ·ÎÁ§Æ®¸¦ ÇÏ´Ù º¸¸é ¾û¶×ÇÑ ±âȹÀ» ÇÒ ¶§µµ ÀÖ°í ¹«¸®ÇÑ ½Ãµµ¸¦ ÇØ º¼ ¼öµµ ÀÖ´Ù. ¾Æ¹«¸® ¼Ò½º¸¦ ¸¹ÀÌ ¶â¾î °íÃÆ´õ¶óµµ, Ȳ´çÇÑ ½Ç¼ö¸¦ Çß´õ¶óµµ ½ºÅ×ÀÌÁö¿¡
Àӽà ¹öÀüÀÌ ÀÖ¾î ¿öÅ·Æ®¸®ÀÇ º¯°æÀº Áï½Ã Ãë¼ÒÇÒ ¼ö ÀÖ´Ù. ¶Ç ÀúÀå¼Ò¿¡µµ ¸ðµç ¹öÀüÀÌ °í½º¶õÈ÷ º¸Á¸µÇ¾î
ÀÖÀ¸¹Ç·Î ¾ðÁ¦µçÁö ¿øÇÏ´Â ½ÃÁ¡À¸·Î µ¹¾Æ¿Ã ¼ö ÀÖ´Ù.
¾Õ¿¡¼ ÇØ º» ½Ãµµ´Â ´Ù ¸¶À½¿¡ µéÁö ¾Ê¾ÒÀ½À» È®½ÇÈ÷ ¾Ë°Ô µÇ¾ú°í ½É±âÀÏÀüÇÏ¿© Äڵ带 Á¦´ë·Î ´Ù½Ã ÀÛ¼ºÇÑ´Ù. Á¿ì¿öÇÁ´Â ÃѾËÀ» ÇÇÇϱ⠳ʹ« ½¬¿ì´Ï °¡¼Óµµ¸¦ Àû¿ëÇÏ¿© ¿òÁ÷ÀÓ¿¡ º¯È¸¦ ÁØ´Ù.
·¹ÀÌÀú´Â ÇÇÇϱ⠾î·Á¿ö ÆøÅºÀ» ´øÁö´Â °É·Î ¹Ù²å´Ù.
¼Ò°³ ȸé Ç¥½ÃÇϰí Ű ´©¸¦ ¶§±îÁö ´ë±â
for (1~3) {
¹è°æÀ½¾Ç
Àç»ý ½ÃÀÛ
while
(Á×À» ¶§±îÁö) {
ÁÖÀΰø
À̵¿ - °¡¼Óµµ Àû¿ë
Àû±º
À̵¿
ÃѾË
¹ß»ç ¹× Ãæµ¹ Á¡°Ë
Àû±º
Á×À¸¸é È¿°úÀ½
°¡²û
´ëÀå µîÀå, ÆøÅº ¹ß»ç
}
¹è°æÀ½¾Ç
Àç»ý Á¤Áö
}
ÀÇ»çÄÚµå¶ó º°¹Ý ´Ù¸¦ °ÍÀº ¾øÁö¸¸ ½ÇÁ¦ Äڵ忡¼´Â ±¸Çö Äڵ尡 »ó´çÈ÷ ´Ù¸¦ °ÍÀÌ´Ù. ¿©±â±îÁö ÀÛ¾÷ÇÑ ÈÄ Ä¿¹ÔÇÏÀÚ.
$ git commit -am "´ëÀåµîÀå, °¡¼ÓµµÀ̵¿"
ÀÌÁ¦ 4¹ø Ä¿¹ÔÇßÀ¸¸ç ÀúÀå¼Ò¿¡´Â ¸ðµç ¹öÀüÀÌ °í½º¶õÈ÷ º¸°üµÇ¾î ÀÖ´Ù. Ä¿¹ÔÇß´Ù´Â °ÍÀº ¿µ±¸ÀûÀ¸·Î ÀúÀåÇÒ ¹öÀü Çϳª¸¦ ¸¸µé¾ú´Ù´Â °ÍÀÌ´Ù. Á¿ì¿öÇÁ¿Í
·¹ÀÌÀú´Â Áß°£ Å×½ºÆ® ´Ü°è·Î ½ÃµµÇØ ºÃÁö¸¸ ÀúÀå¼Ò¿¡´Â Ä¿¹ÔÇÑ ÀûÀÌ ¾ø´Ù.
¾Õ ½Ç½ÀÀº ¿öÅ·Æ®¸®¿Í ½ºÅ×ÀÌÁöÀÇ »óŸ¦ º¹±¸ÇÏ´Â °ÍÀ̾ú´Ù. Ä¿¹ÔÇϱâ
Àü¿¡ ½Ç¼ö¸¦ ¹ß°ßÇßÀ¸¸é ½ºÅ×ÀÌÁö¿Í Àß ºñ±³ÇØ °¡¸ç ¿öÅ·Æ®¸®¿¡¼ ´Ù½Ã ÀÛ¾÷ÇÏ¸é µÈ´Ù. ±×·¯³ª Ä¿¹Ô±îÁö
´Ù ÇØ ¹ö¸° ÈÄ¿¡ ½Ç¼ö¸¦ ¹ß°ßÇÏ´Â °æ¿ìµµ ÀÖ´Ù. À̶§´Â ¼öÁ¤ÇÏ¿© ´Ù½Ã Ä¿¹ÔÇÏ´Â ¹æ¹ýµµ ÀÖÁö¸¸ Ä¿¹Ô ÀÚü¸¦
Ãë¼ÒÇÏ´Â °Íµµ °¡´ÉÇÏ´Ù.
¾î´À³¯ ±è´ë¸®°¡ ȸ½Ä ÈÄ °©ÀÚ±â ÄÚµùÀÌ ÇÏ°í ½ÍÀº ÀÌ»ó¾ß¸©ÇÑ ¿å±¸¿¡ »ç·ÎÀâÇô ȸ»ç·Î ´Ù½Ã Ãâ±ÙÇØ ¾ËÄÚ¿Ã ÄÚµùÀ»
Çß´Ù°í ÇÏÀÚ. °ÔÀÓ ³í¸®¸¦ ¸¶À½´ë·Î ¹Ù²Ù°í ÀÌ»óÇÑ ¸Þ½ÃÁö Áý¾î ³Ö°í ³¥³¥°Å¸®¸ç ½Å³ª°Ô ÄÚµù ³îÀ̸¦ Çß´Ù.
¸ÚÁø »çÁø Ç¥½ÃÇϰí Ű ´©¸¦ ¶§±îÁö ´ë±â
for (1~9) {
¹è°æÀ½¾Ç
Àç»ý ½ÃÀÛ
while
(¹«Àû ¸ðµå) {
ÁÖÀΰø
À̵¿ - °¡¼Óµµ Àû¿ë
Àû±º
À̵¿ - ´À¸´´À¸´
ÃѾË
¹ß»ç ¹× Ãæµ¹ Á¡°Ë
Àû±º
Á×À¸¸é "»çÀå´Ô §µ¹ÀÌ" ¸Þ½ÃÁö Ãâ·Â
°¡²û
´ëÀå µîÀå, Àå·ÄÈ÷ ÀÚÆø
}
¹è°æÀ½¾Ç
Àç»ý Á¤Áö
}
ÀÌ ÄÚµå·Î °ÔÀÓÀ» ÇØ º¸´Ï ½ºÆ®·¹½º ÇØ¼Òµµ µÇ°í °ÔÀÓµµ ½¬¿ö ¸¶À½¿¡ µé¾ú´Ù. ½É½Å¹Ì¾à
»óÅ¿¡¼ °úÇÏ°Ô ¿ë°¨ÇØÁ® Ä¿¹Ô±îÁö ÇØ ¹ö·È´Ù. ÇѸ¶µð·Î °³ÆÇÀ» ÃÄ ³õÀº °ÍÀÌ´Ù.
$ git commit -am "¹«Àû ¸ðµå, ³ÄÇÏÇÏ"
Ä¿¹Ô·Î±×¸¦ Âï¾î º¸¸é ±â·ÏÀÌ ¼±¸íÇÏ°Ô ³²¾Æ ÀÖ°í ¾Æ¹«³ª ±â·ÏÀ» »ìÆìº¼ ¼ö ÀÖ´Ù.
´ÙÀ½³¯ ¾ÆÄ§ ¹®µæ Á¤½ÅÀ» Â÷·Á º¸´Ï ¹º°¡ ´ëÇü »ç°í¸¦ Ä£ °Å °°Àºµ¥ »çÀå´ÔÀÌ º¸±â Àü¿¡ »¡¸® ÈçÀûÀ» Áö¿ö¾ß ÇÑ´Ù. °ú°¨ÇÑ ½Ãµµ¸¦ ÇÏ´Ù º¸¸é ¾Æ¿¹ ¾ø´ø ÀÏ·Î ¸¸µé°í ½ÍÀ» ¶§°¡ ÀÖ´Ù.
$ git log
commit 4a1bce7f1d2741c4e8142596f0836988fbc2ad8b
(HEAD -> main)
Author: soen <soenmaster@naver.com>
Date:
Sun Oct 27 20:54:45 2024 +0900
¹«Àû ¸ðµå, ³ÄÇÏÇÏ
Ä¿¹ÔÇÑ ÀÛ¾÷À» Ãë¼ÒÇÒ ¶§´Â reset ¸í·ÉÀ» »ç¿ëÇϴµ¥ ÀúÀå¼Ò¸¦ Á¶ÀÛÇÑ´Ù´Â
¸é¿¡¼ ±²ÀåÈ÷ À§ÇèÇϸç À߸ø »ç¿ëÇÏ¸é ´õ ¾û¸ÁÀÌ µÉ ¼öµµ ÀÖ¾î ²À ÇÊ¿äÇÒ ¶§¸¸ Á¤È®ÇÑ ¹æ¹ýÀ¸·Î »ç¿ëÇØ¾ß ÇÑ´Ù. ¸®¼ÂÇÏ´Â
¹üÀ§¿¡ µû¶ó ¼¼ °¡Áö ¸ðµå°¡ ÀÖ´Ù.
|
¿É¼Ç |
¼³¸í |
|
--soft |
Ä¿¹Ô¸¸ »èÁ¦ÇÏ°í ½ºÅ×ÀÌÁö¿Í ¿öÅ·Æ®¸®´Â °Çµå¸®Áö ¾Ê´Â´Ù. ¼Ò½º´Â ±×´ë·Î º¸Á¸µÇ¾î
ÀÖÀ¸¹Ç·Î ´Ù½Ã Ä¿¹ÔÇÒ ¼öµµ ÀÖ´Ù. |
|
--hard |
Ä¿¹Ô»Ó¸¸ ¾Æ´Ï¶ó ½ºÅ×ÀÌÁö¿Í ¿öÅ·Æ®¸®±îÁö ¿ÏÀüÈ÷ »èÁ¦ÇÑ´Ù. ¸ðµç ±â·ÏÀÌ Ä¿¹Ô
ÀÌÀüÀ¸·Î µ¹¾Æ°¡ ¹ö·Á º¹±¸ÇÒ ¼ö ¾ø´Ù. |
|
--mixed |
Ä¿¹Ô°ú ½ºÅ×ÀÌÁö±îÁö¸¸ º¹±¸ÇÏ°í ¿öÅ·Æ®¸®´Â °Çµå¸®Áö ¾Ê´Â´Ù. ½ºÅ×ÀÌÁö·Î ¿Ã¸°
ÈÄ ´Ù½Ã Ä¿¹ÔÇÒ ¼ö ÀÖ´Ù. ÀÌ ¸ðµå°¡ µðÆúÆ®ÀÌ´Ù. |
¸®¼Â ´ë»óÀº ÁÖ·Î ÃÖ±Ù Ä¿¹ÔÀε¥ HEAD~nÀ¸·Î Ç¥±âÇÑ´Ù. HEAD~1ÀÌ Á¦ÀÏ À§ÀÇ Ä¿¹Ô, HEAD~2°¡ ±× ¾Æ·¡ÀÇ Ä¿¹ÔÀÎ
½ÄÀÌ´Ù. HEAD~1ÀÌ ¸¶Áö¸· Ä¿¹ÔÀ̸ç HEAD^µµ ¹Ì¼¼ÇϰÔ
Àǹ̰¡ ´Ù¸£Áö¸¸ ÀϹÝÀûÀÎ »óȲ¿¡¼´Â ÃֽŠĿ¹ÔÀ» ÀǹÌÇÑ´Ù.
ÀÌ °æ¿ì´Â ¸ðµç ±â·ÏÀ» Áö¿ö ¿ÏÀü¹üÁ˸¦ ´Þ¼ºÇØ¾ß ÇϹǷΠÇÏµå ¸®¼ÂÀÌ ¸¶¶¥ÇÏ´Ù.
¾Æ´Ï¸é ±âº» ¸ðµå·Î ¸®¼ÂÇÑ ÈÄ ¿öÅ·Æ®¸®¸¸ ´Ù½Ã º¹±¸Çصµ µÇ´Âµ¥ ½Ç½ÀÁßÀ̹ǷΠµÎ ´Ü°è·Î ³ª´² Ãë¼ÒÇØ º¸ÀÚ. ¸ÕÀú Àμö¾øÀÌ ¸®¼Â¸¸ ÇÑ´Ù.
$ git reset HEAD^
Unstaged changes after reset:
M game.cpp
soen@SoenDesk MINGW64 /c/StudyGit/game (main)
$ 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
no changes added to commit (use "git
add" and/or "git commit -a")
µðÆúÆ®ÀÎ --mixed ¿É¼ÇÀ» Àû¿ëÇÏ¿© Ä¿¹Ô°ú ½ºÅ×ÀÌÁö¸¦ Ãë¼ÒÇÑ´Ù. ±×·¯³ª ¿öÅ·Æ®¸®´Â º¹±¸ÇÏÁö ¾ÊÀ¸¹Ç·Î º¯°æµÈ »óÅ ±×´ë·Î ³²¾Æ ÀÖ´Ù. ¿öÅ·Æ®¸®±îÁö
Ãë¼ÒÇÏ·Á¸é ´ÙÀ½ ¸í·ÉÀ¸·Î ½ºÅ×ÀÌÁöÀÇ ¼Ò½º¸¦ °¡Á®¿Â´Ù.
$ git restore game.cpp
ÀÌ·¯¸é ¿öÅ·Æ®¸®±îÁö ÀÌÀü »óÅ·Π¿Ïº®ÇÏ°Ô µ¹¾Æ¿Â´Ù. Àß Ãë¼ÒµÇ¾ú´ÂÁö
·Î±×¸¦ Ãâ·ÂÇØ º¸¸é ·Î±×µµ »ç¶óÁö°í ¾ø´Ù. ¾ËÄÚ¿Ã ÄÚµùÀÇ ÈçÀûÀÌ ±ò²ûÇÏ°Ô »ç¶óÁö°í ÀÌÀü »óÅ·Π¿Ïº®ÇϰÔ
µ¹¾Æ¿Ô´Ù. °íÀÇµç ½Ç¼öµç ¹º°¡ »ç°í¸¦ ÃÆÀ» ¶§ ¿ø·¡ »óÅ·Πµ¹¾Æ°¥ ¼ö ÀÖ´Ù´Â Á¡¿¡¼ ¹öÀü °ü¸®ÅøÀÇ Áø°¡°¡
¹ßÈֵȴÙ.
À̹ø¿¡´Â ÀúÀå¼ÒÀÇ Æ¯Á¤ ¹öÀüÀ¸·Î µ¹¾Æ°¡´Â ½Ç½ÀÀ» ÇØ º¸ÀÚ. ÇÁ·ÎÁ§Æ®¸¦
ÇÑÂü ÁøÇàÇϸç Ä¿¹ÔÀ» ¿©·¯ ¹ø Çߴµ¥ Á¡Á¡ ¾û¸ÁÀÌ µÇ¾î °¡°í ÀÖ´Ù°í ÇÏÀÚ. ¾ÖÃÊ¿¡ ±âȹÀ» À߸øÇß´Ù¸é
±ú²ýÇÏ°Ô ±âȹ ÀÌÀü »óÅ·Πµ¹¾Æ°¡´Â°Ô ÁÁ´Ù. ÀÌ·² ¶§´Â reset ¸í·ÉÀ»
»ç¿ëÇÏ¸ç ·Î±×ÀÇ Ä¿¹Ô ÇØ½Ã°ªÀ» ÁöÁ¤ÇÑ´Ù.
$ git reset --hard 7a9c088d2b57d0b86eefffda86baeca7f11d4374
HEAD is now at 7a9c088 ÁÖÀΰø
3´ë·Î ´Ã¸²
½Ç½ÀÁßÀ̶ó¸é ¿©·¯ºÐÀÇ ·Î±×¿¡ ³ª¿Â ÇØ½Ã°ªÀ» º¹»çÇÏ¿© »ç¿ëÇ쵂 7ÀÚ¸®¸¸
Àû¾îµµ µÈ´Ù. ÁÖÀΰøÀ» 3´ë·Î ´Ã¸° Á÷ÈÄÀÇ Ä¿¹Ô ÇØ½Ã¸¦ ÁöÁ¤Çϸé
ÁöÁ¤ÇÑ Ä¿¹Ô »óÅ·Πµ¹¾Æ°¡¸ç ¸ðµç ÆÄÀÏÀÇ º¯°æ ³»¿ªÀÌ »ç¶óÁø´Ù. game.cpp´Â Ãʱ⠹öÀüÀ¸·Î ¹Ù²î¸ç
sound.cpp´Â ¾Æ¿¹ »ç¶óÁ® Á¸ÀçÇÏÁöµµ ¾Ê´Â´Ù. ¹è°æÀ½¾Ç, º¸½º µîÀå µîÀÇ ±â´Éµµ ¸ðµÎ »ç¶óÁ® ¹ö·È´Ù.
±×·¸´Ù¸é Á¤¸» »ç¶óÁø°É±î? ·Î±×¿¡µµ ¾ø°í ÆÄÀϵµ »ç¶óÁ³Áö¸¸ ÀúÀå¼Ò¿¡
±â·ÏÀº ³²¾Æ ÀÖ´Ù. ±êÀº ÀÌÀü ³»¿ªÀ» »èÁ¦ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó Ãë¼ÒÇß´Ù´Â ³»¿ëÀ» ±â·ÏÇØ ³õ´Â´Ù. ±×·¡¾ß ½Ç¼ö·Î Áö¿î°Í±îÁöµµ »ì·Á ³¾ ¼ö ÀÖ´Ù. ¹®Á¦´Â ÀÌÀü Ä¿¹ÔÀÇ
ÇØ½Ã°ªÀ» log·Î´Â È®ÀÎÇÒ ¼ö ¾ø´Ù´Â Á¡Àε¥ Áö¿öÁø Ä¿¹Ô±îÁö º¸·Á¸é
reflog ¸í·ÉÀ» »ç¿ëÇÑ´Ù.
$ git reflog
7a9c088 (HEAD -> main) HEAD@{0}: reset: moving
to 7a9c088d2b57d0b86eefffda86baec
a7f11d4374
fd86941 HEAD@{1}: reset: moving to HEAD^
4a1bce7 HEAD@{2}: commit: ¹«Àû ¸ðµå, ³ÄÇÏÇÏ
fd86941 HEAD@{3}: commit: ´ëÀåµîÀå, °¡¼ÓµµÀ̵¿
eb4622b HEAD@{4}: commit: ¹è°æÀ½¾Ç ¹× È¿°úÀ½ Ãß°¡
7a9c088 (HEAD -> main) HEAD@{5}: commit: ÁÖÀΰø 3´ë·Î ´Ã¸²
8b8c594 HEAD@{6}: commit (initial): ÇÁ·ÎÁ§Æ® ½ÃÀÛ
reflog ¸í·ÉÀº HEAD°¡
À̵¿ÇÑ ±â·ÏÀ» º¸À¯Çϸç Ä¿¹Ô »Ó¸¸ ¾Æ´Ï¶ó Ãë¼Ò, »èÁ¦ ±â·Ï±îÁö ´Ù °¡Áö°í ÀÖ´Ù. Ä¿¹ÔÇÑ ¼ø¼´ë·Î HEAD@{n}À¸·Î ¹øÈ£¸¦ ºÙÀ̴µ¥ Á¦ÀÏ À§ÀÇ HEAD@{0}´Â ¸®¼ÂÇÑ ±â·ÏÀ̹ǷΠ±× Á÷Àü »óÅÂÀÎ HEAD@{1}·Î
µ¹¾Æ°¡¸é µÈ´Ù. ÀÌ Ä¿¹ÔÀÇ ÇØ½Ã°ª 7ÀÚ¸®¸¦ º¹»çÇØ µÎ°í ´ÙÀ½
¸í·ÉÀ» ½ÇÇàÇÑ´Ù.
$ git reset --hard fd86941
HEAD is now at fd86941 ´ëÀåµîÀå, °¡¼ÓµµÀ̵¿
ÀÌ·¯¸é ÀÛ¾÷ÇÑ ¸ðµç ±â·ÏÀÌ º¹¿øµÈ´Ù. ¹°·Ð ¾ËÄÚ¿Ã ÄÚµùÇÑ ±â·Ï¸¸ »©°í
¸»ÀÌ´Ù. ¸ðµç°É ´Ù ±â·ÏÇϱ⠶§¹®¿¡ »çÀå´ÔÀÌ ÀÌ ¸ñ·ÏÀ» º¸°í ¸®¼ÂÇØ º¸¸é »ç°íÄ£ ÈçÀûÀ» È®ÀÎÇÒ ¼öµµ
ÀÖ´Ù. ¹°·Ð »çÀå´ÔÀº ¹Ùºü¼ ±×·² ½Ã°£ÀÌ ¾ø°ÚÁö¸¸ ¸»ÀÌ´Ù.
»ç¿îµå Àç»ýÇÏ´À¶ó °ÔÀÓ ¼Óµµ°¡ ´À·ÁÁö´Â ¹®Á¦°¡ ¹ß°ßµÇ¾î »ç¿îµå ±â´ÉÀ» º°µµÀÇ ½º·¹µå·Î ºÐ¸®Çϱâ·Î Çß´Ù. ¸ÖƼ ½º·¹µå´Â ¼Óµµ¿¡´Â À¯¸®ÇÏÁö¸¸ ±¸Á¶°¡ º¹ÀâÇØ Á¦´ë·Î ¸¸µé±â´Â ½±Áö ¾Ê´Ù.
´ÙÀ½°ú °°ÀÌ Äڵ带 ¿Ï¼ºÇß´Ù.
¼Ò°³ ȸé Ç¥½ÃÇϰí Ű ´©¸¦ ¶§±îÁö ´ë±â
for (1~3) {
¹è°æÀ½¾Ç
½º·¹µå¿¡¼ Àç»ý ½ÃÀÛ
while
(Á×À» ¶§±îÁö) {
ÁÖÀΰø
À̵¿ - °¡¼Óµµ Àû¿ë
Àû±º
À̵¿
ÃѾË
¹ß»ç ¹× Ãæµ¹ Á¡°Ë
Àû±º
Á×À¸¸é È¿°úÀ½
°¡²û
´ëÀå µîÀå, ÆøÅº ¹ß»ç
}
¹è°æÀ½¾Ç
Àç»ý ½º·¹µå Á¤Áö
}
½ÇÇàÇØ º¸´Ï »ç¿îµåµµ Àß ³ª¿À°í ÀÌÀüº¸´Ù °ÔÀÓ ¼Óµµ°¡ »¡¶óÁ® ¸¸Á·½º·´´Ù. ÀÌ
Äڵ带 ¾²±â·Î Çϰí Ä¿¹ÔÇÑ´Ù.
$ git commit -am "¹è°æÀ½¾Ç ½º·¹µå·Î Àç»ý"
Ä¿¹Ô±îÁö ÇØ ³õ°í ´Ù½Ã Á¡°ËÇØ º¸´Ï ½º·¹µå µ¿±âȰ¡ Àß ¾ÈµÇ¾î °ÔÀÓÀÌ ³¡³ªµµ À½¾ÇÀÌ Áï½Ã ÁßÁöµÇÁö ¾Ê´Â ¹Î°¨ÇÑ
¹®Á¦°¡ ¹ß°ßµÇ¾ú´Ù. ½º·¹µå¸¦ ¾²¸é ¿ø·¡ ¾ø´ø ¹®Á¦°¡ »ý±â±âµµ ÇÏ¸ç ¿øÀÎ ÆÄ¾Çµµ ¾î·Æ´Ù. ÀÇ¿åÀûÀ¸·Î µµÀÔÇߴµ¥ Àå½Ã°£ Å×½ºÆ®ÇØ º¸´Ï ¹Ìó ¿¹»óÇÏÁö ¸øÇÑ ¹®Á¦°¡ µå·¯³ª´Â °æ¿ì°¡ Çã´ÙÇÏ´Ù.
ÀÏ´Ü ¹®Á¦¸¦ ¹ß°ßÇßÀ¸´Ï ¿ø·¡ ÄÚµå·Î µ¹¾Æ°¡µÇ ÀÌ ÄÚµå ÀÚü¸¦ ¹ö¸®°í ½ÍÁö ¾Ê°í ´ÙÀ½¿¡¶óµµ °³¼±ÇØ º¸°í ½Í´Ù. Ä¿¹Ô ÀÌÀü »óÅ·Πµ¹¾Æ°¡µÇ Ä¿¹ÔÇÑ ÄÚµå ÀÚü´Â ±â·ÏÀ¸·Î ³²°Ü¾ß Çϸç À̶§´Â
revert ¸í·ÉÀ» »ç¿ëÇÑ´Ù. Àμö·Î´Â µ¹¾Æ°¥ Ä¿¹Ô ÇØ½Ã°¡ ¾Æ´Ñ Ãë¼ÒÇÒ Ä¿¹Ô ÇØ½Ã¸¦ ÁöÁ¤ÇÑ´Ù. ÀÌ °æ¿ì ½º·¹µå¸¦ µµÀÔÇÑ ÇØ½Ã¸¦ ÁöÁ¤ÇÏ¸é µÈ´Ù.
$ git revert 84bdb72
hint: Waiting for your editor to close the file...
unix2dos: converting file C:/StudyGit/game/.git/COMMIT_EDITMSG to DOS format...
revert ¸í·ÉÀ» ½ÇÇàÇÏ¸é ±âº» ÆíÁý±âÀÎ ¸Þ¸ðÀåÀÌ ¿¸®¸ç Ä¿¹Ô ¸Þ½ÃÁö¸¦
ÀÔ·ÂÇ϶ó°í ¿ä±¸ÇÑ´Ù. ¹º°¡¸¦ µÇµ¹¸®´Â °ÍÀº ´ë´ÜÈ÷ Å« ÀÛ¾÷ÀÌ¸ç »ó¼¼ÇÑ ¼³¸íÀÌ ÇÊ¿äÇϹǷΠ¾Æ¿¹ ÆíÁý±â¸¦
¿¾î ÁÖ´Â °ÍÀÌ´Ù. ´Ù ÀÛ¼ºÇϰí ÀúÀå ÈÄ Á¾·áÇÏ¸é ¸®¹öÆ® ¿Ï·áµÈ´Ù.

¼Ò½º ÆÄÀÏÀº ½º·¹µå¸¦ µµÀÔÇϱâ ÀüÀÇ »óÅ·Πµ¹¾Æ°£´Ù. ·Î±×¸¦ Âï¾îº¸¸é
½º·¹µå¸¦ µµÀÔÇßÀ» ¶§ÀÇ Ä¿¹Ô°ú ÀÌ Ä¿¹ÔÀ» Ãë¼ÒÇÏ°í ¿ø·¡ »óÅ·Πº¹±ÍÇÑ Ä¿¹ÔÀÌ ¸ðµÎ ³²¾Æ ÀÖ´Ù.
$ git log
commit 83ec0ca870238c90858f1a1ebc3bf6120b95226d
(HEAD -> main)
Author: soen <soenmaster@naver.com>
Date:
Sun Oct 27 23:38:56 2024 +0900
Revert "¹è°æÀ½¾Ç ½º·¹µå·Î Àç»ý"
±â¼úÀûÀÎ ¹®Á¦·Î ½º·¹µå µµÀÔ Àá½Ã º¸·ùÇÔ.
This reverts commit 84bdb7207793c96015f03c154fa4a33dbdd9998a.
commit 84bdb7207793c96015f03c154fa4a33dbdd9998a
Author: soen <soenmaster@naver.com>
Date:
Sun Oct 27 23:37:48 2024 +0900
¹è°æÀ½¾Ç ½º·¹µå·Î Àç»ý
commit fd869410c9505b59f4c39d50b7be5627956fa52c
Author: soen <soenmaster@naver.com>
Date:
Sun Oct 27 20:50:08 2024 +0900
´ëÀåµîÀå, °¡¼ÓµµÀ̵¿
revert´Â reset°ú´Â
´Þ¸® Àá½Ã º¸·ùÇÑ °ÍÀÌÁö Áö¿î °ÍÀº ¾Æ´Ï´Ù. ÇÊ¿äÇÒ ¶§ ½º·¹µå¸¦ »ç¿ëÇÑ Ä¿¹ÔÀ¸·Î µ¹¾Æ°¡ Äڵ带 ´Ù½Ã
ÂüÁ¶Çϰųª º¸¿ÏÇÏ¸é µÈ´Ù. °£´ÜÇÑ ÄÚµå¶ó¸é ÇØ´ç ±â´ÉÀ» ÁÖ¼®À¸·Î ¹¾îµÎ´Â ´õ °£ÆíÇÑ ¹æ¹ýµµ ÀÖÁö¸¸ ¿©±â
Àú±â ±¸Á¶°¡ ¸¹ÀÌ ¹Ù²î¾ú´Ù¸é ÁÖ¼®À¸·Î ÀÏÀÏÀÌ °¨½Î±âµµ ¹ø°Å·Ó°í ´ÙÀ½¿¡ Á¤È®È÷ µÇµ¹¸®±âµµ ¾î·Æ´Ù.
Ä¿¹Ô ·Î±×¿¡ ³²±â´Â ¸Þ½ÃÁö´Â ÀÌ·ÂÀ» °ü¸®Çϴµ¥ Å« ¿ªÇÒÀ» ÇÑ´Ù. ´Ù¸¥
°³¹ßÀÚ´Â ¹°·ÐÀÌ°í ³ª ½º½º·Îµµ ½Ã°£ÀÌ Áö³ ÈÄ¿¡ ¾î¶² ÀÛ¾÷À» Çß´ÂÁö ÀÏÀÏÀÌ ¼Ò½º¸¦ º¸°í ¾Ë¾Æ³¾ ¼ö´Â ¾øÀ¸¹Ç·Î ¸Þ½ÃÁö¿¡ ÀÛ¾÷ ±â·ÏÀ» Àß ³²°Ü¾ß ÇÑ´Ù. ¸ðµç ÀÛ¾÷ ³»¿ëÀ» ºüÁü¾øÀÌ ±â·ÏÇÏ°í ±×·¯¸é¼µµ ¿ä¾àÀûÀ¸·Î ½á¾ß Çϴµ¥´Ù ¾î¶² °æ¿ì´Â ¿µ¾î·Î ½á¾ß ÇÏ´Ï ÀÛ¹®À»
Àß ÇØ¾ß ÇÑ´Ù.
±×·¯³ª ¸·»ó Ä¿¹ÔÇÒ ¶§´Â ¹Ùºü¼ ¸Þ½ÃÁö¸¦ ´ëÃæ ½á ³õ°Ô µÇ´Âµ¥ ´ÙÀ½¿¡¶óµµ ¸Þ½ÃÁö¸¦ Á¤¼º½º·´°Ô ¼öÁ¤ÇØ ³õ´Â °ÍÀÌ
ÁÁ´Ù. ¶Ç ¿ÀŸ³ª À߸øµÈ ³»¿ëÀ» ¹ß°ßÇßÀ» ¶§ Áï½Ã ¹Ù·Î Àâ¾Æ µÎ¾î¾ß ÀÌÈÄÀÇ È¥¶õÀ» ¹æÁöÇÒ ¼ö ÀÖ´Ù. ¸Þ½ÃÁö ¼öÁ¤Àº ÁÖ·Î ÃÖÈÄ Ä¿¹Ô¿¡ ´ëÇØ ¼öÇàÇÏ´Â °æ¿ì°¡ ¸¹Àºµ¥ --amend
-m ¿É¼ÇÀ» »ç¿ëÇÑ´Ù.
$ git commit --amend -m "½º·¹µå ÇԺηΠ¾²Áö ¸»°Í"
ÀÌ·¯¸é ¸¶Áö¸· Ä¿¹ÔÀÇ ¸Þ½ÃÁö°¡ ¹Ù²ï´Ù. ¼öÁ¤ ¸í·É¾î°¡ edit³ª modifyÀÌ¸é ½¬¿ïÅÙµ¥ Àß »ç¿ëÇÏÁö ¾Ê´Â amend¿©¼ ¿µ¾î¿¡ Àͼ÷ÇÏÁö ¾ÊÀº »ç¶÷¿¡°Ô´Â »ý¼ÒÇÏ´Ù. ´õ »ó¼¼ÇϰÔ
±â·ÏÇÏ°í ½ÍÀ¸¸é -m ¿É¼ÇÀ» »ý·«ÇÏ¿© ÆíÁý±â¸¦ ¿¬ ÈÄ ¸Þ½ÃÁö¸¦ ÀÛ¼ºÇÑ´Ù.

#À¸·Î ½ÃÀÛÇÏ´Â ÁÙÀº ÁÖ¼®À̸ç Ä¿¹Ô ·Î±×¿¡´Â ³ªÅ¸³ªÁö ¾Ê´Â´Ù. ÆíÁý±â´Â Ä¿¼¸¦ »óÇÏÁ¿ì·Î À̵¿ÇÒ ¼ö ÀÖ¾î ¿©·¯ ÁÙÀÇ ¸Þ½ÃÁö¸¦ ÀÛ¼ºÇϰí À̵¿ÇÏ¸ç ÆíÁýÇÒ ¼ö ÀÖ´Ù. °ú¿¬ ¸Þ½ÃÁö°¡ Àß ¹Ù²î¾ú´ÂÁö ·Î±×¸¦ Ãâ·ÂÇØ º¸ÀÚ.
commit c7691258911cf5f30a1c595bdf229934254c9df9
(HEAD -> master)
Author: soen <soenmaster@naver.com>
Date:
Wed Oct 9 22:09:09 2024 +0900
½º·¹µå ÇԺηΠ¾²Áö ¸»°Í. °ÔÀÓ È¸é°ú µ¿±âÈ ¸ÂÃ߱⠾î·Á¿ò
µ¿±âÈ ¹®Á¦´Â ¼öÁ¤ÁßÀ̳ª ½º·¹µå°¡ Áï½Ã ÀÀ´äÇÏÁö ¾Ê´Â ¹®Á¦°¡ ÀÖ´Ù.
Win32 ½º·¹µå¿¡ ´ëÇØ¼´Â Windows API Á¤º¹À» Âü°íÇÑ´Ù.
Àß ¹Ù²î±â´Â Çߴµ¥ ÀÌ·¯¸é ¹Î°¨ÇÑ ºÎÀÛ¿ëÀÌ ÀÖ´Ù. ¸Þ½ÃÁö¸¸ ÆíÁýÇ߾
Ä¿¹ÔÀ» »õ·Î ÇÏ´Â °Í°ú °°¾Æ Ä¿¹Ô ÇØ½Ã°ªµµ ¹Ù²ï´Ù. ID°¡ ¹Ù²î¸é ÀÌ
ID¸¦ ÂüÁ¶ÇÏ´Â °÷ÀÌ ¿µÇâÀ» ¹ÞÀ» À§ÇèÀÌ ÀÖ´Ù. ·ÎÄÿ¡¼ ÀÛ¾÷ÇÒ ¶§´Â º° ¹®Á¦°¡ ¾ÈµÇÁö¸¸
¿ø°Ý ÀúÀå¼Ò¸¦ º¯°æÇÑ °æ¿ì´Â Ãß°¡ÀûÀÎ Á¶Ä¡°¡ ´õ ÇÊ¿äÇÒ ¼öµµ ÀÖ´Ù.
ÃÖÈÄ Ä¿¹ÔÀÌ ¾Æ´Ñ ÀÌÀü Ä¿¹ÔÀÇ ¸Þ½ÃÁö¸¦ º¯°æÇÏ´Â °Íµµ °¡´ÉÀº ÇÏÁö¸¸ º¹ÀâÇÏ°í ¹ø°Å·Ó´Ù. ¸í·ÉÇàÀº ¹º°¡¸¦ ¼±ÅÃÇÏ Çϱ⿡´Â ÀûÀýÄ¡ ¾ÊÀº ȯ°æÀ̶ó ´Ü°è¸¦ °ÅÃÄ¾ß ÇÑ´Ù. ´ÙÀ½
¸í·ÉÀ¸·Î ÃÖ±Ù ¸î °³±îÁöÀÇ Ä¿¹ÔÀ» ÆíÁýÇÒ °ÍÀÎÁö ÁöÁ¤ÇÑ´Ù. ÃÖ±ÙºÎÅÍ
3°³±îÁö¸¸ ºÒ·¯¿Í º¸ÀÚ.
$ git rebase -i HEAD~3
ÀÌ ¸í·ÉÀº ÃÖ±Ù 3°³ÀÇ Ä¿¹Ô ¸Þ½ÃÁö¸¦ Àоî¿Í ±âº» ÆíÁý±â·Î º¸¿© ÁØ´Ù. ¿©±â¼ ÆíÁýÇÒ ´ë»óÀ» ¼±ÅÃÇϴµ¥ ¸í·ÉÇàÀº üũ¹Ú½º °°Àº Æí¸®ÇÑ ÀåÄ¡°¡ ¾øÀ¸´Ï ÆíÁý±â¿¡ ¸ñ·ÏÀ» Ç¥½ÃÇÏ°í °í¸£µµ·Ï
ÇÑ´Ù.

¿©±â¼ pickÀ̶ó°í Ç¥½ÃµÈ °ÍÀº Àоî¿Ô´Ù´Â ¶æÀÌ´Ù. ¼öÁ¤ÇÏ·Á´Â ¸Þ½ÃÁöÀÇ pickÀ»
reword·Î ¹Ù²Ù¾î ÆíÁýÇÒ ´ë»óÀ» ÁöÁ¤ÇÑ´Ù. °¡¿îµ¥ ¸Þ½ÃÁöÀÇ pickÀ» reword·Î º¯°æ ÈÄ ÀúÀå, Á¾·áÇÏ¸é ¼öÁ¤ ´ë»ó¿¡ ´ëÇØ »õ·Î¿î ÆíÁý±â¸¦ ¿¾î ÁØ´Ù. ¿©±â¼ ¸Þ½ÃÁö¸¦
ÆíÁýÇÑ´Ù.
¹è°æÀ½¾Ç ½º·¹µå·Î Àç»ýÇßÀ¸³ª ¹®Á¦°¡ ÀÖ¾î º¸·ùÇÔ
ÀúÀå ÈÄ ÆíÁý±â¸¦ Á¾·áÇÏ¸é ¸Þ½ÃÁö ¼öÁ¤ÀÌ ¿Ï·áµÈ´Ù. ¼±ÅÃÀ» À§ÇØ Çѹø, ÆíÁýÀ» À§ÇØ Çѹø ÆíÁý±â°¡ µû·Î ¿¸®´Â Á¡À» ÁÖÀÇÇÏÀÚ. ·Î±×¸¦ Âï¾î
º¸¸é ¸Þ½ÃÁö°¡ ¼öÁ¤µÇ¾î ÀÖÀ¸¸ç À̶§µµ Ä¿¹Ô ÇØ½Ã´Â ¹Ù²ï´Ù.
¼±ÅÃ, ÆíÁýÀÇ µÎ ´Ü°è¸¦ °ÅÄ¡´õ¶óµµ ¾î·°Å³ª ¸Þ½ÃÁö¸¦ ¼öÁ¤ÇÒ ¹æ¹ýÀ»
Á¦°øÇÏ´Â °ÍÀº °í¸¶¿î ÀÏÀÌ´Ù. ±×·¯³ª º¸´Ù½ÃÇÇ Á÷°üÀûÀÌÁö ¾Ê°í ÀýÂ÷µµ º¹ÀâÇÏ´Ù. ±×·¡¼ óÀ½ Ä¿¹ÔÇÒ ¶§ Àß ÀÛ¼ºÇÏ´Â°Ô ÃÖ¼±ÀÌ°í ºÎµæÀÌÇÏ°Ô ±×·¯Áö ¸øÇßÀ¸¸é ´Ù¸¥ Ä¿¹ÔÀ» ¿Ã¸®±â Àü¿¡ ¹Ì¸® ÆíÁýÇØ
µÎ¾î¾ß ÇÑ´Ù. ±×³ª¸¶ ÃÖÈÄ Ä¿¹Ô ¸Þ½ÃÁö¸¦ ¼öÁ¤ÇÏ´Â °ÍÀº ½¬¿î ÆíÀÌ´Ù.
±êÀº ¿öÅ·Æ®¸®¿¡ ÀÖ´Â ¸ðµç ÆÄÀϰú ¼ºê µð·ºÅ丮¸¦ ÃßÀû ´ë»óÀ¸·Î ÀνÄÇÏ¸ç ½ºÅ×ÀÌÁö¸¦ °ÅÃÄ ÀúÀå¼Ò¿¡ º¸°üÇÑ´Ù. ¹°·Ð add ¸í·ÉÀ¸·Î ÃßÀûÀ» Ç϶ó°í Áö½ÃÇÑ ÀÌÈĺÎÅÍÀÌÁö¸¸ ¼ö¸¹Àº
ÆÄÀÏÀ» °³º°ÀûÀ¸·Î ÁöÁ¤Çϱâ´Â ¾î·Æ°í µð·ºÅ丮 ´ÜÀ§·Î ½ºÅ×ÀÌÁö¿¡ ¿Ã¸®¹Ç·Î Æú´õ³»ÀÇ ¸ðµç ÆÄÀÏÀÌ ÃßÀû ´ë»óÀÌ´Ù.
±×·¯³ª ÇÁ·ÎÁ§Æ®¿¡ ¼ÓÇÏ´õ¶óµµ ÃßÀûÇÒ Çʿ䰡 ¾ø´Â ÆÄÀϵµ ¸¹´Ù. ÄÄÆÄÀÏÁß¿¡
»ý¼ºµÇ´Â obj ÆÄÀÏ, ÄÄÆÄÀÏ °á°ú·Î ¸¸µé¾îÁø exe ÆÄÀÏÀº ¼Ò½º¸¸ ÀÖÀ¸¸é ¾ðÁ¦µçÁö »õ·Î ¸¸µé ¼ö ÀÖÀ¸¹Ç·Î ±»ÀÌ ¹é¾÷ÇÒ Çʿ䰡 ¾ø´Ù. ¶Ç bak³ª tmp µî
ƯÁ¤ È®ÀåÀÚÀÇ ÆÄÀÏÀ̳ª Debug, Release °°Àº Æú´õµµ ¹é¾÷ ´ë»óÀÌ ¾Æ´Ï´Ù.
ÀϹÝÀûÀ¸·Î »ç¶÷ÀÌ ¸¸µç °ÍÀº º¸°üÀÌ ÇÊ¿äÇÏÁö¸¸ ±â°è°¡ »ý¼ºÇ߰ųª ¿ÜºÎ¿¡¼ ¹ÞÀº ÆÄÀÏÀº ¾ðÁ¦µçÁö ´Ù½Ã ±¸ÇÒ ¼ö
ÀÖ¾î ÃßÀûÇÒ ÇÊ¿ä¾ø´Ù. ÃßÀû¿¡¼ Á¦¿ÜÇÒ ÆÄÀÏÀÇ Á¶°ÇÀ»
.gitignore ÆÄÀÏ¿¡ ÀÛ¼ºÇØ ³õÀ¸¸é ÀÌ Á¶°Ç¿¡ ÇØ´çÇÏ´Â ÆÄÀÏÀº ½ºÅ×ÀÌÁö¿¡ ¿Ã¸®Áö ¾ÊÀ¸¸ç ÃßÀûµµ ÇÏÁö ¾Ê´Â´Ù. Á¦¿ÜÇÒ ÆÄÀÏÀ̳ª Æú´õ, ƯÁ¤ È®ÀåÀÚ µîÀ» ±â·ÏÇØ ³õÀ¸¸é µÈ´Ù. ¿öÅ·Æ®¸®¿¡ .gitignore ÆÄÀÏÀ» »ý¼ºÇÏ°í ´ÙÀ½ Á¶°ÇÀ» ±â·ÏÇØ
µÎÀÚ.
# ¹«½ÃÇÒ ÆÄÀÏ ¸ñ·Ï
memo.txt
Debug/
Release/
*.obj
*.exe
!model.obj
#À¸·Î ½ÃÀÛÇϸé ÁÖ¼®ÀÌ´Ù. ƯÁ¤
ÆÄÀÏ À̸§À» ¿ÏÀüÈ÷ ÀûÀ¸¸é ÀÌ ÆÄÀÏÀº ÃßÀû ´ë»ó¿¡¼ Á¦¿ÜµÈ´Ù. /·Î ³¡³ª´Â°Ç µð·ºÅ丮ÀÌ´Ù. ÆÐÅÏÀº ¿ÍÀϵå Ä«µå¸¦ ¾²µÇ ÁַΠƯÁ¤ È®ÀåÀÚ¸¦ ÁöÁ¤ÇÑ´Ù. Á¦¿ÜÇÑ
°ÍÁß¿¡ ¿¹¿Ü¸¦ µÑ ¶§´Â ! ±âÈ£¸¦ »ç¿ëÇϴµ¥ È®ÀåÀÚ°¡ objÀÎ
ÆÄÀÏÀº ÃßÀû ´ë»ó¿¡¼ Á¦¿ÜÇÏÁö¸¸ model.obj´Â ¿¹¿ÜÀûÀ¸·Î ÃßÀû ´ë»óÀ¸·Î Æ÷ÇÔÇ϶ó´Â ¶æÀÌ´Ù.
.gitignore´Â ÃßÀû¿¡¼ Á¦¿ÜÇÒ ÆÄÀÏÀ» ÁöÁ¤ÇÏÁö¸¸ ÀÌ ÆÄÀÏ ÀÚü´Â
ÃßÀû ´ë»óÀÌ´Ù. ¿Ö³ÄÇϸé Á¦¿Ü ´ë»ó Á¶°Çµµ ¼ö½Ã·Î ¹Ù²ð ¼ö ÀÖ¾î ¹öÀüÀÇ ¼³Á¤ Á¤º¸¿¡ ÇØ´çÇϱ⠶§¹®ÀÌ´Ù. ÀÌ ÆÄÀÏ¿¡ ÀÛ¼ºÇÑ Á¶°ÇÀÌ È¿°ú¸¦ ¹ßÈÖÇÏ·Á¸é ½ºÅ×ÀÌÁö¿¡ ¿Ã¸®°í Ä¿¹Ô±îÁö ÇØ¾ß ÇÑ´Ù.
$ git add .gitignore
$ git commit -m "¹«½ÃÇÒ ÆÄÀÏ µî·Ï"
.gitignore¸¦ Ä¿¹ÔÇÑ ÈĺÎÅÍ ÀÌ ÆÄÀϳ»ÀÇ Á¶°Ç¿¡ ÇØ´çÇÏ´Â ÆÄÀÏÀº
´õ ÀÌ»ó ½ºÅ×ÀÌÁö·Î ¿Ã¸®Áö ¾Ê´Â´Ù. ´Ü, ÀÌ¹Ì ½ºÅ×ÀÌÁö¿¡
¿Ã¶ó°¡ ÀÖ´Â ÆÄÀϱîÁö ³»·Á ÁÖÁö´Â ¾ÊÀ¸¹Ç·Î ÀÌ·±°Ç ¼öµ¿À¸·Î Á÷Á¢ ³»·Á¾ß ÇÑ´Ù. ¾ÖÃÊ¿¡ ÇÁ·ÎÁ§Æ®¸¦ ½ÃÀÛÇÒ
¶§ºÎÅÍ Á¦¿Ü ´ë»óÀ» ¹Ì¸® ÁöÁ¤ÇØ µÎ´Â °ÍÀÌ ÀÌ»óÀûÀÌ´Ù.
±êÇãºê´Â ¾ð¾îº°·Î ÃßÀû Á¦¿ÜÆÄÀÏ ¸ñ·ÏÀ» Àß ¸¸µé¾î ³õÀº ÅÛÇø´À» Á¦°øÇÑ´Ù.
C++À̳ª Java µî ¸¹ÀÌ ¾²´Â ¾ð¾îÀÇ Áß°£ ÆÄÀÏ ¸ñ·ÏÀÌ »·ÇØ ´©°¡ ¸¸µé¾îµµ ºñ½ÁÇÒ ¼ö¹Û¿¡
¾ø´Ù. ¿¹»óº¸´Ù ¸ñ·ÏÀÌ ±æ°í º¹ÀâÇϹǷΠÅÛÇø´À» °¡Á®¿Â ÈÄ ¿ëµµ¿¡ ¸Â°Ô ¼öÁ¤Çؼ »ç¿ëÇÏÀÚ.