Git°²×°
Linux
sudo apt-get install gitÃüÁî°²×°Git
Windows
¹ÙÍøÏÂÔØ °²×°¼´¿É£¬²»×¸Êö¡£
×¢£º°²×°Ê±×¢ÒâÒ»²½£ºÑ¡ÔñµÚ¶þÏ½«gitÌí¼Óµ½pathÖС£
´´½¨°æ±¾¿â
1¡¢´´½¨ÏîÄ¿Îļþ¼Ð£¬ÀýÈ磺demo
2¡¢½øÈëdemoĿ¼Ï£ºgit initÃüÁÕâ¸öĿ¼±ä³Égit¿ÉÒÔ¹ÜÀíµÄ²Ö¿â£¨repository£©¡£½«²Ö¿â½¨ºÃºó£¬²Ö¿âĿ¼Ï»á¶àÁËÒ»¸ö.gitÒþ²ØÎļþ¼Ð¡£¿ÉÒÔÓÃls
-ah²é¿´Òþ²ØÎļþ¡£
3¡¢Ïò¿âÀïÌí¼ÓÒ»¸öreadme.txtÎļþ£º
4¡¢git add¸æËßgit£¬Òª°ÑÎļþÌí¼Óµ½²Ö¿â£º
git add readme.txt
(1)Ö´ÐÐÃüÁÆäʵ£¬ÕâÒ»²½µÄ×÷ÓþÍÊǽ«ÎļþÌí¼Óµ½stage£¨ÔÝ´æÇø£©¡£
(2)git add .½«ËùÓÐÎļþÌí¼Óµ½ÔÝ´æÇø¡£ git add -u½«ËùÓÐÎļþÌí¼ÓÔÝ´æÇø£¬Í¬Ê±£¬½«É¾³ýµÄÎļþ´Ó²Ö¿âÖÐɾ³ý¡£
5¡¢git commitÃüÁ½«ÎļþÌá½»µ½²Ö¿â¡£
git commit -m "wrote a readme file"
×¢£º-mÊǶԱ¾´ÎÌá½»µÄ˵Ã÷£¬²»¸Ã͵ÀÁʡȥ¡£
6¡¢git status²é¿´µ±Ç°°æ±¾¿âµÄ״̬¡£
7¡¢git diffÏÔʾ¾ßÌåµÄÉÐ믧´æµÄ¸Ä¶¯¼Ç¼¡£
8¡¢git log¼Ç¼ÿ´ÎcommitµÄÐÅÏ¢¡£git log --pretty=oneline½«Ã¿´ÎcommitµÄ¼Ç¼´òÓ¡³ÉÒ»ÐУ¬ÄÚÈݾ«¼ò¡£
9¡¢git resetÐÞ¸ÄÃüÁ
(1)git reset HEAD·Ï³ýÕâ´ÎÐ޸ļǼ£¬µ±Ç°Îļþ»Øµ½ÉÏÒ»´ÎÌá½»µÄ״̬¡£
(2)git reset ¨Chard [commit id]
10¡¢git rmÉ÷Óá£Õâ¸öÃüÁî»á½«ËùÓа汾¿â¼Ç¼ɾ³ý¡£
Ô¶³Ì²Ö¿â
´´½¨SSH Key¡£ÔÚÀàËÆC:\Users\xiang_000\.sshÕâÑùµÄÖ÷Ŀ¼Ï£¬²é¿´ÊÇ·ñÓÐid_rsaºÍid_rsa.pubÎļþ¡£Èç¹ûÓÐÁË£¬Ö±½Ó¿ÉÒÔ½«¹«Ô¿Ìí¼Óµ½githubÕË»§ÉÏ¡£Èç¹ûûÓУ¬´ò¿ªShell(windowsϵÄGit
Bash):
ssh-keygen -t rsa -C "youremail@example.com"
id_rsa.pubÊǹ«Ô¿£¬¿ÉÒÔ·ÅÐĵĸæËßÈκÎÈË¡£
ÔÚgithubµÄAccount settingsÀAdd SSH Key¡£
´ÓÔ¶³Ì¿â¿Ë¡
Èç¹û´ÓÁ㿪·¢£¬ÍƼöµÄ·½Ê½ÊÇÏÈÔÚgithubÉÏ´´½¨Ô¶³Ì²Ö¿â¡£È»ºó£¬´ÓÔ¶³Ì¿â¿Ë¡¡£
ÔÚgithub´´½¨ÃûΪ£ºlearngitµÄвֿ⡣¹´Ñ¡Ìí¼ÓREADME.md¡£
git clone¿Ë¡һ¸ö±¾µØ¿â£º
git clone git@github.com:michael728/learngit.git
Ìí¼Ó(¹ØÁª£©Ô¶³Ì¿â
Èç¹û±¾µØÒѾÓб¾µØ²Ö¿âÁË£¬ÒªºÍÔ¶³ÌµÄ²Ö¿â¹ØÁªÆðÀ´¡£
ÔÚgithub´´½¨ÐµÄrepo£¬Ãû×ÖΪ£ºdemo¡£¸ù¾ÝgithubµÄÌáʾ£¬ÔÚ±¾µØµÄdemo²Ö¿âÏÂÔËÐÐÃüÁ
git remote add origin git@github.com:michae728/demo.git`
ÇëǧÍò×¢Ò⣬°ÑÉÏÃæµÄmichae728Ìæ»»³ÉÄã×Ô¼ºµÄGitHubÕË»§Ãû£¬·ñÔò£¬ÄãÔÚ±¾µØ¹ØÁªµÄ¾ÍÊÇÎÒµÄÔ¶³Ì¿â£¬¹ØÁªÃ»ÓÐÎÊÌ⣬µ«ÊÇÄãÒÔºóÍÆËÍÊÇÍÆ²»ÉÏÈ¥µÄ£¬ÒòΪÄãµÄSSH
Key¹«Ô¿²»ÔÚÎÒµÄÕË»§ÁбíÖС£
Ìí¼Óºó£¬Ô¶³Ì¿âµÄÃû×Ö¾ÍÊÇorigin£¬ÕâÊÇGitĬÈϵĽз¨£¬Ò²¿ÉÒԸijɱðµÄ£¬µ«ÊÇoriginÕâ¸öÃû×ÖÒ»¿´¾ÍÖªµÀÊÇÔ¶³Ì¿â¡£
½«±¾µØ¿âµÄËùÓÐÄÚÈÝÍÆË͵½Ô¶³Ì¿âÉÏ£º
git push -u origin master
°Ñµ±Ç°±¾µØ·ÖÖ§masterÍÆË͵½Ô¶³Ì¡£ÓÉÓÚ֮ǰԶ³Ì¿âÊǿյ쬵ÚÒ»´ÎÍÆËÍmaster·Ö֧ʱ£¬¼ÓÉÏÁË-u²ÎÊý¡£git²»µ«°Ñ±¾µØµÄmaster·ÖÖ§ÄÚÈÝÍÆË͵½Ô¶³ÌеÄmaster·ÖÖ§£¬»¹»á°Ñ±¾µØmaster·ÖÖ§ºÍÔ¶³ÌµÄmaster·ÖÖ§¹ØÁªÆðÀ´£¬ÒÔºóÍÆËÍ»òÕßÀÈ¡¾Í¿ÉÒÔ¼ò»¯ÃüÁî¡£
´ÓÏÖÔÚÆð£¬±¾µØÌá½»£¬¿Éͨ¹ýÃüÁ
git push origin master
·ÖÏíÓë¸üÐÂÏîÄ¿
git push:
(1)git push origin dev±íʾÌá½»µ½Ô¶³ÌµÄdev·ÖÖ§¡£
(2) ͨ³£ÔÚ±¾µØµÄdev·ÖÖ§ÍÆË͵½Ô¶³ÌµÄdev·ÖÖ§£¬×¢ÒâÁ½µØ·ÖÖ§ÃüÃûÒªÏàͬ£¬±£Ö¤²»·¢Éú»ìÂÒ
git pull:
(1)git pull origin dev±íʾÀÔ¶³Ìdev·ÖÖ§µ½±¾µØ£¬²¢ºÍ±¾µØdev·ÖÖ§ºÏ²¢,git
fetch(²»³£Óã©£º
(2)git fetch origin dev±íʾÀÔ¶³Ìdev·ÖÖ§µ½±¾µØ£¬µ«ÊÇ£¬²»ºÍ±¾µØdev·ÖÖ§ºÏ²¢
git remote:
git remote add github git@github.com:michael728/test.git½«±¾µØ²Ö¿âÍÆË͵½githubÉÏÃûΪtestµÄ²Ö¿âÀï
·ÖÖ§¹ÜÀí
´´½¨Óںϲ¢·ÖÖ§
´´½¨dev·ÖÖ§£¬È»ºóÇл»µ½dev·ÖÖ§£º
git checkout -b dev
Ï൱ÓÚÏÂÃæÁ½ÌõÃüÁ
(1)git branch dev
(2)git checkout dev
git branchÃüÁîÓÃÓڲ鿴µ±Ç°·ÖÖ§¡£µ±Ç°·ÖÖ§Ç°Ãæ»áÓÐ*:
git branch²é¿´±¾µØ·ÖÖ§
git branch -a²é¿´±¾µØºÍÔ¶³ÌËùÓзÖÖ§
git branch -r²é¿´Ô¶³Ì·ÖÖ§
git branch -dɾ³ý±¾µØ·ÖÖ§
git push :origin devɾ³ýÔ¶³Ìdev·ÖÖ§
git checkout masterÃüÁîÓÃÓÚdev·ÖÖ§Íê³É¹¤×÷ºó£¬Çл»»Ømaster·ÖÖ§¡£
git mergeÓÃÓÚ±¾µØµÄÖ¸Áî¡£Èç¹ûµ±Ç°·ÖÖ§ÊÇmaster£¬±¾µØÁíÒ»¸ö·ÖÖ§ÊÇdev£¬
ÓÃÏÂÃæÃüÁ·ÖÖ§ºÏ²¢µ½master£º
git merge dev
ºó»ÚÒ©
°æ±¾»ØÍË
git logÀ´²éѯÀúÊ·¼Ç¼¡£git log --pretty=onelineÏÔʾ¾«¼òÐÅÏ¢¡£
gitÖУ¬HEAD±íʾµ±Ç°°æ±¾£¬ÉÏÒ»¸ö°æ±¾¾ÍÊÇHEAD^,ÉÏÉϸö°æ±¾HEAD^^£¬ÉÏ100¸ö°æ±¾£¬Ð´³ÉHEAD~100¡£
»Øµ½ÉÏÒ»¸ö°æ±¾£º
git reset --hard HEAD^
»òÕßͨ¹ýgit reset --hard [commit id]»Øµ½Ö¸¶¨°æ±¾ºÅµÄ°æ±¾¡£
git°æ±¾µÄ»ØÍËËٶȺܿ죬ÒòΪgitÄÚ²¿ÓиöÖ¸Ïòµ±Ç°°æ±¾µÄHEADÖ¸Õë¡£git½ö½öÊÇͨ¹ýÐÞ¸ÄHEADÖ¸Ïò¾Í¿ÉÒÔÍê³É°æ±¾Çл»µÄ¹¤×÷¡£
git reflogÓÃÀ´²é¿´ÃüÁîÀúÊ·¡£Í¨¹ýÕâ¸ö£¬¾Í¿ÉÒԲ鵽֮ǰµÄ°æ±¾ºÅÀ²£¡
¹¤×÷ÇøºÍÔÝ´æÇø
¹¤×÷Çø£¨Working Directory)
ÀýÈçÎÒÃÇ´´½¨µÄdemoÎļþ¼Ð£¬Ëû¾ÍÊÇÒ»¸ö¹¤×÷Çø¡£
°æ±¾¿â£¨Repository)
¹¤×÷ÇøÓÐÒ»¸öÒþ²ØÄ¿Â¼.git£¬Õâ¸ö²»Ë㹤×÷Çø£¬ËüÊÇgitµÄ°æ±¾¿â¡£
gitµÄ°æ±¾¿âÀï´æÁ˺ܶණÎ÷£¬×îÖØÒªµÄÊdzÆÎªstageµÄÔÝ´æÇø£¬»¹ÓÐgitΪÎÒÃÇ×Ô¶¯´´½¨µÄµÚÒ»¸ö·ÖÖ§master£¬ÒÔ¼°Ö¸ÏòmasterµÄÒ»¸öÖ¸Õë½ÐHEAD¡£

˵Ã÷£º
git addʵ¼ÊÉϾÍÊǰÑÎļþÐÞ¸ÄÌí¼Óµ½ÔÝ´æÇø£»
git commitÌá½»¸ü¸Ä£¬Êµ¼ÊÉϾÍÊǰÑÔÝ´æÇøµÄËùÓÐÄÚÈÝÌá½»µ½µ±Ç°·ÖÖ§¡£
ÒòΪÎÒÃÇ´´½¨°®Äãgit°æ±¾¿âÊÇ£¬git×Ô¶¯ÎªÎÒÃÇ´´½¨ÁËΨһһ¸ömaster·ÖÖ§£¬ËùÒÔ£¬ÏÖÔÚgit
commit¾ÍÊÇÍùmaster·ÖÖ§ÉÏÌá½»¸ü¸Ä¡££¨ÒòΪÒÔºó»¹ÓпÉÄÜÍù·ÖÖ§ÉÏÌá½»°¡£¡£©
(1)+ `git status`¿ÉÒԲ鿴״̬¡£Èç¹ûÓÐÎļþ´ÓÀ´Ã»Óб»Ìí¼Ó¹ý£¬ÄÇôËüµÄ״̬ÊÇ£º`Untracked`¡£
(2)+ Ìá½»³É¹¦ºó£¬Èç¹ûûÓжԹ¤×÷Çø×öÈκÎÐ޸ģ¬ÄÇô¹¤×÷Çø¾ÍÊÇ`working
directory clean`
¹ÜÀíÐÞ¸Ä
1¡¢git diff HEAD -- README.md ÃüÁî²é¿´¹¤×÷ÇøºÍ°æ±¾¿âÀï×îа汾µÄÇø±ð¡£
³·ÏúÐÞ¸Ä
·ÖΪÁ½ÖÖÇé¿öµÄÐ޸ģº
ÐÞ¸ÄÁ˹¤×÷ÇøÄ³¸öÎļþµÄÄÚÈÝ£¬ÏëÖ±½Ó¶ªÆúÐ޸ģº
git checkout -- filename
×¢£º--ǰºó¶¼Óпոñ¡£
µ±ÐÞ¸ÄÁ˹¤×÷ÇøÄÚÈÝ£¬Í¬Ê±£¬Ìí¼Óµ½ÁËÔÝ´æÇø£¬·ÖÁ½²½£º
(1)ÓÃÃüÁîgit reset HEAD filename,»Øµ½³¡¾°1
(2)Óó¡¾°1µÄ·½·¨²Ù×÷¡£
ɾ³ýÎļþ
µ±É¾³ýÁ˹¤×÷ÇøµÄÎļþ£¬gitÖªµÀɾ³ýÁËÎļþ£¬Òò´Ë£¬¹¤×÷ÇøºÍ°æ±¾¿â¾Í²»Ò»Ö¡£git
statusÃüÁî»áÁ¢¿Ì¸æËßÄÇЩÎļþ±»É¾³ýÁË¡£
ÓÐÁ½¸öÑ¡Ôñ£º
1¡¢È·ÊµÒª´Ó°æ±¾¿âÀïɾ³ý¸ÃÎļþ£¬ÓÃÃüÁîgit rm fimename,Ö®ºógit
commitÌá½»¡£
2¡¢Îóɾ£¬ÒòΪ°æ±¾¿âÀﻹÓУ¬¿ÉÒÔºÜÇáËɵİÑÎóɾµÄÎļþ»Ö¸´µ½×îа棺git
checkout -- filename
×¢£ºgit checkoutÆäʵÊÇÓð汾¿âÀïµÄ¶«Î÷Ìæ»»¹¤×÷ÇøµÄ°æ±¾¡£ÎÞÂÛ¹¤×÷ÇøÊÇÐ޸ϹÊÇɾ³ý£¬¶¼¿ÉÒÔÒ»¼ü»¹Ô¡£
¸½¼þ 1¡¢

2¡¢
|