1¡¢Ê²Ã´ÊÇGIT
GitÊÇÒ»¸öÇ¿µ÷Ëٶȵķֲ¼Ê½°æ±¾¿ØÖÆÈí¼þºÍÔ´´úÂë¹ÜÀíϵͳ£¨SCM£¬source code management£©¡£Git×î³õÊÇÓÉLinus TorvaldsΪÄں˿ª·¢¶øÉè¼ÆµÄ¹ÜÀíÈí¼þ¡£×Ô´ÓGitÍÆ³öÒÔÀ´£¬ÒѾ±»ºÜ¶à¿ªÔ´ÏîÄ¿Ëù²ÉÄÉ¡£Ã¿Ò»¸öGit¹¤×÷Ŀ¼ÊÇÒ»¸ö´øÓÐÍêÈ«ÀúÊ·¼Ç¼ºÍ°æ±¾ÐÅÏ¢µÄ²Ö¿â£¬²»ÒÀÀµÓÚÍøÂçºÍÖÐÑë·þÎñÆ÷¡£GitÊÇÒ»¸öÃâ·ÑµÄ¿ªÔ´Èí¼þ£¬×ñ´ÓGNU v2ÐÒé¡£
GitÕâ¸ö´ÊÔÚÓ¢ÓïÖеÄÔÒâÊǺܱ¿×¾£¬Ã»ÓõÄÈË¡£Linus×Ô³°Ëµ£º“ÎÒÊÇÒ»¸öÈÎÐԵı¿µ°£¬ËùÒÔÎÒ°ÑÎÒµÄËùÓеÄÏîÄ¿µÄÃû×Ö¶¼ºÍÎÒºÜÏàËÆ¡£µÚÒ»¸öÊÇLinux£¬ÏÖÔÚÊÇGit¡£”GitµÄ°ïÖúÎĵµÖÐÃèÊöGitΪ£º±¿×¾µÄÄÚÈݸú×ÙÕߣ¨the stupid content tracker£©¡£(·Òë×ÔWIKI)
¹ØÓÚ¿ª·¢GitµÄһЩÀúÊ·ÓÉÀ´£¬¿ÉÒÔ¿´¿´Õâ¸öÍøÕ¾£ºhttps://lkml.org/lkml/2005/4/6/121
2¡¢ÎªÊ²Ã´ÒªÓÃGIT
1.¸ü˳³©µÄ¹¤×÷Á÷³Ì£¬¿ª·¢¹ý³ÌÖУ¬ÍêÈ«¿ÉÒÔÀëÏß²Ù×÷
2.¿ìËÙ£¬Git·Ö²¼Ê½¼Ü¹¹Ê¹µÃ±¾µØ²Ö¿â°üº¬ËùÓеÄÀúÊ·°æ±¾ÐÅÏ¢£¬Äã¿ÉÒÔÔÚ²»Í¬µÄ°æ±¾Ö®¼ä¿ìËÙÇл»
3.µ¯ÐԵı¾µØ·ÖÖ§£¬ÔÚsvnÏ£¬Ä㽨һ¸ö·ÖÖ§ÐèÒª°ÑÔ´´úÂë¸´ÖÆµ½ÁíÍâÒ»¸öÎļþ¼Ð£¬¶øÔÚGitÏ£¬´´½¨·ÖÖ§µÄ´ú¼ÛÊǷdz£Ð¡µÄ£¬Ö»ÐèÒ»ÌõÃüÁî
4.²Ö¿âĿ¼½á¹¹¼ò½à£¬ÓÃGit¸´ÖÆÒ»¸öÏîÄ¿£¬Ö»»áÔÚÏîÄ¿¸ùĿ¼´´½¨Ò»¸ö.gitµÄĿ¼£¬¶øÆäËûĿ¼ºÜ¸É¾»
5.ÄÚÈݰ´ÔªÊý¾Ý·½Ê½´æ´¢£¬ËùÓеİ汾ÐÅÏ¢¶¼Î»ÓÚ.gitĿ¼ÏÂ
6.ÍêÕûÐԺ㬸üÒ×ÓÚÐ×÷¿ª·¢
7.Óû§Èº´ó£¬ÏÖÔÚÒѾÓгÉǧÉÏÍò¸ö¿ªÔ´ÏîÄ¿²ÉÓÃGitÀ´×öÏîÄ¿¹ÜÀí£¬githubÉϸüÊÇÓÐÎÞÊý¸ö´úÂë²Ö¿â
3¡¢GIT°²×°ÓëÅäÖÃ
a)°²×°
1.´ÓÔ´Âë°²×°
ÔÚ°²×°Ö®Ç°£¬Äã±ØÐë±£Ö¤ÒÔϼ¸¸öÒÀÀµ°üÒѾ°²×°ÔÚÄãµÄϵͳÉÏ£ºcurl, zlib, openssl, expat, libiconv¡£Èç¹ûÄãµÄϵͳÊÇUbuntu£¬Äã¿ÉÒÔÕâÑù°²×°£º
apt-get install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
µ±ËùÓеÄÒÀÀµÏîÒѾ½â¾ö£¬¾Í¿ÉÒÔ´Óhttp://git-scm.com/downloadÉÏÏÂÔØGitµÄÔ´Â룬Ȼºó±àÒë°²×°£¬¾ßÌåÃüÁîÈçÏ£º
tar -zxf git-1.*.*.*.tar.gz
cd git-1.*.*
make prefix=/usr/local all
sudo make prefix=/usr/local install
2.ÔÚLinuxÉϰ²×°
Èç¹ûÄãµÄϵͳÊÇLinux»òÕßFedora£¬Äã¿ÉÒÔͨ¹ýÒÔÏÂÃüÁîÖ±½Ó°²×°Git£º
yum install git-core (fedora)
apt-get install git-core (ubuntu)
3.ÔÚWindowsÉϰ²×°
¾¡¹ÜGitÊÇ·¢Ô´ÓÚLinux£¬µ«ÏÖÔÚWindowsÉÏÒ²ÓÐÄܹ»Õý³£Ê¹ÓÃGit£¬Ö»²»¹ý²»Ö§³ÖÖÐÎÄ£¬ÔÚWindowsÏÂËùÓеÄÖÐÎͼÏÔʾÎʺţ¬ÁíÍ⻹ÓÐһЩ¹¦ÄÜÉϵÄBUG¡£ËùÒÔ½¨Ò黹ÊÇÔÚLinuxÉÏȥʹÓÃGit£¬Èç¹ûÄã²»µÃ²»¹¤×÷ÔÚWindowsÉÏ£¬Äã¿ÉÒÔµ½http://msysgit.github.com/ÉÏÏÂÔØmsysgitµÄ×îа棬°²×°¹ý³ÌºÍÆäËûWindows³ÌÐò²î²»¶à£¬»ù±¾ÉϵãÏÂÒ»²½¾ÍOKÁË¡£MsysgitĬÈϻᰲװgit bashºÍgit GUIÕâÁ½¸ö³ÌÐò£¬Ò»°ãÓÃgit bash¾Í¿ÉÒÔÁË£¬ËüÖ§³Ö³£ÓõÄÃüÁî¡£Èç¹û¶ÔLinuxÃüÁîÐв»Ê죬ÄãÒ²¿ÉÒÔÓÃÓÃgit GUI£¬µ«¹¦ÄÜÓÐÏÞÖÆ¡£
b)µÚÒ»´ÎʹÓÃGIT
ÔÚÄã°²×°ºÃGitÖ®ºó£¬ÄãÐèÒªÐÞ¸ÄһЩÅäÖ㬲ÅÄÜÕý³£Ê¹ÓÃGit¡£
Gitͨ¹ý“git config”ÃüÁîÀ´ÅäÖÃGit£¬Õâ¸öÃüÁîÓÐ2¸öÑ¡Ï--system, --global, ¼ÓÉÏĬÈÏÑ¡Ï·Ö±ð¶ÔÓ¦GitÉÏ3¼¶ÅäÖÃÎļþ¡£µÚÒ»¸öÊÇ/etc/gitconfigÎļþ£¬ºÍ--system¶ÔÓ¦£¬ÕâÊÇÈ«¾ÖÅäÖÃÎļþ£¬ÐÞ¸ÄÕâ¸öÎļþ£¬½«»áÓ°ÏìϵͳÉÏËùÓеÄÓû§£¬ËùÓеIJֿ⡣µÚ¶þ¸öÊÇÄã¼ÒĿ¼ÏµÄ/.gitconfigÎļþ£¬Óë--global¶ÔÓ¦£¬ÐÞ¸ÄËü»á¶ÔÄ㵱ǰÓû§µÄËùÓвֿâ²úÉúÓ°Ïì¡£µÚÈý¸öÊÇÄã²Ö¿âÖеÄ.git/.gitconfigÎļþ£¬ÕâÊÇ“git config”ĬÈÏÐ޸ĵÄÅäÖÃÎļþ£¬ËüÖ»»á¶ÔÄ㵱ǰ²Ö¿â²úÉúÓ°Ïì¡£
ÔÚµÚÒ»´ÎʹÓÃGitʱ£¬ÄãÐèÒª¸æËßÄãµÄÐͬ¿ª·¢Õߣ¬ÄãÊÇËÒÔ¼°ÄãµÄÓÊÏ䣬ÔÚÄãÌá½»µÄʱºò£¬GitÐèÒªÕâÁ½¸öÐÅÏ¢¡£¾ßÌåͨ¹ýÒÔÏÂÃüÁîÉèÖãº
git config --global user.name “Test OSS”
git config --global user.email oss.lzu.edu.cn@gmail.com
µ±È»ÄãÒ²¿ÉÒÔ²»ÓÃ--globalÑ¡Ïµ«ÕâÒâζÕâÄãÔÚÿһ¸ö²Ö¿âÖж¼ÒªÕâÑùÉèÖá£
ͬʱ£¬ÄãÒ²¿ÉÒÔÖ¸¶¨ÄãµÄ±à¼Æ÷£¬ÄãµÄDiff¹¤¾ß£º
git config --global core.editor vim
git config --global merge.tool vimdiff
Ä㻹¿ÉÒÔͨ¹ý”git config --list”ÃüÁîÀ´²é¿´ÄãµÄÉèÖá£
µ±Äã°ÑGitÉèÖúÃÖ®ºó£¬Èç¹ûÄãÒªºÍ´ÓGit·þÎñÆ÷ÉÏ»ñµÃ²Ö¿â£¬»òÕßÏòGit·þÎñÆ÷Ìá½»ÄãµÄ´úÂ루±ÈÈçgithub£©£¬Äã¿ÉÄÜÐèÒªÉú³ÉÄã×Ô¼ºµÄsshÃÜÔ¿¶Ô¡£GitÖ§³Ö4ÖÖÓë·þÎñÆ÷¶ËͨÐŵÄÐÒ飺git¡¢http¡¢sshºÍhttps¡£ÆäÖÐgitÖ»ÊÇÒ»¸öÖ»¶ÁÐÒ飬Ҳ¾ÍÊÇ˵ÄãÖ»¿ÉÒÔ´Ó·þÎñÆ÷¶Ë»ñÈ¡²Ö¿â£¬µ«ÊÇÄã²»ÄÜÌá½»Äã×Ô¼ºµÄ´úÂë¡£¶øhttpºÍhttpsÓõĺÜÉÙ£¬´ó²¿·Ö¶¼Ö»Ö§³ÖsshÐÒéºÍGitÐÒé¡£
µ±Äãͨ¹ýsshÐÒéÓëÔ¶¶Ë·þÎñÆ÷½øÐÐͨÐŵÄʱºò£¬Äã¿ÉÒÔͨ¹ýÒÔÏÂÃüÁîÉú³ÉsshÃÜÔ¿¶Ô£º
ssh-keygen -t rsa
Èç¹ûÄãûÓÐÖ¸¶¨ÃÜÔ¿Ãû³ÆºÍ´æ·Å·¾¶µÄ»°£¬ËüĬÈϰÑÁ½¸ö²»¶Ô³ÆÃÜÔ¿·ÅÔÚÄãµÄ¼ÒĿ¼ÏµÄ.sshĿ¼Ï£¬ÃÜÔ¿ÎļþĬÈÏÃû³ÆÎªid_rsaºÍid_rsa.pub£¬Ç°ÕßÊÇ˽Կ£¬ºóÕßÊǹ«Ô¿¡£Öмä¿ÉÄÜ»áÒªÄãÉ趨·ÃÎÊÃÜÔ¿ÃÜÂ룬Õâ¸ö¿ÉÒÔÉ裬¿ÉÒÔ²»É裬µ«ÎªÁ˰²È«¿¼ÂÇ£¬»¹Êǽ¨ÒéÄãÉèÒ»¸ö·ÃÎÊÃÜÂë¡£·ñÔò£¬Òâζ×ÅÈκγÖÓÐÄãÃÜÔ¿µÄÈ˶¼¿ÉÒÔʹÓøÃÃÜÔ¿¡£
È»ºó°ÑÄãµÄ¹«Ô¿·¢¸øGit²Ö¿â¹ÜÀíÔ±£¬È»ºóÄã¾Í¿ÉÒÔͨ¹ýsshÐÒéÀ´·ÃÎÊ·þÎñÆ÷¶Ë£¬ÆÚ¼ä³ÌÐò»á×Ô¶¯½øÐÐÃÜÔ¿¶ÔÆ¥Å䣬Èç¹ûÄãÉèÁË·ÃÎÊÃÜÂ룬Äã¿ÉÄÜÐèÒªÊäÈëÃÜÂë¡£
¸ü¶à¹ØÓÚsshµÄÄÚÈÝ£¬Çë·ÃÎÊÕâÀhttp://www.freebsd.org/doc/zh_CN/books/handbook/openssh.html
ÕâЩÉ趨ÍêÖ®ºó£¬Äã¿ÉÒÔͨ¹ý»ñµÃÈκÎÒ»¸ö¹«¿ªµÄ´úÂë²Ö¿âÀ´¼ì²âÄãµÄgitÊÇ·ñ¹¤×÷Õý³£¡£±ÈÈçÏÂÃæÕâ¸ö£º
git clone git://git2.kernel.org/pub/scm/git/git.git
4¡¢GIT²Ö¿â
Git×öΪһ¸ö×ÊÔ´¹ÜÀíºÍ¸ú×Ùϵͳ£¬Èç¹ûÏëÒª°Ñ×Ô¼ºµÄÎļþÍйÜÔÚGitÉÏ£¬ÄÇôÊ×ÏÈÄãµÃÈÃGitÖªµÀÄãÐèÒª¹ÜÀíµÄÎļþÔÚÄÄ¡£±ÈÈç˵ÏÖÔÚÎÒÓÐÒ»¸öÏîÄ¿£¬ËüÔÚtestÎļþ¼ÐÀÎÒÏëÈÃGit¹ÜÀíÕâ¸öÏîÄ¿£¬Õâ¸öʱºòÄãÐè½øÈëµ½Õâ¸öĿ¼£¬È»ºóÔËÐГgit init”ÃüÁî¡£Õâ¸öʱºòGit¾Í»áÔÚ¸ÃĿ¼ÏÂÉú³ÉÒ»¸ö.gitµÄÒþ²ØÄ¿Â¼£¬GitÓÃÀ´½øÐа汾¿ØÖƺÍÄÚÈݸú×ÙµÄËùÓÐÎļþ¶¼ÔÚ¸ÃÎļþ¼ÐÏ¡£
´¦ÓÚgit¸ú×ÙϵÄÎļþÖ»¾ßÓÐÈýÖÖ״̬£º
1.Modified(working directory)£º±»Ð޸ĹýµÄÎļþ
2.Staged(staging area)£ºÍ¨¹ýgit addÌí¼Óµ½ÔÝ´æÇøÓòµÄÎļþ
3.Committed(git directory)£ºÍ¨¹ýgit commitÌá½»µ½²Ö¿âµÄÎļþ
ËùÒÔ£¬Ò»°ãµÄgit¹¤×÷Á÷³Ì¿ÉÄÜÊÇÕâÑù£ºÐ޸ĹýijЩÎļþ£¬È»ºó°ÑÕâЩÎļþÌí¼Ó¶¼ÔÝ»ºÇø£¬ÔÙÌá½»µ½²Ö¿âÖÐÐγÉÒ»¸ö°æ±¾»ò¿ìÕÕ£¬×îºóÌá½»µ½git·þÎñÆ÷ÉÏ¡£¶øÔÚÖм䣬¿ÉÄܰéËæ×Å·ÖÖ§¹ÜÀí£¬·ÖÖ§Çл»£¬³·ÏûÓëºÏ²¢¡£
¿ÉÄÜÓÐЩÈË»á¾õµÃºÜÆæ¹Ö£¬ÎªÊ²Ã´git»áÓÐÔÝ´æÇøÓòÕâ¸ö¸ÅÄֱ½ÓÌá½»µ½²Ö¿âÖв»¾ÍokÁË¡£ÆäʵÕâÊÇgitΪÁË×ö°æ±¾¿ØÖÆÓõģ¬ÊÔÏëÈç¹ûûÓÐÔÝ´æÇøÓò£¬Ã¿ÐÞ¸ÄÒ»¸öÎļþ£¬¾Í»áÐγÉÒ»¸ö°æ±¾£¬Ì«¹ýƵ·±£¬²»Ò×ÓÚ¹ÜÀí¡£ÔÝ´æÇøÓòÆäʵ¾ÍÊÇÏÂÒ»¸ö°æ±¾µÄÎļþÇåµ¥£¬Äã¿ÉÒÔ×ÔÓÉ¿ØÖƸÃÍù²Ö¿âÖÐÌύʲôÎļþ£¬ÕâÒ²¿ÉÒÔ±ÜÃâÔÚÒ»¸ö°æ±¾Öаüº¬Ò»Ð©ÖмäÎļþ£¬±ÈÈç±àÒëºóµÄÎļþ¡£



5¡¢GIT»ù±¾Á÷³Ì
1.³õʼ»¯²Ö¿â
³õʼ»¯²Ö¿âÓÐÁ½ÖÖÇé¿ö£¬Ò»ÖÖÊÇÖ±½ÓÔÚÒ»¸ö¿ÕĿ¼ÀィÁ¢Ò»¸öÏîÄ¿£¬ÕâʱºòÄã¿ÉÒÔÕâÑù¸É£º
git init
ÁíÒ»ÖÖÊÇ´ÓÆäËû»úÆ÷¸´ÖÆÒ»¸ö²Ö¿â£¬±ÈÈçÕâÑù£º
git clone git://git2.kernel.org/pub/scm/git/git.git (Ô¶³Ì²Ö¿â)
git clone https://github.com/jquery/jquery.git (Ô¶³Ì²Ö¿â)
git clone git@github.com:wengpingbo/MicroBlog.git (Ô¶³Ì²Ö¿â)
git clone /home/oss/test.git (±¾µØ²Ö¿â)
µÚÒ»´Î´Ó·þÎñÆ÷Éϸ´ÖÆÒ»¸ö²Ö¿â£¬¿ÉÄܱȽÏÂý£¬ÒòΪgitÒª°ÑËùÓеÄÀúÊ·¼Ç¼ºÍ°æ±¾È«²¿¸´ÖÆÏÂÀ´£¬ÕâÒ²ËãgitµÄÒ»¸ö±×¶Ë°É£¡
¸´ÖÆÍêºó£¬¾Í»áÔÚµ±Ç°Ä¿Â¼ÏÂÉú³ÉÒ»¸ö¹¤×÷Ŀ¼£¬Ãû×ÖÒÔ²Ö¿âÃû×ÖÃüÃû¡£Èç¹ûÄã²»ÏëÖ¸¶¨Ä¿Â¼£¬ÄǾÍÔÚÉÏÃæµÄÃüÁîºó¼ÓÒ»¸öĿ¼¾ÍokÁË¡£±ÈÈçÎÒÏë°Ñtest²Ö¿â·Åµ½oss²Ö¿âÖУºgit clone /home/oss/test.git oss
Ö®ºó£¬Äã¾Í¿ÉÒÔ¿ªÊ¼ÄãµÄ¹¤×÷À²£¡
2.Ìí¼ÓÎļþ
ÔÚ±à¼Á˼¸¸öÎĵµÖ®ºó£¬Äã¿ÉÄÜͻȻÏëÆðÀ´£¬ºÃÏñÎļþ»¹Ã»ÓÐÈÃgit¸ú×Ù¡£Git²¢²»»áʵʱµÄ¸ú×ÙÄãµÄÎļþ£¬Ö»ÔÚÄãÃ÷È·ÈÃËü¼Ç¼ÄãµÄÎļþʱ£¬Ëü²Å»á°ÑÖ¸¶¨µÄÎļþµÄµ±Ç°×´Ì¬¼Ç¼µ½²Ö¿âÖÐÈ¥£¬È»ºóÓÖÈöÊÖ²»¹ÜÁË¡£ÎÒÏëÕâ¾ÍÊÇ˵git±¿µÄÔÒò°É¡£Õâ¸öʱºò£¬ÄãÐèÒªÊÖ¶¯Ìí¼ÓÄãµÄÎļþµ±ÔÝ´æÇøÓò£º
git add filename1 filename2
Èç¹ûÄãÀÁµÃÒ»¸öÒ»¸ö¼Ó£¬Äã¿ÉÒÔÊÔÊÔÕâ¸ö£º
git add -A
Ëü»á°Ñµ±Ç°Ä¿Â¼ÏÂËùÓеÄÎļþ¶¼Ìí¼Óµ½ÔÝ´æÇøÓò¡£
3.Ìí¼ÓÒ»¸ö°æ±¾
ÔÚÌí¼ÓÍêÎļþºó£¬Äã¿ÉÄܾõµÃÓ¦¸Ã´´½¨Ò»¸öcommitÁË¡£
git commit
ÔõôÑù£¿ÊDz»ÊÇÓе㲻¶Ô¾¢£¬ºÃÏñÕâ¸öÃüÁûÓа´ÄãÏëÏóµÄÄÇÑùÌø³öÒ»¸öÌá½»³É¹¦µÄÌáʾ£¬¶øÊÇÖ±½ÓÅܵ½ÁËÄãÔÚÅäÖÃÖÐÖ¸¶¨µÄ±à¼Æ÷ÖÐÁË¡£×Ðϸ¿´Ò»Ï£¬ÔÀ´ÊÇÈÃÄã¸øÕâ¸ö°æ±¾×öһЩ±¸×¢£¬Ëæ±ãдµãʲô£¬È»ºó±£´æÍ˳ö¾ÍokÁË¡£Èç¹ûÄã²»ÏëÕâôÂé·³£¬¿ÉÒÔÕâô¸É£º
git commit -m ‘initial version’
¿ÉÄÜÄã¾õµÃ֮ǰ½²µÄÌ«ÂÞàÂÁË£¬Ìá½»Ò»¸öcommit»¹ÕâôÂé·³£¬ÆäʵÓÐÒ»¸ö½Ý¾¶¿ÉÒÔʹÄãÌø¹ýÌí¼ÓÎļþÕâ¸ö¹ý³Ì£º
git commit -a -m ‘initial version’
´ó¹¦¸æ³É£¬Õâ¸öÃüÁî»á°Ñ֮ǰËùÓеÄÒѾÌí¼ÓµÄÎļþ¶¼¼ÓÈëµ½Õâ¸ö°æ±¾ÖС£
¿ÉÄÜÄãÓÖÓÐÒÉÎÊÁË£¬Ö®Ç°Ìí¼ÓµÄÎļþ²»ÊÇ×Ô¶¯»á¼ÓÈëµ½ÏÂÒ»¸ö°æ±¾ÖÐÂð£¬ÎÊʲô»¹¼ÓÕâ¸ö-a²ÎÊý£¿
Æäʵgit addÃüÁîÖ»ÊǰÑÖ¸¶¨ÎļþµÄµ±Ç°×´Ì¬Ìí¼Óµ½ÔÝ´æÇøÓò£¬²¢²»´ú±íÒ»¸öÎļþÒ»µ©Ìí¼Ó£¬¾Í»áÒ»Ö±´æÔÚÿ¸ö°æ±¾ÖС£Èç¹ûÄãÌí¼ÓÒ»¸öÎļþºó¶ÔÕâ¸öÓÖ½øÐÐÁËÐ޸ģ¬ÔÚÄãcommitʱºò£¬Ö»»ácommitÕâ¸öÎļþÌí¼ÓʱµÄ״̬£¬²»»á°ÑÖ®ºóµÄÐÞ¸ÄÒ²commit½øÈ¥£¬³ý·ÇÄãÔÙ´ÎÌí¼Ó¡£
4.ÍÆËͱä¸ü
ÔÚÄãcommitÍêÖ®ºó£¬Äã¿ÉÄÜÏë°Ñ×Ô¼ºµÄ´úÂëÌá½»µ½github»òÕ߯äËûgit·þÎñÆ÷ÉÏ£¬ÓëËûÈ˽»Á÷¹²Ïí£¬Õâʱºò¾ÍÐèÒªºÍÔ¶³Ì·þÎñÆ÷´ò½»µÀÁË¡£
Èç¹ûÄãÊÇÔÚ±¾µØ½¨Á¢ÆðµÄ²Ö¿â£¬Ä¬ÈÏÇé¿öÏÂÊÇûÓÐÈκηþÎñÆ÷µØÖ·µÄ£¬Èç¹ûÄãÊÇ´ÓÆäËû·þÎñÆ÷¸´ÖƹýÀ´µÄ²Ö¿â£¬Õâ¸ö·þÎñÆ÷µØÖ·»á×Ô¶¯Ìí¼Óµ½ÄãµÄ²Ö¿âÖУ¬Äã¿ÉÒÔÕâÑù²é¿´£º
git remote -v
Èç¹ûÖ»ÊäÈë”git remote”£¬¾ÍÖ»»áÁгö·þÎñÆ÷¶ËµÄ±ðÃû£¬²»»áÁгöµØÖ·À´¡£
Ò»¸ö²Ö¿â¿ÉÒÔÓжà¸ö·þÎñÆ÷µØÖ·£¬Õâ¾ÍÒâζ×Å£¬Äã¿ÉÒÔ´Ó²»Í¬µÄÈËÊÖÖи´ÖÆÍ¬Ò»¸ö²Ö¿â£¬µ«Õâ²¢²»»á´òÂÒÄã×Ô¼ºµÄ·ÖÖ§£¬ÄÄÅÂË«·½µÄ·ÖÖ§Ãû×Ö¶¼Ò»Ñù¡£¼ÙÈçÄãÏÖÔÚÔÚºÍÁíÍâÁ½¸öÈË×öͬһ¸öÏîÄ¿ÖеÄͬһ¸ö·ÖÖ§£¬Äã·¢ÏÖAµÄÒ»¸öÄ£¿éÕýÊÇÄãÏëÒªµÄ£¬ÄãÏë°ÑËûµÄ´úÂëºÏ²¢µ½ÄãÏÖÔڵİ汾ÖУ¬ÕâʱºòÄã¿ÉÒÔÕâÑù×ö£º
git remote add code_a git://url/test.git //Ìí¼Ó¶Ô·½µÄµØÖ·,code_aÊDZðÃû
git fetch code_a //¸´ÖƶԷ½µÄ²Ö¿âµ½±¾µØ£¬µ«²»ºÏ²¢£¬git pull»á×Ô¶¯ºÏ²¢
git merge code_a/master //°Ñ¶Ô·½master·ÖÖ§ºÏ²¢µ½×Ô¼ºµ±Ç°°æ±¾ÏÂ
ºÏ²¢ÍêÖ®ºó£¬Äã¿ÉÄÜÏëÌá½»ÄãµÄ´úÂëµ½ÆäËûµÄ·þÎñÆ÷ÉÏ£¬ÕâʱºòÄã¿ÉÒÔÏȰÑÒªÌá½»µÄ·þÎñÆ÷µØÖ·Ìí¼Ó½øÀ´£¬È»ºóÕâÑù×ö£º
git push origin master
ÉÏÃæµÄÃüÁî¾ÍÊǰÑ×Ô¼ºmasterµÄ·ÖÖ§Ìá½»µ½Ãû×ÖΪoriginµÄ·þÎñÆ÷ÉÏ
5.´´½¨²¢¹ÜÀí·ÖÖ§
ÔÚ×öÏîÄ¿µÄʱºò£¬Äã¿ÉÄÜ»áÏëдһЩÀ©Õ¹ÐԵŦÄÜ£¬»òÕß×öһЩСʵÑ飬µ«ÊÇÄãÓÖ²»ÏëÓ°ÏìÄãÏÖÔÚµÄÏîÄ¿¡£Õâʱºò£¬Äã¿ÉÒÔ´´½¨Ò»¸ö·ÖÖ§£¬È»ºóÔÚÕâ¸ö·ÖÖ§Àïд¶«Î÷£¬µ±¾õµÃ²»ºÃµÄʱºò£¬Äã¿ÉÒÔ°ÑÕâ¸ö·Ö֧ɾ³ýµô£¬¶ÔÄã֮ǰµÄÖ÷·Ö֧ûÓÐÈκÎÓ°Ïì¡£»òÕßÄã¾õµÃÕâ¸öÐÂÌØÐÔ³¬³öÁË×Ô¼ºµÄÔ¤Ï룬¿ÉÒԺϲ¢µ½Ö÷·ÖÖ§ÀÕâʱºòÄãÖ»Òª°Ñ¹¤×÷ת»ØÖ÷·ÖÖ§£¬È»ºóºÏ²¢·ÖÖ§£¬×îºóɾ³ý·ÖÖ§£¬È»ºó¾Í¸úÄǸö·Ö֧û´´½¨Ò»Ñù¡£¾ßÌå²Ù×÷ÈçÏ£º
git branch test //´´½¨Ò»¸ötest·ÖÖ§
git checkout test //תµ½test·ÖÖ§
edit something...commit something...
git checkout master //תµ½master·ÖÖ§
git merge test //ºÏ²¢test·ÖÖ§
git checkout -b test2 //´´½¨test2·ÖÖ§£¬²¢×ªµ½test2·ÖÖ§
git branch -d test //ɾ³ýtest·ÖÖ§
git branch //Áгö·ÖÖ§Áбí
git branch -v //Áгö·ÖÖ§ÁбíºÍµ±Ç°commit
Git mergeµÄʵÖÊÊǰÑÁ½¸ö°æ±¾ºÏÔÚÒ»Æð£¬È»ºóÔÚµ±Ç°·ÖÖ§´´½¨Ò»¸öеÄcommit£¬Èç¹ûÄãÔÚÁ½¸ö·ÖÖ§µÄͬһ¸öÎļþµÄͬһ¸öµØ·½¶¼×öÁËÐ޸ģ¬Õâʱºòmerge¾Í»áʧ°Ü£¬git¾Í²»»á×Ô¶¯´´½¨Ò»¸öеÄcommit£¬¶øÊÇÖ±½Óͣס¡£ÄãÐèÒªÊÖ¶¯ÐÞ¸ÄÕâЩ³åÍ»µÄÎļþ£¬Ñ¡ÔñÕâÁ½¸ö·ÖÖ§ÖеÄÒ»¸ö°æ±¾£¬»òÕß×Ô¼ºÖØÐ´Õâ¸ö²¿·Ö£¬È»ºóÊÖ¶¯Ìí¼ÓÕâЩÎļþµ½ÔÝ´æÇøÓò£¬ÔÙcommitһϾÍokÁË¡£Òª²é¿´ÄÄЩÎļþ³åÍ»ÁË£¬¿ÉÒÔÓÔgit status”²é¿´¡£
6.³·Ïû¸Ä¶¯
ÊÇÈ˾ͻ᷸´í¡£µ±ÄãÖ´ÐÐij¸öÃüÁîÖ®ºó£¬Í»È»·¢ÏÖ£¬×Ô¼ºÐ´´íÁË£¬»òÕß©ÁËÒ»¸öÎļþ£¬ÕâʱºòÔõô°ì£¿
Èç¹ûÄãÌá½»µÃÌ«Ô磬ÍüÁËÌí¼ÓijЩÎļþ£¬Äã¿ÉÒÔÕâÑù×ö£º
git commit -m ‘add something ’
git add file1
git commit --amend
×îºóÒ»¸öÃüÁî»á°ÑÄ㵱ǰÔÝ´æÇøÓò×îΪÉÏÒ»´ÎµÄcommit¡£Èç¹ûÄãcommitÒÔºó£¬ÂíÉÏamend£¬Õâʱºògit»áÖ±½ÓÌøµ½±à¼commit±¸×¢ÀïÃæ£¬ÕâÑùÄã¿ÉÒÔÐÞ¸ÄÄãÉÏ´ÎcommitµÄ±¸×¢¡£
Èç¹ûÄãÌí¼ÓÁ˲»¸ÃÌí¼ÓµÄÎļþ£¬Äã¿ÉÒÔÕâÑùÍì»Ø£º
git add . //°ÑËùÓеÄÎļþ¶¼Ìí¼Ó½øÈ¥
git reset HEAD readme //°ÑreadmeÎļþ´ÓÔÝ´æÇøÓòÈ¥³ý
Èç¹ûÄã·¢ÏÖÄã±à¼´íÁËÒ»¸öÎļþ£¬ÄãÏë°ÑËü»Ö¸´µ½ÉÏÒ»¸ö°æ±¾µÄ״̬£¬ÕâʱºòÄã¿ÉÒÔÕâÑù£º
git checkout -- filename1 //Ö»³·ÏûÕâÒ»¸öÎļþ
Èç¹ûÄã¾õµÃÕâ¸ö°æ±¾Ôã¸â͸ÁË£¬ÏëÍêÈ«»Ø¹öµ½ÉÏÒ»¸ö°æ±¾£¬Äã¿ÉÒÔ¸ÉÈçÏÂÊÂÇ飺
git reset --hard HEAD^
HEADÊÇÖ¸Ïòµ±Ç°°æ±¾£¬^Ö¸µ±Ç°°æ±¾µÄ¸¸°æ±¾£¬Õâ¸ö²Ù×÷ÎÞ·¨³·Ïû¡£Äã¿ÉÒÔ°Ñ--hard»»³É--soft£¬ÕâÖ»»á»ØÍËcommitÐÅÏ¢¡£»¹ÓÐÒ»¸ö--mixedĬÈÏÑ¡Ï´ó¼Ò¿ÉÒԲο¼¹Ù·½Îĵµ£¬²é¿´Õâ3¸öÑ¡ÏîµÄ¾ßÌåÇø±ð¡£
6¡¢GIT³£ÓÃÃüÁî
Git add
Git clone
Git commit
Git push
Git checkout
Git reset
Git pull
Git status
Git branch
//advanced
Git tag
Git log
Git merge
|