
ÔÚÓ¦ÓóÌÐò¿ª·¢¹ý³ÌÖУ¬ºÜÖØÒªµÄÒ»²¿·Ö¹¤×÷¾ÍÊÇÈçºÎ½øÐÐÔ´ÂëµÄ°æ±¾¿ØÖÆ¡£µ±´úÂë³öÏÖÎÊÌâʱ£¬ÎÒÃǾÍÐèÒª½«´úÂë»Ö¸´µ½ÔÏÈÕý³£µÄ°æ±¾¡£Èç¹ûÊǶà¸öÈ˹²Í¬¿ª·¢Ò»¸öÏîÄ¿£¬ÄÇô´úÂëµÄ¿ØÖƾͻá·Ç³£¸´ÔÓ¡£ÐÒÔ˵ÄÊÇ£¬¿ª·¢Õß²»ÐèÒª×Ô¼º¿ØÖÆÕâЩ£¬ÒòΪÓÐרÃŵÄÈí¼þÀ´¸ºÔ𣬽Ð×ö°æ±¾¿ØÖÆÏµÍ³¡£
°æ±¾¿ØÖÆÏµÍ³£¬»òÕß˵Ð޸ĿØÖÆÏµÍ³£¬Êµ¼ÊÉÏÊÇÒ»ÖÖ¼ì²âÔ´ÎļþµÄ¸Ä±ä²¢½«Æä±£´æÁô×÷ÒÔºó²Î¿¼Ê¹ÓõĻúÖÆ£¨Èí¼þ£©¡£´ËÍ⣬Ëü»¹ÄܼǼÆäËûÓÐÓÃÐÅÏ¢£¬±ÈÈçÊÇÄĸö¿ª·¢ÕßÐÞ¸ÄÁË´úÂ룬ºÎʱÐ޸ĵģ¬ÐÞ¸ÄÁËÄÄÒ»²¿·Ö£¬ÒÔ¼°ÆäËûÀúÊ·ÐÅÏ¢¡£°æ±¾¿ØÖÆÏµÍ³¿ÉÒԱȽϲ»Í¬°æ±¾´úÂëµÄ²»Í¬£¬ÓбØÒªÊ±Äָܻ´Õû¸öÏîÄ¿µ½ÒÔǰµÄ°æ±¾£¬×·×ÙÓк¦´úÂë´Ó¶ø¼õÉÙ²úÆ·µÄ´íÎó¡£
ͨ¹ý°æ±¾¿ØÖÆÏµÍ³£¬¿ª·¢Õß¿ÉÒÔÔÚÒ»¸öÏîÄ¿µÄ²»Í¬·ÖÖ§ÉϹ¤×÷£¬µ±ÏîÄ¿µÄ¸÷¸ö²¿·Ö¿ª·¢Í걸ʱ£¬½«ËüÃǷŵ½Ò»ÆðÐγÉ×îÖյİ汾£¬Õâ¸ö¹ý³Ì±»³ÆÎªºÏ²¢¡£ÊÂʵÉÏ£¬ÕâÖÖ×ö·¨ÔÙÍŶӺÍÈí¼þ¹«Ë¾ÖÐÏ൱³£¼û£ºÃ¿¸öÈ˸ºÔðÏîÄ¿µÄÒ»²¿·Ö£¬×îÖÕËùÓв¿·Ö±»ÕûºÏµ½Ò»ÆðÐγÉ×îÖÕ²úÆ·¡£
¶ÔÓÚ¸öÈË¿ª·¢ÕßÀ´Ëµ£¬°æ±¾¿ØÖÆÏµÍ³²¢²»ÊDZØÐèµÄ£¬µ«ÊÇÎÒÃÇÈÔȻǿÁÒÍÆ¼ö¿ª·¢ÕßʹÓÃËü£¬ÒòΪËü¿ÉÒÔʹ´úÂë·½±ãµÄÔÚÓдíÎóµÄ°æ±¾ºÍ¿ÉÒÔ¹¤×÷µÄ°æ±¾Ö®¼äת»»¡£ÊÂʵÉÏ£¬ºÜ¶à¿ª·¢Õß´ÓÀ´²»Ê¹ÓÃÀàËÆµÄ¹¤¾ß£¬ËûÃÇ»áÔÚÏîÄ¿Ìí¼ÓÐµĹ¦ÄÜʱÊÖ¶¯±£´æÔÏȵÄÏîÄ¿¡£ÕâÆäʵÊÇÒ»¸öºÜ²»ºÃµÄϰ¹ß£¬ÒòΪ°æ±¾¿ØÖÆÈí¼þ¿ÉÒÔ¸üºÃ¸ü¸ßЧµØÍê³ÉÕâÏîÈÎÎñ¡£
GitÊÇÒ»¸ö³£¼ûµÄ°æ±¾¿ØÖÆÏµÍ³£¬Ëü×ʼÊÇÓÉLiunxÖ®¸¸Linus Torvalds¿ª·¢µÄ£¬GitʹÓÃÐéÄâĿ¼£¬ÓÖ³ÆÎªrepositories£¬À´¹ÜÀíÒ»ÇÐÊÂÎï¡£Git¿ÉÒÔͨ¹ýÃüÁîÐе÷Óã¬Ò²ÓÐרÃÅΪËüÉè¼ÆµÄ×ÀÃæÓ¦ÓÃÈí¼þ¡£Èç¹ûGit¶ÔÄãÀ´ËµºÜİÉú£¬ÎÒ½¨ÒéÄãÔÚÍøÉϲ鿴һЩËüµÄÏà¹ØÐÅÏ¢¡£¹ØÓÚGit¸üÉî²ã´ÎµÄÄÚÈݶ¼²»ÔÚ±¾ÎĵÄÌÖÂÛ·¶Î§Ö®ÄÚ¡£
´ÓXcode5¿ªÊ¼ÒýÈëÁËʹÓÃgitµÄһЩÐÂÌØÐÔ¡£Ëü½«gitµÄ¸÷ÏÄÜÕûºÏµ½Ò»¸ö²Ëµ¥ÖУ¬²¢Ìṩ×Ӳ˵¥À´½øÐÐÈí¼þºÏ²¢µÄ¿ØÖÆ¡£ÔÚ½ÓÏÂÀ´µÄÔĶÁÖÐÄã»á·¢ÏÖ£¬Ê¹ÓÃgitÀ´½øÐа汾¿ØÖÆÏ൱µÄ¼òµ¥¿ì½Ý¡£
ÎÒÃǽÓÏÂÀ´µÄÈÎÎñ¾ÍÊÇѧϰÈçºÎÔÚXcodeÖÐʹÓÃgit£¬ÒÔ¼°XcodeÊÇÈçºÎÕûºÏGitµÄ¸÷ÏÄÜ¡£Èç¹ûÄã¾õµÃ¶ÔÕâЩºÜİÉú£¬ÎÒ½¨ÒéÄãÏÈÉÏÍøËÑË÷Ò»ÏÂÏà¹ØµÄÄÚÈÝ¡£ÔÚ½ÓÏÂÀ´µÄ½Ì³ÌÖУ¬ÎÒ»á¼Ù¶¨ÄãÒѾÁ˽âÁ˰汾¿ØÖÆÏµÍ³ºÍgitÊÇʲô£¬²¢½«×¢ÒâÁ¦¼¯ÖÐÔÚXcodeÈçºÎ¹ÜÀíËüÉÏ¡£
GIT Demo¸ÅÊö£¨GIT Demo Overview£©
ÓëÆäËû½Ì³ÌÖеÄdemo app²»Í¬£¬Õâ´ÎÎÒÃDz»»áȥʵÏÖÒ»¸öÓ¦ÓÃÀ´ÑÝʾijһÏîiOS SDKÌØÐÔ£¬×îÖÕÎÒÃÇÒ²²»»á²úÉúÒ»¸öʾÀý²úÆ·¡£Êµ¼ÊÉÏ£¬ÎÒÃÇ»áн¨Ò»¸ödemo¹¤³Ì£¬Ð´¼¸ÐдúÂ룬ȻºóÀûÓÃÕâ¸ö¹¤³ÌÀ´ÑÝʾXcodeÌṩµÄ°æ±¾¹ÜÀí¹¦ÄÜ¡£»»¾ä»°Ëµ£¬ÎÒÃǻἯÖÐ×¢ÒâÀïÓÚIDEÉÏ£¬¶ø²»ÊÇiOS±¾Éí¡£
ÎÒ½¨ÒéÄã¸ú×ÅÎÒÒ»ÆðÒ»²½Ò»²½ÊµÏÖÕâ¸öʵÀýÏîÄ¿£¬ÔÚÏàÓ¦µÄµØ·½ÊÖ¶¯Ìí¼Ó´úÂ룬²»Óõ£ÐÄ£¬´úÂëÁ¿²»ÊǺܶࡣ¸ú׎̵̳IJ½Ö裬ÎÒÃǽ«Ö´ÐжàÖÖÖØ¸´µÄ°æ±¾¿ØÖÆÏà¹ØµÄ²Ù×÷£¬²¢ÇÒÎÒÃDZØÐëʵʱ¿´µ½½á¹û¡£Èç¹ûÎÒÖ»ÊÇÌṩÁËÒ»¸ö¾ß±¸ËùÓвÙ×÷µÄµÄÓ¦Óã¬ÄÇôÄãÎÞ·¨Ìå»áµ½ÕâЩ¸Ä±ä¡£
ºÃÁË£¬·Ï»°²»¶à˵ÁË£¬ÈÃÎÒÃÇ×Ðϸ¿´¿´Ê¹ÓÃXcode½øÐа汾¿ØÖƵÄÒªµã°É¡£
´´½¨Ò»¸öGitÔ´£¨Creating a Git repository£©
ÿ´ÎÔÚXcodeÖд´½¨Ð¹¤³ÌµÄʱºò£¬¶¼»áÌáʾ¿ª·¢ÕßÊÇ·ñ½«ÏîÄ¿×÷Ϊһ¸ö±¾µØµÄgitÔ´¡£ÔÚ´´½¨¹¤³ÌµÄ×îºóÒ»²½Xcode»áÓÐÒ»¸ö¸´Ñ¡¿ò£¬Èç¹ûÑ¡ÔñÁËËü£¬gitÔ´¾Í»á±»Ìí¼Óµ½¹¤³ÌĿ¼ÖС£Í¨³£Õâ¸öÑ¡Ïî»á±»ºöÊÓ£¬»òÊDZ»ÈÏΪÊÇXcodeµÄÁíÍâÒ»¸öûÓõŦÄÜ£¬ÓÈÆäÊÇ´ÓδÓùýgitµÄ¿ª·¢Õߣ¬»òÊDZà³ÌÐÂÊÖ¡£
´ò¿ªXcode£¬´´½¨Ò»¸öÐµĹ¤³Ì¡£Ñ¡ÔñiOSÇøµÄ“Application”£¬ÔÚÓ¦ÓÃÄ£°åҳѡÔñ“Single View Application”¡£

Ñ¡ÔñÏÂÒ»²½£¬ÔÚÏîÄ¿ÃûÖÐÊäÈëGitDemo£¬È·±£ÏÂÃæµÄDevices²Ëµ¥Ñ¡ÔñiPhone£¬ÎÞÐèiPad»òÕßuniversal app¡£

µã»÷ÏÂÒ»²½£¬Ò²¾ÍÊÇ×îºóÒ»¸ö²½Ö裬ÔÚÕâÀïÏÈÑ¡ÔñÒ»¸öÒª±£³Ö¹¤³ÌµÄĿ¼£¬È»ºóÔÚ´°¿Úµ×²¿Ñ¡ÉÏCreate git repository on (My Mac ):

ĬÈÏÇé¿öÏ£¬Õâ¸öÑ¡ÏîÊDZ»Ñ¡Éϵģ¬Èç¹ûÄã²»ÏëʹÓÃgit£¬Äã¿ÉÒÔÈ¡ÏûËü£¬µ«ÊÇÎÒ²»½¨ÒéÕâô×ö¡£±¾½Ì³ÌÖУ¬ÄãÐèÒª½«Ëü¹´Ñ¡ÉÏ£¬È»ºóµã»÷´´½¨°´Å¥¡£
´´½¨ÍêÏîĿ֮ºó£¬´ò¿ªFinder£¬ÕÒµ½ÏîÄ¿´æ´¢µÄĿ¼£¬ÔÚĿ¼ÖУ¬ÓÐÒ»¸ö.gitµÄ×ÓĿ¼£¬Ê±XcodeΪ´æ´¢gitÔ´Ïà¹ØÊý¾Ý×Ô¶¯´´½¨µÄ¡£

Èç¹ûÄã¿´²»µ½.gitĿ¼£¬ÄãÐèÒªÈÃÒþ²ØµÄÎļþ¿É¼û¡£¾ßÌå×ö·¨¾ÍÊÇ´ò¿ªÒ»¸öTerminal´°¿Ú£¬ÊäÈëÒÔÏÂÃüÁ
defaults write com.apple.finder AppleShowAllFiles TRUE |
¶ÔÓÚÒÔǰµÄOS X°æ±¾£¬
efaults write com.apple.Finder AppleShowAllFiles TRUE |
ΪÁËÖØÆôFinderÓ¦Óã¬ÊäÈë
Õâ¾ÍÊDZ¾ÏîÄ¿ÔÚ±¾µØgitÔ´±£´æµÄλÖá£Êµ¼ÊÉÏ£¬Èç¹ûÄãÑ¡ÉÏÁËÏàÓ¦µÄÑ¡ÏÕâ¸öĿ¼¾Í»á±»´´½¨¡£ÏàÓ¦µØ£¬ÔÚÄã´´½¨ÐÂÓ¦ÓÃʱ£¬.git×ÓĿ¼Ҳ»áһͬ±»´´½¨¡£
ÏÔȻʹÓÃXcode´´½¨Ò»¸ögitÔ´ºÁ²»·ÑÁ¦£¬È»¶ø£¬Èç¹ûÄãÔÚÏîÄ¿´´½¨Ê±Î´´´½¨gitÔ´£¬Ö®ºóÓÖÏë¼ÓÉÏÕâ¸ö¹¦ÄÜÔõô°ìÄØ£¿ºÃ°É£¬ÆäʵÄã¿ÉÒÔÔÚÈκÎʱºòΪÄãµÄÏîÄ¿´´½¨Ô´£¬µ«ÊDz»ÊÇʹÓÃXcode¡£¾¡¹ÜÕâÖÖÇé¿öºÜÉÙ·¢Éú£¬ÎÒ»¹ÊÇ»á¸æËßÄã¸ÃÔõô×ö¡£
Èç¹ûÄãÔ¸ÒâµÄ»°£¬Äã¿ÉÒÔÖ±½ÓÌøµ½±¾½Ì³ÌµÄÏÂÒ»²¿·Ö¡£ÎÒ½¨ÒéÄã½Ó×ŶÁÏÂÈ¥£¬ÒòΪ½ÓÏÂÀ´ÕâЩÐÅÏ¢»¹ÊǺÜÓÐÓõġ£
ÔÚ½øÐÐÑÝʾǰ£¬ÄãÐèÒªÊ×ÏÈͨ¹ýXcodeÏÂÔØCommand Line Tools£¬ÒòΪÎÒÃÇÒªÔÚTerminalϲÙ×÷£¬²¢ÇÒÐèҪһЩ¶îÍâµÄ¹¤¾ß¡£Èç¹ûÄ㻹ûÓÐÏÂÔØ£¬ÄǾÍÈ¥Xcode>Preferences…²Ëµ¥£¬Ñ¡ÔñDownloadÑ¡Ï£¬Õ¹¿ªComponentsÇø£¬µã»÷Commond Line ToolsÓÒ±ßÏÂÔØ°´Å¥¡£ÏÂÔØÍê³Éºó£¬Ò»¸ö¶Ô¹´·ûºÅ»áÈ¡´úÏÂÔØ°´Å¥¡£

ÏÖÔÚ£¬ÎªÕâ¸öÀý×ÓÔÙ´´½¨Ò»¸ö¹¤³Ì£¬Íêʺó¿ÉÒÔɾÁËËü¡£ÔÚ´´½¨Ê±È¡ÏûÄǸö´´½¨gitÔ´µÄÑ¡Ïî¡£Õâ´ÎÎÒÃDz»ÏëÈÃXcodeΪÎÒÃÇ×¼±¸Ò»¸öÔ´¡£°ÑÕâ¸ö¹¤³ÌÃüÃûΪNoGitExample£¬±£´æµ½×ÀÃæ£¬È»ºóÄã¿ÉÒÔ¸úÎÒ½ÓÏÂÀ´ÊäÈëµÄÃüÁîÒ»Ñù¡£
Ò»ÇÐ×¼±¸Í×µ±ºó£¬´ò¿ªTerminal´°¿Ú£¨Èç¹ûÄã֮ǰ´ò¿ªÁËÒ»¸ö£¬ÄǾÍÏȹصôËüÔÙÖØÆô£¬´Ó¶øÊ¹ÎÒÃǰ²×°µÄÃüÁîÐй¤¾ßÉúЧ£©¡£ÏÂÃæÇл»µ½ÐÂÏîÄ¿µÄĿ¼£º
cd /Users/YOUR-USERNAME/Desktop/NoGitExample |
Õâ»á³õʼ»¯Ò»¸ö¿ÕµÄÔ´£¬Èç¹ûÄãÔÚFinderÀïÃæ²é¿´»òÊÇÊäÈëlsÃüÁÄã»á¿´µ½.git×ÓĿ¼ÒѾ±»´´½¨£¬ºÜºÃ£¬½ÓÏÂÀ´ÊäÈ룺
ÕâÑù£¬µ±Ç°Ä¿Â¼ËùÓеÄÄÚÈݾͱ»Ìí¼Óµ½Ô´ÀïÃæÈ¥ÁË£¬×îºó£¬ÊäÈëÒÔÏÂÃüÁ
git commit -m 'Initial commit' |
½ÓÏÂÀ´»á³öÏÖÒ»¸ö±¾µØgitÔ´ËùÖ´ÐеĸıäÁÐ±í£¬ÈçÏÂͼËùʾ£º

ÏÖÔÚgitÔ´¾Í½¨ºÃÁË£¬µ«ÊÇÈç¹ûÄã»Øµ½Xcode£¬´ò¿ªSource Control²Ëµ¥£¬Äã»á·¢ÏÖÒ»ÇÐÈÔÈ»ÊDZ»½ûÓá£

ÕâÊÇÒòΪµ±ÎÒÃÇʹÓÃÃüÁîÐй¤¾ß´´½¨gitԴʱ£¬Xcode²¢Î´±»Í¨Öª£¬ÏÂÃæµã»÷Xcode>Quit Xcode£¬È»ºóÖØÐÂÆô¶¯Ëü£¬ÔÚNoGitExampleÏîÄ¿ÖУ¬Èç¹ûÄãÔٴδò¿ªSource Control²Ëµ¥£¬Äã»á·¢ÏÖËùÓеÄÑ¡ÏîÒѾ±»Ê¹ÄÜÁË£¬¾ÍÏñÒ»¿ªÊ¼¹´Ñ¡ÉÏ´´½¨gitÔ´Ò»Ñù¡£

ÏÖÔÚÕâ¸öÏîÄ¿µÄʹÃüÒѾ½áÊø£¬Äã¿ÉÒÔÔÚ×ÀÃæÉÏɾ³ýËü¡£
ÏÖÔÚÄãÖªµÀÈçºÎΪÄãËùÓеÄÏîÄ¿Ìí¼ÓgitÔ´ÁË£¬¼´Ê¹ÄãÔÚ´´½¨Ê±Ã»ÓÐÌí¼Ó£¬ÄãÒ²¿ÉÒÔÔÚÒÔºóÈκÎʱºòΪËüÊÖ¶¯Ìí¼ÓÔ´¡£
Ìá½»¸ü¸Ä£¨Committing Changes£©
Ìá½»¸ü¸ÄÖ¸µÄÊÇ´¢´æÒ»¸ö°üº¬ËùÓиü¸ÄµÄа汾¡£Ò»°ãÀ´Ëµ£¬µ±ÎÒÃÇ×öÁËһЩÓÐÒâÒåµÄ¹¤×÷£¬²¢ÇÒÏîÄ¿´¦ÓÚijһ¸öÎȶ¨×´Ì¬Ê±£¬¾Í¿ÉÒÔÌá½»Ò»´Î¸ü¸Ä¡£È»¶ø¾ßÌåʲôʱºòÌá½»¸ü¸Ä²¢Ã»ÓÐÓ²ÐԵĹ涨¡£ÎҵĽ¨ÒéÊÇ£º´ÓÉÏ´ÎÌá½»¸ü¸ÄÖ®ºó£¬Èç¹ûÄãÅ»¨·Ñ´óÁ¿Ê±¼äºÍ¾«Á¦×öµÄй¤×÷±»ÎóɾºÜÄѻָ´£¬Äã¾ÍÐèÒªÌá½»¸ü¸ÄÁË¡£
ĬÈÏÇé¿öÏ£¬XcodeÔÚÏîÄ¿´´½¨Ö®³õ»áÌá½»Ò»´Î¸ü¸Ä£¬ÕâÊÇΪÁ˱£´æÏîÄ¿³õʼ״̬¡£ÕâÏ×÷»áÔÚºǫ́Íê³É£¬²»»á´òÈÅÄã»òÕßÒªÇóÄã½øÐÐÈ·ÈÏ¡£Èç¹ûÄãÔÚÏîÄ¿´´½¨Ê±Ã»ÓÐÌí¼ÓgitÔ´£¬µ«ÊÇÖ®ºóÄãÊÖ¶¯Ìí¼ÓÁË£¬Äã¿ÉÒÔͨ¹ýÎÒÃÇÏÈǰʹÓùýµÄÃüÁîÀ´½øÐÐÌá½»£ºgit commit -m ‘Initial commit’
ʵ¼ÊÉÏ£¬ÄãÈç¹ûÈ¥Source Control>History…²Ëµ¥£¬Äã¾Í»á¿´µ½³õ´ÎÌá½»¸ü¸ÄµÄ¼Ç¼£¬ÒÔºóÿ´ÎÌá½»¸ü¸Ä£¬¶¼»áÔÚÕâÀïÓÐËù¼Ç¼¡£

½ÓÏÂÀ´ÈÃÎÒÃÇС·ùÐÞ¸ÄÒ»ÏÂÎÒÃǵŤ³Ì£¬ÔÚViewController.mÎļþÖУ¬Ìí¼ÓÒÔÏÂÊôÐÔÉùÃ÷£º
@interface ViewController ()
@property (nonatomic) int sum;
@end |
½ÓÏÂÀ´£¬ÏñÏÂÃæÕâÑùÐÞ¸ÄviewDidLoad·½·¨£º
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
int a = 5;
int b = 10;
self.sum = a + b;
NSLog("The result is: %d", self.sum);
} |
¿´Ò»ÏÂProject navigatorÃæ°å£¬Äã»á·¢ÏÖÔÚViewController.mÎļþÅԱߣ¬Ìí¼ÓÁËÒ»¸öM×Öĸ£¬ÏñÏÂÃæÕâÑù£º

ÕâÒâζ×ÅÄǸöÎļþÒѾ±»Ð޸ģ¬Ïà±ÈÉÏÒ»´ÎÌá½»¸ü¸Ä£¬ÎļþÓÐËù¸Ä±ä¡£Ò»°ãÀ´Ëµ£¬Äãÿ´Î¸Ä±äÎļþ£¬¶¼»á³öÏÖÕâ¸öM×Öĸ£¬ÌáÐÑÄãÓÐδÌá½»µÄ¸ü¸Ä¡£
ÏÂÃæ¿´¿´ÈçºÎÌá½»¸ü¸Ä£¬Æäʵ·Ç³£¼òµ¥£¬Ö»ÐèÒª´ò¿ªSource Control>Commit²Ëµ¥£¬ÏÂÃæ´°¿Ú¾Í»á³öÏÖ£º

ÈÃÎÒÃÇÒ»²½²½¿´¿´Ëü¸æËßÎÒÃÇÁËʲô¡£ÔÚ×ó±ß£¨±ê1µÄÇøÓò£©£¬ÁгöÁËËùÓб»¸ü¸ÄµÄÎļþ£¬ÔÚÕâ¸öÀý×ÓÖУ¬Ö»ÓÐViewController.mÕâ¸öÎļþ±»¸Ä±ä£¬Òò´ËÁбíÖÐÖ»ÓÐËü±»ÏÔʾ¡£Èç¹ûÄã×Ðϸ¹Û²ì£¬Äã»á·¢ÏÖÎļþ×ó±ßÓÐÒ»¸öÑ¡Ôñ¿ò£¬Ä¬ÈÏÇé¿öÏÂÊDZ»Ñ¡Öеģ¬Èç¹ûÄãÈ¡ÏûËü£¬Õâ¸öÎļþµÄ¸ü¸Ä¾Í²»»á±»Ìá½»¡£
ÔÚ´°¿ÚµÄÖмäÇøÓò£¬ÓÐÁ½¸öÔ¤ÀÀ´°¿Ú£¬×ó±ßÄǸöÊÇÎļþµ±Ç°°æ±¾£¬ÓÒ±ßÊÇÎļþÉÏÒ»´ÎÌá½»¸ü¸ÄµÄ°æ±¾¡£ÒòΪÎÒÃÇĿǰֻÊÇ´´½¨Ê±Ìá½»¹ýÒ»´Î¸ü¸Ä£¬Òò´ËÓÒ±ßÏÔʾµÄÊÇÎļþµÄ³õʼ״̬¡£
×ó±ß´°¿ÚÀ¶É«ÇøÓò±ê³öµÄ¾ÍÊǸü¸ÄµÄÄÚÈÝ£¬ÕâÑùµÄ±íʾÈÃÎÒÃÇ¿ÉÒÔÇå³þµØ¿´³öËùÓеÄÐ޸ġ£Èç¹ûÄã×Ðϸ¿´£¬»á·¢ÏÖÔÚÁ½¸ö´°¿ÚÖ®¼ä»¹ÓÐÒ»¸ö´øÊý×ÖµÄС±êÇ©£¬Õâ¸öÊý×ÖÒ»Ò»±íʾÁ˸÷Ïî¸ü¸Ä¡£ÔÚÊý×ÖÅԱߣ¬Ä¬ÈÏÇé¿öÏÂÓÐÒ»¸öС¶Ô¹´£¬±íʾ±¾¸ü¸Ä»á±»Ìá½»£¬Èç¹ûÄãµã»÷ÓұߵÄС¼ýÍ·£¬»áµ¯³öÒ»¸öÑ¡Ïî²Ëµ¥£¬Äã¿ÉÒÔÑ¡Ôñ²»Ìá½»Õâ¸ö¸ü¸Ä»òÊǺöÂÔËü¡£

Èç¹ûÄãÑ¡ÔñÁËDon’t CommitÕâ¸öÑ¡ÏС¶Ô¹´¾Í»á±»Ò»¸öÍ£Ö¹±ê־ȡ´ú£¬ÕâÏî¸ü¸Ä¾Í²»»á±»±£´æµ½Ô´ÖС£

Èç¹ûÄãÑ¡ÔñÁËDiscard ChangeÕâ¸öÑ¡Ï»áµ¯³öÒ»¸öÈ·ÈÏ´°¿Ú£¬ÌáʾÄãËù×öµÄ¸ü¸Ä»á±»»Ö¸´£¬²¢ÇÒÎÞ·¨È¡ÏûÕâ¸ö²Ù×÷¡£

Èç¹ûÄãµã»÷ÁËOK°´Å¥£¬ËùÑ¡ÇøÓòµÄ¸Ä±ä¾Í»áÏûʧ£¬¾ÍÏñËûÃÇ´Óδ³öÏÖ¹ýÒ»Ñù¡£
Èç¹ûÄã×Ðϸ¹Û²ìÉÏÃæÕâ¸öÌá½»´°¿Ú£¬Äã»á¿´µ½ÄãËù×öµÄËùÓÐÐ޸ͼ»á±»Xcode¿´×ö¸Ä±ä£¬¼´Ê¹ÊÇÒ»¸ö¿ÕÐС£Êµ¼ÊÉÏ¿ÕÐÐÏ൱Óڻسµ£¬ÔÚÆÁÄ»ÉÏÊDz»¿É¼ûµÄ£¬Òò´Ë×÷Ϊ¸Ä±äÒ²ÊÇÀíËùµ±È»µÄ¡£
ÔÚ±¾Àý×ÓÖУ¬Äã²»ÓúöÂÔÈκÎÐ޸쬶øÊÇÔÊÐíÌá½»ËùÓиü¸Ä£¬Òò´ËËùÓеĸıä±êÇ©ÅԱ߱ØÐë¶¼ÊÇС¶Ô¹´¡£
ÔÚÁ½¸ö´°¿ÚÏÂÃæÊÇÒ»¸ö¿Õ°×µÄÇøÓò£¬ÖмäÏÔʾÁËÌá½»¸ü¸ÄµÄÐÅÏ¢¡£Õâ¸öµØ·½¿ÉÒÔÌí¼ÓһЩ¹ØÓڴ˴θü¸ÄµÄ¼ò¶ÌÃèÊö£¬µã»÷Ëü£¬¼ÓÈëÈçÏÂÄÚÈÝ£º

ÊéдÓÐÒâÒåµÄÌá½»ÐÅÏ¢·Ç³£ÓÐÓã¬ÓÈÆäÊǵ±ÄãÆµ·±Ìá½»µÄʱºò¡£Òò´Ë£¬°ÑËüµ±×öÒ»¸ö±ØÒªµÄ²½Öè¡£
ÏÖÔÚÕâ¸ö´°¿ÚµÄ»ù±¾ÐÅÏ¢¿´µÄ²î²»¶àÁË£¬ÊÇʱºò×öÎÒÃǵÚÒ»´ÎµÄÌá½»ÁË¡£ÔÚÕâ¸ö´°¿ÚµÄÓÒϽţ¬ÓÐÒ»¸ö°´Å¥ÉÏÃæÐ´×Å£ºCommit 1 file¡£

Õâ¸ö°´Å¥»áÏÔʾÐèÒªÌá½»µÄÎļþ×ÜÊý¡£µã»÷ËüÖ®ºóÄãµÄµÚÒ»´ÎÌá½»¾ÍÍê³ÉÁË£¡´ò¿ªSource control > History£¬Äã»á·¢ÏÖËü»á±»ÏÔʾÔÚÁбíÖС£

´ÓÉÏͼÖпÉÒÔ¿´³ö£¬ÎÒÃDZàдµÄÐÅÏ¢ÒÔ¼°¸ü¸ÄµÄÎļþÊýÁ¿»á±»ÏÔʾ³öÀ´¡£XcodeÖ´ÐгõʼÌá½»£¬ËùÓÐÎļþ¶¼»á±»Ìύһϣ¬¶øÕâ´ÎÖ»ÓÐÎÒÃÇÐ޸ĵÄÄǸöÎļþ±»Ìá½»¡£
ÁíÍ⣬¹Ø±ÕÀúÊ·´°¿Ú£¬¿´Ò»ÏÂProject Navigator£¬Äã»á·¢ÏÖViewController.mÅԱߵÄM·ûºÅÒѾÏûʧÁË¡£
ÏÖÔÚ£¬ÈÃÎÒÃÇ×¼±¸ÏÂÒ»´ÎÌá½»¡£Õâ´Î£¬ÎÒÃǸø¹¤³ÌÌí¼ÓһЩеÄÎļþ¡£Ìí¼ÓÎļþ×îºÃµÄ·½Ê½¾ÍÊÇ´´½¨¸öÐÂÀ࣬Òò´Ë£¬°´ÏÂCommand+N×éºÏ¼ü£¬Ìí¼ÓÒ»¸öObjective-CÀà¡£ÈÃÕâ¸öÀà¼Ì³ÐNSObjectÀ࣬ȡÃû½ÐTestClass£¬È»ºóÌí¼Óµ½¹¤³ÌÖС£
Íê³ÉÖ®ºó£¬×¢ÒâÒ»ÏÂProject Navigator£¬Äã»á·¢ÏÖÁ½¸öеÄÀàÎļþÅÔ±ßÓиöAµÄ×Öĸ±êʶ£¬ÕâÒâζ×ÅÕâЩÎļþÒѾ±»Ìí¼Óµ½ÏîÄ¿ÖУ¬µ±È»£¬ËûÃÇ»¹Ã»Óб»Ìá½»¡£
´ò¿ªViewController.hÎļþ£¬µ¼ÈëÎÒÃǵÄÐÂÀࣺ
ÏÂÒ»²½£¬´ò¿ªViewController.mÎļþ£¬ÏñÏÂÃæÒ»ÑùÉùÃ÷Ò»¸ö˽ÓÐÊôÐÔ£º
@interface ViewController ()
@property (nonatomic) int sum;
@property (nonatomic, strong) TestClass *testClass;
@end |
¿´Ò»ÏÂÏîÄ¿µ¼º½À¸£¬Õâ´ÎÓÐËĸöÎļþÓдýÌá½»¡£ÈÃÎÒÃÇ´ò¿ªSource Control > Commit²Ëµ¥£¬½«ËüÃÇÌá½»¡£

ÐèÒªÌá½»µÄÒ»¹²ÓÐ5¸öÎļþ¡£³ýÁË֮ǰÐ޸ĵÄËĸöÖ®Í⣬»¹ÓÐÒ»¸öÏîÄ¿ÅäÖÃÎļþ¡£Xcode»áÔÚÐÂÀà±»Ìí¼Óµ½ÏîÄ¿ÖÐÖ®ºó×Ô¶¯ÐÞ¸ÄÕâ¸öÎļþ¡£Èç¹ûÄãÄã´ò¿ªTestClass.h»òTestClass.mÎļþ£¬×ó±ßµÄ´°¿ÚûÓÐÈκÎÏÔʾ£¬ÈçÏÂͼËùʾ¡£

ÕâÊÇÒòΪÔÚÕâ¸öÎļþÔÚ֮ǰûÓб»Ìá½»µÄ¼Ç¼£¬Òò´ËûÓÐÒ»¸ö¿ÉÒԱȽϵİ汾£¬ÔÚÓÒ±ßÖ»ÏÔʾÁËFile was added¡£
ÔÚÏûÏ¢ÇøÐ´ÉÏÕâÑùÒ»¸öÃèÊö£ºTestClass was added to project.. Ö®ºóµã»÷Commit 5 files°´Å¥¼´¿É¡£
ÕâÑùµÚ¶þ´ÎÊÖ¶¯Ìá½»¾Í³É¹¦ÁË¡£Äã¿ÉÒÔµ½Source Control > History ²Ëµ¥²é¿´Ìá½»µÄ¼Ç¼¡£

°æ±¾Ö®¼äµÄ±È½Ï£¨Comparing Versions£©
µ±ÄãÌá½»ÁËͬһ¹¤³ÌµÄ²»Í¬°æ±¾Ö®ºó£¬ÔÚËûÃÇÖ®¼ä±È½Ï£¬×·×ÙÐÞ¸ÄÐÅÏ¢¾Í»á·Ç³£·½±ã¡£µ±ÐÂÌí¼ÓµÄ´úÂë²»ÄÜÔËÐÐʱ£¬ÕâʱÓëÖ®¼ä°æ±¾½øÐбȽϾͷdz£ÖØÒªÁË£¬Äã¿ÉÒÔ¿´³öа汾Ïà±ÈÉϸöÎȶ¨°æÓÐÁËÄÄЩ¸ü¸Ä¡£
Òª±È½Ïͬһ¸öÎļþµÄÁ½¸ö°æ±¾£¬Äã¿ÉÒÔʹÓÃView>Version Editor>Show version editor£¬»òÊǵã»÷¹¤¾ßÀ¸ÉϵÄVersion Editor°´Å¥£º
µã»÷Ö®ºó£¬±à¼Æ÷»á·ÖΪÁ½À¸¡£×î³õ£¬Á½À¸»áÏÔʾÏàͬµÄÄÚÈÝ£¬µã»÷±à¼Æ÷ÏÂÃæµÄÄǸöСʱÖÓͼ±ê£¬¿ÉÒÔÑ¡Ôñ֮ǰÒѾÌá½»µÄ°æ±¾½øÐбȽϡ£

µã»÷Ö®ºó£¬Á½¸ö°æ±¾µÄÇø±ð»áÔÚ±à¼Æ÷ÖÐÏÔʾ³öÀ´¡£Í¨³££¬×ó±ßÏÔʾµÄÊǵ±Ç°°æ±¾µÄÎļþ£¬ÓÒ±ßÏÔʾµÄÊÇ֮ǰµÄ°æ±¾¡£À¶É«¸ßÁÁµÄÇøÓòÏÔʾÁ˱»¸ü¸ÄµÄ´úÂ룬Òò´Ë±È½Ï´úÂëµÄ±ä»¯·Ç³£ÈÝÒס£¼ÌÐøÑ¡ÔñÈκδËǰµÄ°æ±¾£¬²¢¹Û²ìÁ½À¸µÄÇø±ð¡£

Äã¿ÉÄÜ»á×¢Òâµ½£¬ÔÚÁ½¸ö±à¼Æ÷Öм䣬»¹ÓÐÔÚÌá½»´°¿Ú¿´µ½µÄС±êÇ©¡£µã»÷Ïòϵݴť¿ÉÒÔÌø³öÈÃÄãºöÂÔ¸ü¸ÄµÄÑ¡Ïî¡£Èç¹ûÄãµã»÷Á˺öÂÔ¸ü¸Ä£¬Xcode»áÌáʾÄãÊÇ·ñͬÒâ¡£Èç¹ûÄãͬÒâºöÂÔ£¬ÕâЩ±»ºöÂԵĴúÂ뽫»áÓÀÔ¶Ïûʧ£¬ÎÞ·¨ÔÙÕÒ»ØÀ´¡£ËùÒÔҪעÒâ²»ÒªÎÞÒâÖкöÂÔÈκδúÂë¡£
³ýÁËÉÏÃæËµµ½µÄ·½·¨£¬»¹ÓÐÒ»ÖÖÄã»Øµ½Ö®Ç°°æ±¾µÄ·½·¨¡£Èç¹ûÄã×Ðϸ¹Û²ìÁ½¸ö±à¼Æ÷ÏÂÃæµÄ¹¤¾ßÀ¸£¬ÔÚÖмäÓиö´ø¼ýÍ·µÄʱÖÓͼ±ê£º

µã»÷ËüÖ®ºó£¬Á½¸öÃæ°åÖ®¼äµÄ×ÝÁÐÄÚÈݾͷ¢ÉúÁ˸ı䣬±ä³ÉÁËһϵÁбíʾ֮ǰ¸ü¸ÄµÄʱ¼ä´Á¡£×¢Òâ²¢²»ÊÇËùÓеͼ´ú±íʵ¼ÊÌá½»¡£´ú±íÏÈǰ°æ±¾µÄÔ²½Ç¾ØÐεÄÊýÁ¿È¡¾öÓÚÌá½»µÄ´ÎÊý¡£ÔÚÕâ¸öÀý×ÓÖУ¬Ö»ÓÐÁ½¸öÕâÑùµÄͼÐΣ¬´ú±íÁËÁ½´ÎÌá½»¡£
ÔÚÕâÒ»ÁеÄÏÂÃæ£¬ÓÐÁ½¸ö¼ýÍ·¡£×ó±ßµÄÄǸöÊôÓÚ×ó±ßµÄÃæ°å£¬ÓұߵļýÍ·ÊôÓÚÓұߵÄÃæ°å¡£½«¼ýÍ·ÒÆ¶¯µ½ÈÎÒâ֮ǰµÄ°æ±¾£¬Äã»á¿´µ½ÔÚÏàÓ¦Ãæ°åÖеĸı䡣Èç¹ûÄãÏë±È½Ïµ±Ç°°æ±¾ºÍ֮ǰÈÎÒâ°æ±¾µÄÇø±ð£¬ÈÃÒ»¸ö¼ýÍ·Ö¸ÏòlocalÐУ¬È»ºóÒÆ¶¯µÚ¶þ¸ö¼ýÍ·¡£Ê±¼ä´Á´Óµ×²¿µ½¶¥²¿´ú±íÁË´Óе½¾ÉµÄ´úÂë¡£ÔÚbaseÐУ¬Äã»á¿´µ½ÉÏÒ»´ÎÌá½»µÄÄÚÈÝ¡£¼ÌÐøÏòÉÏÒÆ¶¯£¬Äã»á¿´µ½×î³õµÄÌá½»£¬ÈçÏÂͼËùʾ£º

ÏÖÔÚÄãÖªµÀÈçºÎ±È½Ï°æ±¾Ö®¼äµÄÇø±ðÁË¡£ÔÙ¼ÌÐøÉîÈë֮ǰ£¬°ÑÇ°ÃæÑ§Ï°µÄÁ·Ï°Ò»ÏÂÍæÍæ°É¡£
¾¿¾¹ÊÇËµÄ´í£¿£¨Who’s Got the Blame£©
³ýÁ˱ȽÏÎļþµÄ°æ±¾Í⣬Xcode»¹¿ÉÒÔÈÃÄã×·×ÙÎļþµÄÌá½»Õߣ¬ÒÔ¼°ÊÇ˸ıäÁËÄÄÒ»²¿·Ö´úÂë¡£ÔÚÒ»¸ö¶àÈ˵ÄÍŶÓÖУ¬Õâ·Ç³£ÓÐÓá£ÒªÊ¹ÓÃÕâ¸ö¹¦ÄÜ£¬µã»÷View > Version Editor > Show Blame View²Ëµ¥¡£»òÊǽ²Êó±ê·ÅÔÚ¹¤¾ßÀ¸µÄVersion editor °´Å¥ÉÏ£¬Ñ¡ÔñBlameÑ¡Ïî¡£Ò»¸öÓëÉÏÃæÀàËÆµÄ´°¿Ú½«»á³öÏÖ:

ÕýÈçÄã¿´µ½µÄ£¬µ±Ç°ÎļþÒÀ¾Ý²»Í¬µÄÌá½»±»Ë®Æ½Ï߷ֳɼ¸¶Î£¬Ã¿¸ö´úÂë¶ÎµÄ×÷Õߣ¬ÒÔ¼°Ìá½»ÐÅÏ¢ºÍÆäËûÐÅÏ¢ÏÔʾÔÚ´°¿ÚÓұߵÄÒ»¸öÌØÊâÃæ°åÖС£
Èç¹ûÄ㻹ûÓÐ×ö¹ý£¬ÄÇ×Ô¼º¶¯ÊÖ´ò¿ªÕâ¸öblameÊÓͼ£¬×¢ÒâÒ»ÏÂXcodeÕ¹ÏÖ´úÂë¶Î×÷Õߵķ½Ê½¡£ÔÚÕâ¸öÊÓͼÖУ¬¿ÉÒÔ·½±ãµØÕÒµ½Ä³Ò»´úÂëÔÚºÎʱ±»ËÌá½»ÒÔ¼°ÆäËûÄãÏëÒªµÄÐÅÏ¢¡£½«Êó±ê·ÅÔÚblameÃæ°åÉÏ£¬½«»áÏÔʾÐ޸ĵÄһЩÆäËûÐÅÏ¢¡£µ±Ö¸ÕëÍ£ÔÚÌá½»¶ÎÉÏʱ£¬Ò»¸ö´øÍ¼Æ¬µÄС°´Å¥¾Í»á³öÏÖÔÚËüµÄÓұߡ£µã»÷Ñ¡ÖиöδúÂ룬¾Í»áµ¯³öÒ»¸ö¸½´øÌá½»ÐÅÏ¢´°¿Ú¡£ÔÚÕâ¸ö´°¿ÚÖУ¬Ä㻹¿ÉÒÔÌø×ªµ½±È½Ï´°¿Ú(indication #1)£¬ÒÔ¼°Ìض¨Ìá½»µÄÐÞ¸ÄÎļþ(indication #2)¡£

³ýÁ˱ȽÏÊÓͼºÍblameÊÔͼ£¬Æäʵ»¹ÓÐÒ»¸öÈÕÖ¾ÊÓͼ£¨Log view£©¡£Äã¿ÉÒÔͨ¹ýView > Version Editor > Show Log ViewÀ´´ò¿ªËü¡£»òÕßÈç¹ûÄãÔÚÕâÀï¾Í²»ÔÚÏêϸ˵ËüÁË¡£Äã¿ÉÒÔ×Ô¼ºÈ¥¿´¿´£¬±Ï¾¹Õâ¸öÓÃÆðÀ´Ò²Ã»ÄÇô¸´ÔÓ¡£
·ÖÖ§£¨Branches£©
ÊÔÏëһϣ¬ÄãÏÖÔڵŤ³ÌÓÐÒ»¸ö¼´½«·¢²¼µÄ°æ±¾£¬»òÊÇÒѾ·¢²¼µÄ°æ±¾£¬ÄãͻȻÏëÌí¼ÓһЩеÄÌØÐÔ£¬ÈçºÎ·ÀÖ¹ÕâЩÐÂÌí¼ÓµÄ´úÂëÈÃÕû¸öÏîÄ¿ÏÝÈë̱»¾ÄØ£¿´ð°¸ºÜ¼òµ¥£ºÄãÐèҪʹÓ÷ÖÖ§¡£
ÈçºÎ¼òµ¥µÄÀí½â·ÖÖ§ÄØ£¿Äã¿ÉÒÔ°ÑÄãµÄÏîÄ¿ÏëÏó³ÉÒ»¿ÃÊ÷£¬Îȶ¨°æ±¾¾ÍÊÇÊ÷µÄÖ÷¸É¡£ÈκÎÌí¼Óй¦Äܵİ汾¶¼±ØÐëÊÇÊ÷¸ÉµÄÒ»²¿·Ö¡£·ÖÖ§£¬¾ÍÏñÊÇÊ÷µÄÖ¦¸É£¬Ëü´ÓÊ÷¸ÉÉú³¤³öÀ´£¬Ïò²»Í¬µÄ·½ÏòÉú³¤¡£ÔÚgitÖУ¬Äã¿ÉÒÔͨ¹ý´´½¨·ÖÖ§À´ÎªÄãµÄ´úÂëÉèÖÃÒ»¸öеķ¾¶À´ÊµÏÖÐÂÌØÐÔ£¬¶ø²»Óõ£ÐÄÔÚ¿ª·¢ÖÐÆÆ»µÖ÷¸É¡£
ʵ¼ÊÉÏ£¬ÔÚgitÖÐĬÈ϶¼»áÓÐÒ»¸ö·ÖÖ§£¬½Ð×ömaster¡£Xcode×Ô¶¯Ö´ÐеĵÚÒ»´ÎÌá½»Öоͷ¢ÉúÔÚÕâ¸ö·ÖÖ§ÖС£Í¨³££¬µ¥¶ÀµÄ¿ª·¢ÕßÖ»ÔÚmasterÕâ¸ö·ÖÖ§¿ª·¢£¬ÕâÆäʵ²»ÊÇÒ»¸öºÃϰ¹ß¡£ÎÞÂÛÄãÊǵ¥´ò¶À¶·»¹ÊÇ×éÍźÏ×÷£¬ÎÒÈÏΪÔÚ¶ÔÏîÄ¿×÷³öÖØ´ó¸Ä±ä»òÌí¼ÓÖØ´ó¹¦ÄÜʱ£¬Ê¹Ó÷ÖÖ§ÊÇÊ®·ÖÖØÒªµÄ£¬Ëü»áΪÄã±ÜÃâºÜ¶àÂé·³¡£µ±È»£¬ÔÚÍŶÓÏîÄ¿ÖУ¬ÎªÄã×Ô¼º¸ºÔ𲿷ֵĴúÂë¸ãÒ»¸ö·ÖÖ§¼¸ºõÊDZØÐëµÄ¡£
¹ØÓÚ·ÖÖ§£¬Äã±ØÐë¼ÇסÒÔÏÂÁ½µã£º
1. Ìá½»µ½App Store»ò¿Í»§µÄ×îÖÕ²úÆ·±ØÐëÊÇÏîÄ¿ÖеÄmaster·ÖÖ§ÏîÄ¿¡£
2. ÈκÎÔÚµÚ¶þ·ÖÖ§ÖÐʵÏֵĴúÂë»òÕß¹¦ÄÜ×îÖÕ¶¼±ØÐëºÏ²¢µ½master·ÖÖ§£¬ÕâÑùÕýʽ·¢²¼µÄÓ¦ÓóÌÐò²ÅÊÇÍêÕûµÄ¡££¨ÒÔºóÔÙ½²ÕâÒ»µã£©
µ±Ä㿪ʼһ¸öзÖ֧ʱ£¬Äãʵ¼ÊÉÏÊÇÒÔµ±Ç°¹¤×÷״̬×÷ΪÆðµã£¬¼´Ê¹ÄãÓÐÈκÎδÌá½»µÄ¸ü¸Ä¡£´ÓÕâ¸öʱºòÆð£¬ËùÓеĸı䶼»áÖ»ÌåÏÖÔÚ·ÖÖ§ÖС£
ÏÖÔÚÈÃÎÒÃǻص½Xcode£¬Òª´´½¨Ò»¸ö·ÖÖ§£¬µã»÷Source Control > GitDemo-master > New Brance…Õâ¸ö²Ëµ¥£¬È»ºó»áµ¯³öÈçϲ˵¥£º

ΪÕâ¸ö·ÖÖ§ÆðÒ»¸öÃû×Ö£¬ÎҾͰÑËüÆðÃûΪAnotherBranchºÃÁË¡£ÏÖÔÚÄãÔõô¸øËüÆðÃûÆäʵ¶¼ÎÞËùν¡£µã»÷OK°´Å¥£¬µÈÒ»ÏÂеķÖÖ§¾Í»á±»´´½¨£¬¶øµ±Ç°µÄ´úÂëÒ²»á¸´ÖƵ½Ð·ÖÖ§ÖÐÈ¥¡£
´ò¿ªSource Control²Ëµ¥£¬Äã¾Í¿ÉÒÔÇáËɵØÕÒ³ö»î¶¯·ÖÖ§ÊÇÄÄÒ»¸ö£ºËü¾ÍÔÚÏîÄ¿Ãû×ÖµÄÅԱߡ£

ÏÖÔÚ£¬ÈÃÎÒÃÇ×öÒ»´ÎеķÖÖ§µÄÌá½»¡£ÔÚÕâ֮ǰ£¬ÈÃÎÒÃÇÌí¼ÓһЩеĴúÂë¡£´ò¿ªÀàÎļþ£¬ÔÚ˽ÓÐÊôÐÔÇøÌí¼ÓÒÔÏ·½·¨ÉùÃ÷£º
@interface ViewController ()
...
-(void)sayHello;
@end |
È»ºóʵÏÖËü£º
-(void)sayHello{
NSLog("Hello");
} |
×îºó£¬ÔÚviewDidLoadÖе÷ÓÃËü£º
- (void)didReceiveMemoryWarning
{
...
[self sayHello];
} |
ÏÖÔÚ£¬µã»÷Source Control > Commit²Ëµ¥£¬°æ±¾±È½Ï´°¿Ú½«»á³öÏÖ£¬Äã»á¿´µ½Ö»ÓÐÒ»¸ö±»Ð޸ĹýµÄÎļþ--ViewController.mÎļþ£¬ÐÂÌí¼ÓµÄ²¿·Ö»á±»¸ßÁÁÏÔʾ¡£
ÊäÈëÏÂÒ»¸öÌá½»ÐÅÏ¢£ºFirst commit to a new branch£¬È»ºóµã»÷commit 1 file°´Å¥¡£ÏÖÔÚAnotherBrance·ÖÖ§µÄ¸Ä±ä¾Í»á±»Ìá½»ÁË¡£
´ò¿ªVersion Editor(menu View > Version Editor > Show Version Editor)£¬ÕÒµ½Óұ߱à¼Ãæ°åÏÂÃæµÄ¹¤¾ßÀ¸£¬Äã»á¿´µ½±»Ñ¡ÖеķÖÖ§ÊÇAnotherBranch£¬µã»÷Ëü£¬Äã»á¿´µ½Õâ¸ö·ÖÖ§ºÍmaster·Ö֧ͬʱ³öÏÖ£¬´Ómaster·ÖÖ§ÖÐÑ¡ÔñÈÎÒâ°æ±¾£¬Xcode¶¼»á¸ßÁÁÏÔʾÁ½ÕßÖ®¼äµÄÇø±ð¡£Í¨¹ýÕâÑù£¬Äã¿ÉÒÔ·½±ãµØ¸ú×ÙËùÓзÖÖ§¼ä´úÂëµÄ¸Ä±ä¡£

×îºó£¬Çл»µ½ÁíÒ»¸ö·ÖÖ§£¬»òÊÇmaster·ÖÖ§£¬Äã¿ÉÒÔµã»÷Source Control > GitDemo –AnotherBranch > Switch to Branch…²Ëµ¥¡£

´ÓÕâ¸ö´°¿ÚÄã¿ÉÒÔÑ¡ÔñÏëÒªÌø×ªµÄ·ÖÖ§£¬ÔÚÕâÀïÈÃÎÒÃÇÌø»Ømaster·ÖÖ§£º

Ñ¡ÔñËü²¢µã»÷Switch°´Å¥£¬master·ÖÖ§¾Í»á³ÉΪµ±È»»î¶¯·ÖÖ§¡£Äã»á·¢ÏÖÔÚAnotherBranchÖÐ×ö³öµÄ¸Ä±ä²¢Ã»ÓгöÏÖÔÚmaster·ÖÖ§¡£ºÜºÃ£¬ÎÒÃÇÔÚ¹ÜÀí¹¤³ÌÍÆ½øµÄͬʱ£¬È´Ã»ÓÐÐÞ¸ÄÎȶ¨°æ±¾¡£
ºÏ²¢·ÖÖ§£¨Merging Branches£©
ÔÚ·ÖÖ§ÖнøÐпª·¢ÊÇÒ»ÖÖºÃϰ¹ß£¬È»¶ø£¬Èç¹û´úÂë¸Ä±äÒªÌåÏÖÔÚ·¢ÐаæÖУ¬ÄÇô·ÖÖ§¾Í±ØÐë±»ºÏ²¢µ½master·ÖÖ§ÖС£ÕâÒ»½ÚÎÒÃǽ«»á¸æËßÄãÔõÑùºÏ²¢ËüÃÇ¡£ÔÚXcodeÀ½«Á½¸ö·ÖÖ§ºÏ²¢³ÉÒ»¸ö·Ç³£¼òµ¥¡£
ÈÃÎÒÃÇ×öÒ»¸öСʵÑéÀ´¿´¿´ºÏ²¢ÊÇÔõÑù¹¤×÷µÄ¡£Ê×ÏÈ£¬È·±£master·ÖÖ§ÊÇÏÖÔڵĻ·ÖÖ§¡£Èç¹û²»ÊÇ£¬¸Ï½ô¸Ä¹ýÀ´£ºSource Control > GitDemo – AnotherBranch > Switch To Branch… menu£¬²¢´Óչʾ´°¿ÚÑ¡Ôñmaster·ÖÖ§¡£
ÏÂÒ»²½£¬´´½¨Ò»¸öеķÖÖ§£ºSource Control > GitDemo – master > New Branch… menu£¬ÃüÃûΪLastBranch

ÏÈÈÃXcode·ÉÒ»»á£¬È»ºó£¬µ½ViewController.mÎļþÖУ¬ÔÙ´´½¨Ò»¸ö˽Óз½·¨£¬Ê×ÏÈÉùÃ÷Ëü£º
@interface ViewController ()
...
-(void)sayByeBye;
@end |
È»ºóʵÏÖËü£º
-(void)sayByeBye{
NSLog("Bye - Bye");
} |
×îºó£¬ÔÚViewDidLoad·½·¨Öе÷ÓÃËü£º
- (void)viewDidLoad
{
...
[self sayByeBye];
} |
Ôںϲ¢Ö®Ç°£¬ÏÈÌá½»ÕâЩ¸ü¸Ä¡£Ê¹ÓÃSource Control > Commit²Ëµ¥À´Ö´ÐÐÌá½»¡£
ÖÕÓÚ»¹ÊÇÀ´µ½ÕâÒ»²½£¬¹ØÓÚ°ÑÁ½¸ö²»Í¬µÄ·ÖÖ§ºÏ²¢³ÉÒ»¸ö£¬ÄãÓÐÁ½ÖÖÑ¡Ôñ“
1. ´Ó·ÖÖ§ºÏ²¢£ºÓëÄãÑ¡ÔñµÄ·ÖÖ§Ïà¹ØµÄÈκθı䶼»á±»ºÏ²¢µ½ÏÖÔڻ·ÖÖ§ÖС£
2. ºÏ²¢µ½·ÖÖ§£ºµ±Ç°»î¶¯·ÖÖ§µÄÈκθı䶼»á±»ºÏ²¢µ½ÄãÑ¡ÔñµÄ·ÖÖ§ÖС£
ÕâÁ½ÖÖ·½Ê½Äã¶¼¿ÉÒÔÔÚSource Control > GitDemo ²Ëµ¥ÖÐÕÒµ½¡£×¢Òâµ±ÄãµÄ»î¶¯·ÖÖ§ÊÇmaster·Ö֧ʱ£¬µÚ¶þ¸öÑ¡ÏîÊDz»¿ÉÑ¡µÄ¡£
¼ÙÉèÒ»¸ö¿ª·¢ÕßÔÚAnotherbranch·Ö֧ʵÏÖÒ»¸ösayHello·½·¨£¬ÁíÍâÒ»¸ö¿ª·¢ÕßÔÚLastBranchÖд´½¨ÊµÏÖÁËsayByeBye·½·¨£¬ÏÖÔÚÄãÐèÒª½«Á½¸öÈ˵Ť×÷ºÏ²¢µ½ÏÂÒ»¸öÎȶ¨°æ±¾ÖУ¬ÏëÒ»ÏëÄãÐèÒªÔõô×ö£¿ºÜ¼òµ¥£¬°´ÒÔÏ·½·¨½«¸Ä±ä´ÓÁ½¸ö·ÖÖ§Öкϲ¢½øÀ´£º
Ê×ÏÈ£¬È·±£µ±Ç°»îÔ¾·ÖÖ§ÊÇmaster·ÖÖ§¡£
È»ºó£¬´ò¿ªSource Control > GitDemo – master > Merge From Branch…²Ëµ¥£¬Ñ¡ÔñAnotherBranchÈ»ºóµã»÷Merge°´Å¥¡£

½ÓÏÂÀ´»á³öÏÖÒ»¸ö±È½Ï´°¿Ú£¬ÔÚÀïÃæÄã»á¿´µ½ºÏ²¢Ö®ºó´úÂëµÄ¸ü¸Ä£¬¿´Ò»ÑÛ£¬¸Ð¾õ²î²»¶àÁ˾ÍÔÙµã»÷Merge°´Å¥¡£

Xcode»áѯÎÊÄãÊÇ·ñ±£´æÏîÄ¿µÄ¿ìÕÕ£¬µã»÷Enable°´Å¥¡£ÈÃXcode·ÉÒ»»á£¬È»ºó¾ÍºÃÀ²¡£AnotherBranchÀïÃæÌí¼ÓµÄÄÚÈÝÒѾºÏ²¢µ½master·ÖÖ§ÖС£

ʹÓÃͬÑùµÄ·½·¨À´ºÏ²¢LastBranch¡£Äã»á·¢ÏÖÈç¹ûÄã²»Ìá½»¸ü¸Ä£¬Xcode²»»áÈÃÄãÔٴκϲ¢¡£ÓÚÊÇ£¬ÎÒÃÇÖ»ºÃÏÈÌύһϡ£ÔڱȽϴ°¿ÚÄã»á·¢ÏÖÒ»¸öºìÉ«µÄÇøÓòÏÔʾºÏ²¢Ö®ºóµÄ¸ü¸Ä£¬¶ø²»ÊÇ֮ǰµÄÀ¶É«¡£ÕâÒâζ×Å·ÖÖ§ÖеĴúÂ뽫»áÌæ»»ÔÏȻ·ÖÖ§ÖеĴúÂë¡£

Äã¿ÉÒÔÇáËɵرÜÃâÕâÖÖÏÖÏóµÄ·¢Éú¡£ÔÚ±à¼Ãæ°åµÄÏÂÃæÓм¸¸öС°´Å¥£¬Äã¿ÉÒÔÊÔÊÔËûÃǶ¼ÓÐʲô×÷Óã¬ÎÒÑ¡Á˵ÚÒ»¸ö£¬ËüµÄÒâ˼ÊÇmaster·ÖÖ§µÄ´úÂë»á±»·ÅÔÚÉÏÃæ£¬ÁíÒ»¸ö·ÖÖ§µÄ´úÂë»á¸úÔÚËüºóÃæ¡£
´¦Àí½ÓÏÂÀ´ËùÓÐÐèÒª¸ü¸ÄµÄ´úÂ룬²»ÒªÓÐÒÅ©¡£Íêʺó¾Íµã»÷Merge°´Å¥¡£
¹§Ï²Ä㣡ÄãÒѾ³É¹¦µÄѧ»á´Ó¶à¸ö·ÖÖ§ºÏ²¢ÁË´úÂ룬ÀàËÆµÄÇéÐÎÄãÒ²Ó¦¸Ã»áÁË¡£
ºöÂÔ¸ü¸Ä£¨Discarding Changes£©
·ÅÆú²»ÏëÒªµÄ´úÂë¸ü¸Ä¹¦Äܷdz£ÓÐÓã¬Ö»ÐèÇáÇáÒ»µã£¬×Ô´ÓÉÏÒ»´ÎÌá½»Ö®ºóµÄ¸ü¸Ä¶¼»á±»·ÅÆú¡£µ±ÄãÔÚ¿ª·¢¹ý³ÌÖз¢ÏÖ³öÁË´óÂÒ×Ó£¬ÄãÏë´ÓÉÏÒ»¸öÎȶ¨×´Ì¬ÖØÐ¿ªÊ¼Ê±£¬Õâ¸ö¹¦ÄܾÍÅÉÉÏÓó¡À²¡£×¢Òâ·ÅÆú¸ü¸ÄÕâ¸ö¹¦ÄÜûÓлØÍ·Â·£¬µãÍêÖ®ºóÄã¾ÍûÓа취ÔÙ³·ÏúÕâ¸ö²Ù×÷£¬ËùÒÔ£¬ÒªÐ¡ÐÄʹÓ𡣡
֮ǰ£¬µ±ÎÒÃÇÔÚÌÖÂÛ°æ±¾±È½Ïʱ£¬ÎÒÃÇѧ»áÁËÈçºÎºöÂÔijһ²¿·Ö¸ü¸ÄµÄ·½·¨£¬ÏÂÃæ£¬ÎÒÃÇҪѧһÏÂÈçºÎһϺöÂÔ×Ô´ÓÉÏÒ»´ÎÌá½»Ö®ºóµÄËùÓиü¸Ä¡£
ΪÁ˲âÊÔÕâ¸ö¹¦ÄÜ£¬Ê×ÏÈдһЩ´úÂë´ò¿ªViewController.h £¬Ìí¼ÓÒ»¸ö¹«¹²·½·¨ÉùÃ÷£º
@interface ViewController : UIViewController
-(void)aVeryCoolMethod;
@end |
ÏÖÔÚ£¬ÈÃÎÒÃÇÔÚViewController.mÖÐÌí¼ÓÒ»¸öÕâ¸ö·½·¨µÄʵÏÖ£¬¼òµ¥µã¾ÍÐУº
-(void)aVeryCoolMethod{
NSLog("I'm feeling that you'll discard me... Really?");
} |
Èç¹ûÄã×¢Òâµ½Project Navigator£¬ÎÒÃǸոոü¸ÄµÄÎļþÅÔ±ßÓÐÁËÒ»¸öM±êʶ£¬ºÜºÃ£¬ÎÒÃÇÏë¿´¿´Èç¹ûºöÂÔÕâЩ¸ü¸Ä£¬ÕâЩÎļþÊÇ·ñ»á»Øµ½¸ü¸Ä֮ǰµÄ״̬¡£
ÕâÀïÓÐÒ»¸öÖØÒªµÄϸ½Ú£ºÄã¿ÉÒÔÑ¡ÔñºöÂÔËùÓÐÎļþµÄ¸ü¸Ä£¬Ò²¿ÉÒÔÑ¡ÔñºöÂÔµ¥¸öÎļþµÄ¸ü¸Ä£¬ÕâÍêȫȡ¾öÓÚÄã¡£Èç¹ûÄãÏëºöÂÔÒ»¸öÎļþµÄ¸ü¸Ä£¬Ê×ÏÈÑ¡¶¨Õâ¸öÎļþ¡£ÔÚÕâ¸öÀý×ÓÀÈç¹ûÄãֻѡÔñViewController.mÎļþÈ»ºó´ò¿ªSource Control²Ëµ¥£¬Äã»áÔÚViewController.mÖз¢ÏÖDidcard ChangesÕâ¸öÑ¡Ïî¡£ÀàËÆµÄ£¬Èç¹ûÄãֻѡÔñViewController.hÒ²ÊÇÒ»¸öµÀÀí¡£È»¶ø£¬Èç¹ûÄãÏëºöÊÓÕâÁ½¸öÎļþµÄ¸ü¸Ä£¨ÕâÀï¼Ù¶¨ÓÐÁ½¸öÒÔÉϵĸü¸Ä£©£¬¾ÍÔÚProject NavigatorÖÐÑ¡ÖÐËüÃÇ£¬È»ºóÔÙ´ò¿ªSource Control²Ëµ¥¡£ÏàÓ¦µÄλÖþͻáÏÔʾDiscard Changes in 2 Files£¬ÏñÏÂÃæÕâÑù£º

È»¶ø£¬Õâ´ÎÎÒÃDz»»áʹÓÃÕâ¸ö°´Å¥£¬ÎÒÃÇÒªÓÃDiscard All Changes¡£µã»÷ËüÖ®ºó£¬Ò»¸öÈ·¶¨Ìáʾ¿ò¾Í»á³öÏÖ£¬ÕâÊÇÕⲿ·ÖXcode·ÀÖ¹ÄãÎóɾ´úÂëµÄΨһ´ëÊ©¡£

µã»÷Discard All Changes, ÄÇÄã¸Õ²ÅдµÄÄǸö¹«¹²·½·¨¾ÍÓÀÔ¶ÊôÓÚ¹ýÈ¥ÁË¡£¿´µ½Á˰ɣ¬Ö»Ð輸²½¾Í¿ÉÒÔÈÃÄã´Óµ±Ç°¹¤×÷״̬»Ö¸´µ½Ö®Ç°µÄÌá½»£¬ËùÒÔÎÒÔÙÒ»´ÎÌáÐÑÄãÒªÔÚʹÓÃSource Control ÖÐСÐĵ㣬±ðÎóµãÁËÕâ¸ö°´Å¥¡£
×ܽá
ͨ¹ýÕâÆª½Ì³Ì£¬ÎÒ¾¡Á¦ÏêÊöÁËÔÚXcodeÖнøÐа汾¿ØÖƵķ½·¨¡£ÆäʵÔÚÄ»ºó£¬ÕæÕýÆð×÷ÓõÄÊÇgit----µØÇòÉÏÓ¦ÓÃ×î¶àµÄ°æ±¾¿ØÖÆÏµÍ³¡£Äã¿ÉÄÜ×¢Òâµ½ÎÒÔڽ̳ÌÖв¢Ã»Óйý¶àµÄÌáµ½GitHub»òÕßÈκÎXcodeµÄһЩ¹¦ÄÜ----ÆäʵÎÒÊǹÊÒâÕâÑùµÄ¡£ÎÒÏë°Ñ×¢ÒâÁ¦¼¯ÖÐÔÚʹÓÃXcode½øÐÐgit¹ÜÀíµÄÄÚÈÝÉÏ¡£Ö»Óе±Äã¶®µÃÁËÈçºÎ½øÐа汾¿ØÖÆÖ®ºó£¬²ÅÄÜÕæÕýµÄʹÓÃGitHub¡£ÎÒÏëÔÙÖØÉêһϣ¬Èç¹ûÄãÊÇÒ»¸öÍŶÓÔÚ¹¤×÷£¬Ê¹Óð汾¿ØÖƹ¤¾ßÊDZØÐëµÄ£¡Èç¹ûÄãÊǵ¥´ò¶À¶·£¬Ê¹Óð汾¿ØÖƹ¤¾ßÒ²ÊǺÜÓбØÒªµÄ£¬Ëü¿ÉÒÔΪÄ㻨´óÁ¿Ê±¼äºÍ¾«Á¦Ëù×öµÄ¹¤×÷Ìṩ±£ÕÏ£¬²¢ÇÒÔÚÄãÌí¼Óй¦ÄÜʱ¿É¼òµ¥µØ½øÐÐÀ©Õ¹¡£Õâ¸ö¹¤¾ß¾ÍÏñÓÐЩÈË˵µÄÄÇÑù£¬Ò»µ©ÓÃÁË£¬¾ÍÔÙÒ²»Ø²»È¥ÁË£¡×îºó£¬ÎÒÏ£ÍûÕâ¸ö½Ì³Ì»á¶ÔÄãÓÐÓᣠ|