¸ÅÊö
ÏÈÓÃÒ»·ùͼ£¬´Ó×ÜÌåÉÏÃèÊöÖ÷ÒªgitÃüÁîµÄ¹¤×÷Á÷³Ì

workspace: ±¾µØµÄ¹¤×÷Ŀ¼¡££¨¼Ç×÷A£©
index/stage£ºÔÝ´æÇøÓò£¬ÁÙʱ±£´æ±¾µØ¸Ä¶¯¡£ £¨¼Ç×÷B£©
local repository: ±¾µØ²Ö¿â£¬Ö»Ïë×îºóÒ»´ÎÌá½»HEAD¡££¨¼Ç×÷C£©
remote repository£ºÔ¶³Ì²Ö¿â¡££¨¼Ç×÷D£©

ÃüÁî±Ê¼Ç
ÒÔÏÂËùÓеÄÃüÁîµÄ¹¦ÄÜ˵Ã÷£¬¶¼²ÉÓÃÉÏÊöµÄ±ê¼ÇµÄA¡¢B¡¢C¡¢DµÄ·½Ê½À´²ûÊö¡£
³õʼ»¯
git init //´´½¨ git clone /path/to/repository //¼ì³ö git config --global user.email "you@example.com" //ÅäÖÃemail git config --global user.name "Name" //ÅäÖÃÓû§Ãû |
²Ù×÷
git add <file> // ÎļþÌí¼Ó£¬A ¡ú B git add . // ËùÓÐÎļþÌí¼Ó£¬A ¡ú B git commit -m "´úÂëÌá½»ÐÅÏ¢" //ÎļþÌá½»£¬B ¡ú C git commit --amend //ÓëÉÏ´ÎcommitºÏ²¢, *B ¡ú C git push origin master //ÍÆËÍÖÁmaster·ÖÖ§, C ¡ú D git pull //¸üб¾µØ²Ö¿âÖÁ×îÐ¸Ķ¯£¬ D ¡ú A git fetch //ץȡԶ³Ì²Ö¿â¸üУ¬ D ¡ú C git log //²é¿´Ìá½»¼Ç¼ git status //²é¿´ÐÞ¸Ä״̬ git diff//²é¿´ÏêϸÐÞ¸ÄÄÚÈÝ git show//ÏÔʾij´ÎÌá½»µÄÄÚÈÝ |
³·Ïú²Ù×÷
git reset <file>//ij¸öÎļþË÷Òý»á»Ø¹öµ½×îºóÒ»´ÎÌá½»£¬ C ¡ú B git reset//Ë÷Òý»á»Ø¹öµ½×îºóÒ»´ÎÌá½»£¬ C ¡ú B git reset --hard // Ë÷Òý»á»Ø¹öµ½×îºóÒ»´ÎÌá½»£¬ C ¡ú B ¡ú A git checkout // ´Óindex¸´ÖƵ½workspace£¬ B ¡ú A git checkout -- files // Îļþ´Óindex¸´ÖƵ½workspace£¬ B ¡ú A git checkout HEAD -- files // Îļþ´Ólocal repository¸´ÖƵ½workspace£¬ C ¡ú A |
·ÖÖ§Ïà¹Ø
git checkout -b branch_name //´´½¨Ãû½Ð¡°branch_name¡±µÄ·ÖÖ§£¬²¢Çл»¹ýÈ¥ git checkout master //Çл»»ØÖ÷·ÖÖ§ git branch -d branch_name // ɾ³ýÃû½Ð¡°branch_name¡±µÄ·ÖÖ§ git push origin branch_name //ÍÆËÍ·ÖÖ§µ½Ô¶¶Ë²Ö¿â git merge branch_name // ºÏ²¢·ÖÖ§branch_nameµ½µ±Ç°·ÖÖ§(Èçmaster) git rebase //Ñܺϣ¬ÏßÐÔ»¯µÄ×Ô¶¯£¬ D ¡ú A |
³åÍ»´¦Àí
git diff //¶Ô±ÈworkspaceÓëindex git diff HEAD //¶ÔÓÚworkspaceÓë×îºóÒ»´Îcommit git diff <source_branch> <target_branch> //¶Ô±È²îÒì git add <filename> //ÐÞ¸ÄÍê³åÍ»£¬ÐèÒªaddÒÔ±ê¼ÇºÏ²¢³É¹¦ |
ÆäËû
gitk //¿ªµÆÍ¼Ðλ¯git git config color.ui true //²ÊÉ«µÄ git Êä³ö git config format.pretty oneline //ÏÔʾÀúÊ·¼Ç¼ʱ£¬Ã¿¸öÌá½»µÄÐÅÏ¢Ö»ÏÔʾһÐÐ git add -i //½»»¥Ê½Ìí¼ÓÎļþµ½ÔÝ´æÇø |
²Ù×÷
¢Ù ´´½¨°æ±¾¿â
ͨ¹ýgit initÃüÁî°ÑÕâ¸öĿ¼±ä³ÉGit¿ÉÒÔ¹ÜÀíµÄ²Ö¿â
µÚÒ»²½£¬ÓÃÃüÁîgit add¸æËßGit£¬°ÑÎļþÌí¼Óµ½²Ö¿â£º
$ git add readme.txt
Ö´ÐÐÉÏÃæµÄÃüÁûÓÐÈκÎÏÔʾ£¬Õâ¾Í¶ÔÁË£¬
UnixµÄÕÜѧÊÇ¡°Ã»ÓÐÏûÏ¢¾ÍÊǺÃÏûÏ¢¡± |
˵Ã÷Ìí¼Ó³É¹¦¡£
µÚ¶þ²½£¬ÓÃÃüÁîgit commit -m "xxx" ¸æËßGit£¬°ÑÎļþÌá½»µ½²Ö¿â£¬-mºóÃæÊäÈëµÄÊDZ¾´ÎÌá½»µÄ˵Ã÷£¬ÄÜ´ÓÀúÊ·¼Ç¼Àï·½±ãµØÕÒµ½¸Ä¶¯¼Ç¼¡£
¢Ú Ìí¼ÓÔ¶³Ì¿â
git remote add origin git@github.com:tcyfree/test.git(»òhttps://github.com/tcyfree/test.git£¬ÓÃgit@±Èhttps¿ì) |
Ìí¼Óºó£¬Ô¶³Ì¿âµÄÃû×Ö¾ÍÊÇorigin£¬ÕâÊÇGitĬÈϵĽз¨£¬Ò²¿ÉÒԸijɱðµÄ£¬µ«ÊÇoriginÕâ¸öÃû×ÖÒ»¿´¾ÍÖªµÀÊÇÔ¶³Ì¿â¡£
ÏÂÒ»²½£¬¾Í¿ÉÒ԰ѱ¾µØ¿âµÄËùÓÐÄÚÈÝÍÆË͵½Ô¶³Ì¿âÉÏ£º
$ git push -u origin master |
°Ñ±¾µØ¿âµÄÄÚÈÝÍÆË͵½Ô¶³Ì£¬ÓÃgit pushÃüÁʵ¼ÊÉÏÊǰѵ±Ç°·ÖÖ§masterÍÆË͵½Ô¶³Ì¡£
ÓÉÓÚÔ¶³Ì¿âÊǿյģ¬ÎÒÃǵÚÒ»´ÎÍÆËÍmaster·Ö֧ʱ£¬¼ÓÉÏÁË-u²ÎÊý£¬Git²»µ«»á°Ñ±¾µØµÄmaster·ÖÖ§ÄÚÈÝÍÆË͵ÄÔ¶³ÌеÄmaster·ÖÖ§£¬»¹»á°Ñ±¾µØµÄmaster·ÖÖ§ºÍÔ¶³ÌµÄmaster·ÖÖ§¹ØÁªÆðÀ´£¬ÔÚÒÔºóµÄÍÆËÍ»òÕßÀȡʱ¾Í¿ÉÒÔ¼ò»¯ÃüÁî¡£
×ܽ᣺´ÓÏÖÔÚÆð£¬Ö»Òª±¾µØ×÷ÁËÌá½»£¬¾Í¿ÉÒÔͨ¹ýÃüÁgit push origin master
°Ñ±¾µØmaster·ÖÖ§µÄ×îÐÂÐÞ¸ÄÍÆËÍÖÁGitHub£¬ÏÖÔÚ£¬Äã¾ÍÓµÓÐÁËÕæÕýµÄ·Ö²¼Ê½°æ±¾¿â£¡
Òª¹ØÁªÒ»¸öÔ¶³Ì¿â£¬Ê¹ÓÃÃüÁîgit remote add origin git@server-name:path/repo-name.git£»
¹ØÁªºó£¬Ê¹ÓÃÃüÁîgit push -u origin masterµÚÒ»´ÎÍÆËÍmaster·ÖÖ§µÄËùÓÐÄÚÈÝ£»
´Ëºó£¬Ã¿´Î±¾µØÌá½»ºó£¬Ö»ÒªÓбØÒª£¬¾Í¿ÉÒÔʹÓÃÃüÁîgit push origin masterÍÆËÍ×îÐÂÐ޸ģ»
·Ö²¼Ê½°æ±¾ÏµÍ³µÄ×î´óºÃ´¦Ö®Ò»ÊÇÔÚ±¾µØ¹¤×÷ÍêÈ«²»ÐèÒª¿¼ÂÇÔ¶³Ì¿âµÄ´æÔÚ£¬Ò²¾ÍÊÇÓÐûÓÐÁªÍø¶¼¿ÉÒÔÕý³£¹¤×÷£¬¶øSVNÔÚûÓÐÁªÍøµÄʱºòÊǾܾø¸É»îµÄ£¡µ±ÓÐÍøÂçµÄʱºò£¬Ôٰѱ¾µØÌá½»ÍÆËÍһϾÍÍê³ÉÁËͬ²½£¬ÕæÊÇÌ«·½±ãÁË£¡
¢Û ´ÓÔ¶³Ì¿â¿Ë¡
ÉÏ´ÎÎÒÃǽ²ÁËÏÈÓб¾µØ¿â£¬ºóÓÐÔ¶³Ì¿âµÄʱºò£¬ÈçºÎ¹ØÁªÔ¶³Ì¿â¡£
ÏÖÔÚ£¬¼ÙÉèÎÒÃÇ´ÓÁ㿪·¢£¬ÄÇô×îºÃµÄ·½Ê½ÊÇÏÈ´´½¨Ô¶³Ì¿â£¬È»ºó£¬´ÓÔ¶³Ì¿â¿Ë¡¡£
Òª¿Ë¡һ¸ö²Ö¿â£¬Ê×ÏȱØÐëÖªµÀ²Ö¿âµÄµØÖ·£¬È»ºóʹÓÃgit cloneÃüÁî¿Ë¡¡£GitÖ§³Ö¶àÖÖÐÒ飬°üÀ¨https£¬µ«Í¨¹ýsshÖ§³ÖµÄÔÉúgitÐÒéËÙ¶È×î¿ì¡£
³¡¾°²Ù×÷
ʱ¹â»ú´©Ëó
1.ÒªËæÊ±ÕÆÎÕ¹¤×÷ÇøµÄ״̬£¬Ê¹ÓÃgit statusÃüÁî¡£
2.Èç¹ûgit status¸æËßÄãÓÐÎļþ±»Ð޸Ĺý£¬ÓÃgit diff¿ÉÒԲ鿴ÐÞ¸ÄÄÚÈÝ¡£
°æ±¾»ØÍË
1.HEADÖ¸ÏòµÄ°æ±¾¾ÍÊǵ±Ç°°æ±¾£¬Òò´Ë£¬GitÔÊÐíÎÒÃÇÔÚ°æ±¾µÄÀúÊ·Ö®¼ä´©Ëó£¬Ê¹ÓÃÃüÁîgit reset
--hard commit_id¡£
2.´©Ëóǰ£¬ÓÃgit log¿ÉÒԲ鿴Ìá½»ÀúÊ·£¬ÒÔ±ãÈ·¶¨Òª»ØÍ˵½Äĸö°æ±¾¡£
3.ÒªÖØ·µÎ´À´£¬ÓÃgit reflog²é¿´ÃüÁîÀúÊ·£¬ÒÔ±ãÈ·¶¨Òª»Øµ½Î´À´µÄÄĸö°æ±¾¡£
git diff HEAD -- readme.txtÃüÁî¿ÉÒԲ鿴¹¤×÷ÇøºÍ°æ±¾¿âÀïÃæ×îа汾µÄÇø±ð
³·ÏúÐÞ¸Ä ³¡¾°1£ºµ±Äã¸ÄÂÒÁ˹¤×÷ÇøÄ³¸öÎļþµÄÄÚÈÝ£¬ÏëÖ±½Ó¶ªÆú¹¤×÷ÇøµÄÐÞ¸Äʱ£¬ÓÃÃüÁîgit
checkout -- file¡£
³¡¾°2£ºµ±Äã²»µ«¸ÄÂÒÁ˹¤×÷ÇøÄ³¸öÎļþµÄÄÚÈÝ£¬»¹Ìí¼Óµ½ÁËÔÝ´æÇøÊ±£¬Ï붪ÆúÐ޸쬷ÖÁ½²½£¬µÚÒ»²½ÓÃÃüÁîgit
reset HEAD file£¬¾Í»Øµ½Á˳¡¾°1£¬µÚ¶þ²½°´³¡¾°1²Ù×÷¡£
£¨git resetÃüÁî¼È¿ÉÒÔ»ØÍ˰汾£¬Ò²¿ÉÒÔ°ÑÔÝ´æÇøµÄÐ޸ĻØÍ˵½¹¤×÷Çø¡£µ±ÎÒÃÇÓÃHEADʱ£¬±íʾ×îеİ汾¡££©
³¡¾°3£ºÒѾÌá½»Á˲»ºÏÊʵÄÐ޸ĵ½°æ±¾¿âʱ£¬ÏëÒª³·Ïú±¾´ÎÌá½»£¬²Î¿¼°æ±¾»ØÍËÒ»½Ú£¬²»¹ýǰÌáÊÇûÓÐÍÆË͵½Ô¶³Ì¿â¡£
ɾ³ýÎļþ
1.ÃüÁîgit rmÓÃÓÚɾ³ýÒ»¸öÎļþ¡£
2.ȷʵҪ´Ó°æ±¾¿âÖÐɾ³ý¸ÃÎļþ£¬ÄǾÍÓÃÃüÁîgit rmɾµô£¬²¢ÇÒgit commit£º
$ git rm test.txt rm 'test.txt' $ git commit -m "remove test.txt" [master d17efd8] remove test.txt 1 file changed, 1 deletion(-) delete mode 100644 test.txt |
ÏÖÔÚ£¬Îļþ¾Í´Ó°æ±¾¿âÖб»É¾³ýÁË
git checkoutÆäʵÊÇÓð汾¿âÀïµÄ°æ±¾Ìæ»»¹¤×÷ÇøµÄ°æ±¾£¬ÎÞÂÛ¹¤×÷ÇøÊÇÐ޸ϹÊÇɾ³ý£¬¶¼¿ÉÒÔ¡°Ò»¼ü»¹Ô¡±¡£
git pull£ºÏ൱ÓÚÊÇ´ÓÔ¶³Ì»ñÈ¡×îа汾²¢mergeµ½±¾µØ
git pull origin master
ÉÏÊöÃüÁîÆäʵÏ൱ÓÚgit fetch ºÍ git merge
ÔÚʵ¼ÊʹÓÃÖУ¬git fetch¸ü°²È«Ò»Ð©
ÒòΪÔÚmergeǰ£¬ÎÒÃÇ¿ÉÒԲ鿴¸üÐÂÇé¿ö£¬È»ºóÔÙ¾ö¶¨ÊÇ·ñºÏ²¢
´´½¨ÓëºÏ²¢·ÖÖ§
½ØÖ¹µ½Ä¿Ç°£¬Ö»ÓÐÒ»Ìõʱ¼äÏߣ¬ÔÚGitÀÕâ¸ö·ÖÖ§½ÐÖ÷·ÖÖ§£¬¼´master·ÖÖ§¡£HEADÑϸñÀ´Ëµ²»ÊÇÖ¸ÏòÌá½»£¬¶øÊÇÖ¸Ïòmaster£¬master²ÅÊÇÖ¸ÏòÌá½»µÄ£¬ËùÒÔ£¬HEADÖ¸ÏòµÄ¾ÍÊǵ±Ç°·ÖÖ§¡£

git checkoutÃüÁî¼ÓÉÏ-b²ÎÊý±íʾ´´½¨²¢Çл»£¬Ï൱ÓÚÒÔÏÂÁ½ÌõÃüÁ
$ git branch dev $ git checkout dev Switched to branch 'dev' |
È»ºó£¬ÓÃgit branchÃüÁî²é¿´µ±Ç°·ÖÖ§£º
git branchÃüÁî»áÁгöËùÓзÖÖ§£¬µ±Ç°·ÖÖ§Ç°Ãæ»á±êÒ»¸ö*ºÅ¡£
¼ÙÈçÎÒÃÇÔÚdevÉϵŤ×÷Íê³ÉÁË£¬¾Í¿ÉÒÔ°ÑdevºÏ²¢µ½masterÉÏ¡£GitÔõôºÏ²¢ÄØ£¿×î¼òµ¥µÄ·½·¨£¬¾ÍÊÇÖ±½Ó°ÑmasterÖ¸ÏòdevµÄµ±Ç°Ìá½»£¬¾ÍÍê³ÉÁ˺ϲ¢£º

ËùÒÔGitºÏ²¢·ÖÖ§Ò²ºÜ¿ì£¡¾Í¸Ä¸ÄÖ¸Õ룬¹¤×÷ÇøÄÚÈÝÒ²²»±ä£¡
ºÏ²¢Íê·ÖÖ§ºó£¬ÉõÖÁ¿ÉÒÔɾ³ýdev·ÖÖ§¡£É¾³ýdev·ÖÖ§¾ÍÊǰÑdevÖ¸Õë¸øÉ¾µô£¬É¾µôºó£¬ÎÒÃǾÍÊ£ÏÂÁËÒ»Ìõmaster·ÖÖ§£º

git mergeÃüÁîÓÃÓںϲ¢Ö¸¶¨·ÖÖ§µ½µ±Ç°·ÖÖ§¡£ºÏ²¢ºó£¬Ôٲ鿴readme.txtµÄÄÚÈÝ£¬¾Í¿ÉÒÔ¿´µ½£¬ºÍdev·ÖÖ§µÄ×îÐÂÌá½»ÊÇÍêȫһÑùµÄ¡£
×¢Òâµ½ÉÏÃæµÄFast-forwardÐÅÏ¢£¬Git¸æËßÎÒÃÇ£¬Õâ´ÎºÏ²¢ÊÇ¡°¿ì½øÄ£Ê½¡±£¬Ò²¾ÍÊÇÖ±½Ó°ÑmasterÖ¸ÏòdevµÄµ±Ç°Ìá½»£¬ËùÒԺϲ¢Ëٶȷdz£¿ì¡£
С½á
Git¹ÄÀø´óÁ¿Ê¹Ó÷ÖÖ§£º
²é¿´·ÖÖ§£ºgit branch
´´½¨·ÖÖ§£ºgit branch <name>
Çл»·ÖÖ§£ºgit checkout <name>
´´½¨+Çл»·ÖÖ§£ºgit checkout -b <name>
ºÏ²¢Ä³·ÖÖ§µ½µ±Ç°·ÖÖ§£ºgit merge <name>
ɾ³ý·ÖÖ§£ºgit branch -d <name>
½â¾ö³åÍ»
GitÓÃ<<<<<<<£¬=======£¬>>>>>>>±ê¼Ç³ö²»Í¬·ÖÖ§µÄÄÚÈÝ
ÐÞ¸ÄmasterºóÌá½»£º
ÏÖÔÚ£¬master·ÖÖ§ºÍfeature1·ÖÖ§±ä³ÉÁËÏÂͼËùʾ£º

×îºó£¬É¾³ýfeature1·ÖÖ§£º
git branch -d feature1
×ܽ᣺
µ±GitÎÞ·¨×Ô¶¯ºÏ²¢·Ö֧ʱ£¬¾Í±ØÐëÊ×ÏȽâ¾ö³åÍ»¡£½â¾ö³åÍ»ºó£¬ÔÙÌá½»£¬ºÏ²¢Íê³É¡£
ÓÃgit log --graphÃüÁî¿ÉÒÔ¿´µ½·ÖÖ§ºÏ²¢Í¼¡£
·ÖÖ§¹ÜÀí²ßÂÔ
ͨ³££¬ºÏ²¢·Ö֧ʱ£¬Èç¹û¿ÉÄÜ£¬Git»áÓÃFast forwardģʽ£¬µ«ÕâÖÖģʽÏ£¬É¾³ý·ÖÖ§ºó£¬»á¶ªµô·ÖÖ§ÐÅÏ¢¡£
·ÖÖ§²ßÂÔ
ÔÚʵ¼Ê¿ª·¢ÖУ¬ÎÒÃÇÓ¦¸Ã°´ÕÕ¼¸¸ö»ù±¾ÔÔò½øÐзÖÖ§¹ÜÀí£º
Ê×ÏÈ£¬master·ÖÖ§Ó¦¸ÃÊǷdz£Îȶ¨µÄ£¬Ò²¾ÍÊǽöÓÃÀ´·¢²¼Ð°汾£¬Æ½Ê±²»ÄÜÔÚÉÏÃæ¸É»î£»
ÄÇÔÚÄĸɻîÄØ£¿¸É»î¶¼ÔÚdev·ÖÖ§ÉÏ£¬Ò²¾ÍÊÇ˵£¬dev·ÖÖ§ÊDz»Îȶ¨µÄ£¬µ½Ä³¸öʱºò£¬±ÈÈç1.0°æ±¾·¢²¼Ê±£¬ÔÙ°Ñdev·ÖÖ§ºÏ²¢µ½masterÉÏ£¬ÔÚmaster·ÖÖ§·¢²¼1.0°æ±¾£»
ÄãºÍÄãµÄС»ï°éÃÇÿ¸öÈ˶¼ÔÚdev·ÖÖ§Éϸɻÿ¸öÈ˶¼ÓÐ×Ô¼ºµÄ·ÖÖ§£¬Ê±²»Ê±µØÍùdev·ÖÖ§ÉϺϲ¢¾Í¿ÉÒÔÁË¡£
ËùÒÔ£¬ÍŶӺÏ×÷µÄ·ÖÖ§¿´ÆðÀ´¾ÍÏñÕâÑù£º

×¼±¸ºÏ²¢dev·ÖÖ§£¬Çë×¢Òâ--no-ff²ÎÊý£¬±íʾ½ûÓÃFast forward£º
$ git merge --no-ff -m "merge with no-ff"
dev
Merge made by the 'recursive' strategy.
readme.txt | 1 +
1 file changed, 1 insertion(+)
ÒòΪ±¾´ÎºÏ²¢Òª´´½¨Ò»¸öеÄcommit£¬ËùÒÔ¼ÓÉÏ-m²ÎÊý£¬°ÑcommitÃèÊöд½øÈ¥¡£
ºÏ²¢ºó£¬ÎÒÃÇÓÃgit log¿´¿´·ÖÖ§ÀúÊ·£º
$ git log --graph --pretty=oneline --abbrev-commit
7825a50 merge with no-ff|\
| * 6224937 add merge|/
59bc1cb conflict fixed...
¿ÉÒÔ¿´µ½£¬²»Ê¹ÓÃFast forwardģʽ£¬mergeºó¾ÍÏñÕâÑù£º

С½á
Git·ÖÖ§Ê®·ÖÇ¿´ó£¬ÔÚÍŶӿª·¢ÖÐÓ¦¸Ã³ä·ÖÓ¦Óá£
ºÏ²¢·Ö֧ʱ£¬¼ÓÉÏ--no-ff²ÎÊý¾Í¿ÉÒÔÓÃÆÕͨģʽºÏ²¢£¬ºÏ²¢ºóµÄÀúÊ·ÓзÖÖ§£¬ÄÜ¿´³öÀ´Ôø¾×ö¹ýºÏ²¢£¬¶øfast
forwardºÏ²¢¾Í¿´²»³öÀ´Ôø¾×ö¹ýºÏ²¢¡£
Bug·ÖÖ§
ÐÞ¸´bugʱ£¬ÎÒÃÇ»áͨ¹ý´´½¨ÐµÄbug·ÖÖ§½øÐÐÐÞ¸´£¬È»ºóºÏ²¢£¬×îºóɾ³ý£»
µ±ÊÖÍ·¹¤×÷ûÓÐÍê³Éʱ£¬ÏȰѹ¤×÷ÏÖ³¡git stashһϣ¬È»ºóÈ¥ÐÞ¸´bug£¬ÐÞ¸´ºó£¬ÔÙgit stash
pop£¬»Øµ½¹¤×÷ÏÖ³¡¡£
Feature·ÖÖ§
Èí¼þ¿ª·¢ÖУ¬×ÜÓÐÎÞÇîÎÞ¾¡µÄÐµĹ¦ÄÜÒª²»¶ÏÌí¼Ó½øÀ´¡£
Ìí¼ÓÒ»¸öй¦ÄÜʱ£¬Äã¿Ï¶¨²»Ï£ÍûÒòΪһЩʵÑéÐÔÖʵĴúÂ룬°ÑÖ÷·ÖÖ§¸ãÂÒÁË£¬ËùÒÔ£¬Ã¿Ìí¼ÓÒ»¸öй¦ÄÜ£¬×îºÃн¨Ò»¸öfeature·ÖÖ§£¬ÔÚÉÏÃæ¿ª·¢£¬Íê³Éºó£¬ºÏ²¢£¬×îºó£¬É¾³ý¸Ãfeature·ÖÖ§¡£
Èç¹ûÒª¶ªÆúÒ»¸öûÓб»ºÏ²¢¹ýµÄ·ÖÖ§£¬¿ÉÒÔͨ¹ýgit branch -D <name>Ç¿ÐÐɾ³ý¡£
¶àÈËÐ×÷
µ±Äã´ÓÔ¶³Ì²Ö¿â¿Ë¡ʱ£¬Êµ¼ÊÉÏGit×Ô¶¯°Ñ±¾µØµÄmaster·ÖÖ§ºÍÔ¶³ÌµÄmaster·ÖÖ§¶ÔÓ¦ÆðÀ´ÁË£¬²¢ÇÒ£¬Ô¶³Ì²Ö¿âµÄĬÈÏÃû³ÆÊÇorigin¡£
Òª²é¿´Ô¶³Ì¿âµÄÐÅÏ¢£¬ÓÃgit remote»òÕߣ¬ÓÃgit remote -vÏÔʾ¸üÏêϸµÄÐÅÏ¢¡£
²¢²»ÊÇÒ»¶¨Òª°Ñ±¾µØ·ÖÖ§ÍùÔ¶³ÌÍÆËÍ£¬ÄÇô£¬ÄÄЩ·ÖÖ§ÐèÒªÍÆËÍ£¬ÄÄЩ²»Ðè񻀯£¿
master·ÖÖ§ÊÇÖ÷·ÖÖ§£¬Òò´ËҪʱ¿ÌÓëÔ¶³Ìͬ²½£»
dev·ÖÖ§ÊÇ¿ª·¢·ÖÖ§£¬ÍŶÓËùÓгÉÔ±¶¼ÐèÒªÔÚÉÏÃæ¹¤×÷£¬ËùÒÔÒ²ÐèÒªÓëÔ¶³Ìͬ²½£»
bug·ÖÖ§Ö»ÓÃÓÚÔÚ±¾µØÐÞ¸´bug£¬¾Íû±ØÒªÍƵ½Ô¶³ÌÁË£¬³ý·ÇÀϰåÒª¿´¿´ÄãÿÖܵ½µ×ÐÞ¸´Á˼¸¸öbug£»
feature·ÖÖ§ÊÇ·ñÍÆµ½Ô¶³Ì£¬È¡¾öÓÚÄãÊÇ·ñºÍÄãµÄС»ï°éºÏ×÷ÔÚÉÏÃæ¿ª·¢¡£
×ÜÖ®£¬¾ÍÊÇÔÚGitÖУ¬·ÖÖ§ÍêÈ«¿ÉÒÔÔÚ±¾µØ×Ô¼º²Ø×ÅÍæ£¬ÊÇ·ñÍÆËÍ£¬ÊÓÄãµÄÐÄÇé¶ø¶¨£¡
¶àÈËÐ×÷µÄ¹¤×÷ģʽͨ³£ÊÇÕâÑù£º
Ê×ÏÈ£¬¿ÉÒÔÊÔͼÓÃgit push origin branch-nameÍÆËÍ×Ô¼ºµÄÐ޸ģ»
Èç¹ûÍÆËÍʧ°Ü£¬ÔòÒòΪԶ³Ì·ÖÖ§±ÈÄãµÄ±¾µØ¸üУ¬ÐèÒªÏÈÓÃgit pullÊÔͼºÏ²¢£»
Èç¹ûºÏ²¢ÓгåÍ»£¬Ôò½â¾ö³åÍ»£¬²¢ÔÚ±¾µØÌá½»£»
ûÓгåÍ»»òÕß½â¾öµô³åÍ»ºó£¬ÔÙÓÃgit push origin branch-nameÍÆË;ÍÄܳɹ¦£¡
Èç¹ûgit pullÌáʾ¡°no tracking information¡±£¬Ôò˵Ã÷±¾µØ·ÖÖ§ºÍÔ¶³Ì·ÖÖ§µÄÁ´½Ó¹ØÏµÃ»Óд´½¨£¬ÓÃÃüÁîgit
branch --set-upstream branch-name origin/branch-name¡£
С½á
²é¿´Ô¶³Ì¿âÐÅÏ¢£¬Ê¹ÓÃgit remote -v£»
±¾µØÐ½¨µÄ·ÖÖ§Èç¹û²»ÍÆË͵½Ô¶³Ì£¬¶ÔÆäËûÈ˾ÍÊDz»¿É¼ûµÄ£»
´Ó±¾µØÍÆËÍ·ÖÖ§£¬Ê¹ÓÃgit push origin branch-name£¬Èç¹ûÍÆËÍʧ°Ü£¬ÏÈÓÃgit
pullץȡԶ³ÌµÄÐÂÌá½»£»
ÔÚ±¾µØ´´½¨ºÍÔ¶³Ì·ÖÖ§¶ÔÓ¦µÄ·ÖÖ§£¬Ê¹ÓÃgit checkout -b branch-name origin/branch-name£¬±¾µØºÍÔ¶³Ì·ÖÖ§µÄÃû³Æ×îºÃÒ»Ö£»
½¨Á¢±¾µØ·ÖÖ§ºÍÔ¶³Ì·ÖÖ§µÄ¹ØÁª£¬Ê¹ÓÃgit branch --set-upstream branch-name
origin/branch-name£»
´ÓÔ¶³Ìץȡ·ÖÖ§£¬Ê¹ÓÃgit pull£¬Èç¹ûÓгåÍ»£¬ÒªÏÈ´¦Àí³åÍ»¡£
Õâ¾ÍÊǶàÈËÐ×÷µÄ¹¤×÷ģʽ£¬Ò»µ©ÊìϤÁË£¬¾Í·Ç³£¼òµ¥¡£
ºöÂÔÌØÊâÎļþ
ÓÐЩʱºò£¬Äã±ØÐë°ÑijЩÎļþ·Åµ½Git¹¤×÷Ŀ¼ÖУ¬µ«ÓÖ²»ÄÜÌá½»ËüÃÇ£¬±ÈÈç±£´æÁËÊý¾Ý¿âÃÜÂëµÄÅäÖÃÎļþÀ²£¬µÈµÈ£¬Ã¿´Îgit
status¶¼»áÏÔʾUntracked files ...£¬ÓÐÇ¿ÆÈÖ¢µÄͯЬÐÄÀï¿Ï¶¨²»Ë¬¡£
ÔÚGit¹¤×÷ÇøµÄ¸ùĿ¼Ï´´½¨Ò»¸öÌØÊâµÄ.gitignoreÎļþ£¬È»ºó°ÑÒªºöÂÔµÄÎļþÃûÌî½øÈ¥£¬Git¾Í»á×Ô¶¯ºöÂÔÕâЩÎļþ¡£
ºöÂÔÎļþµÄÔÔòÊÇ£º
ºöÂÔ²Ù×÷ϵͳ×Ô¶¯Éú³ÉµÄÎļþ£¬±ÈÈçËõÂÔͼµÈ£»
ºöÂÔ±àÒëÉú³ÉµÄÖмäÎļþ¡¢¿ÉÖ´ÐÐÎļþµÈ£¬Ò²¾ÍÊÇÈç¹ûÒ»¸öÎļþÊÇͨ¹ýÁíÒ»¸öÎļþ×Ô¶¯Éú³ÉµÄ£¬ÄÇ×Ô¶¯Éú³ÉµÄÎļþ¾Íû±ØÒª·Å½ø°æ±¾¿â£¬±ÈÈçJava±àÒë²úÉúµÄ.classÎļþ£»
ºöÂÔÄã×Ô¼ºµÄ´øÓÐÃô¸ÐÐÅÏ¢µÄÅäÖÃÎļþ£¬±ÈÈç´æ·Å¿ÚÁîµÄÅäÖÃÎļþ¡£
¼ÓÉÏÄã×Ô¼º¶¨ÒåµÄÎļþ£¬×îÖյõ½Ò»¸öÍêÕûµÄ.gitignoreÎļþ£¬ÄÚÈÝÈçÏ£º
# Windows: Thumbs.db ehthumbs.db Desktop.ini
# Python:
*.py[cod]
*.so
*.egg
*.egg-info
dist
build
# My configurations:
db.ini
deploy_key_rsa |
×îºóÒ»²½¾ÍÊǰÑ.gitignoreÒ²Ìá½»µ½Git£¬¾ÍÍê³ÉÁË£¡
|