Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
Git ͼ½â¡¢³£ÓÃÃüÁî
 
À´Ô´£ºÍøÂç ·¢²¼ÓÚ 2017-4-13
  3032  次浏览      27
 

¸ÅÊö

ÏÈÓÃÒ»·ùͼ£¬´Ó×ÜÌåÉÏÃèÊöÖ÷Òª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
master

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£¬¾ÍÍê³ÉÁË£¡

   
3032 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

ÿÈÕ¹¹½¨½â¾ö·½°¸
ÈçºÎÖÆ¶¨ÓÐЧµÄÅäÖùÜÀíÁ÷³Ì
ÅäÖùÜÀíÖ÷Òª»î¶¯¼°ÊµÏÖ·½·¨
¹¹½¨¹ÜÀíÈëÃÅ
Ïà¹ØÎĵµ

ÅäÖùÜÀíÁ÷³Ì
ÅäÖùÜÀí°×ƤÊé
CM09_CÅäÖùÜÀí±ê×¼
ʹÓÃSVN½øÐа汾¿ØÖÆ
Ïà¹Ø¿Î³Ì

ÅäÖùÜÀíʵ¼ù
ÅäÖùÜÀí·½·¨¡¢¹¤¾ßÓëÓ¦ÓÃ
¶à²ã´Î¼¯³ÉÅäÖùÜÀí
²úÆ··¢²¼¹ÜÀí
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

Èí¼þÅäÖùÜÀíµÄÎÊÌ⡢ĿµÄ
Èí¼þÅäÖùÜÀí¹æ·¶
CQWeb 7.1ÐÔÄܲâÊÔÓëµ÷ÓÅÖ¸ÄÏ
ΪʲôÐèҪʹÓÃClearCase
ClearCaseÓëRTCµÄ¼¯³É
ÀûÓÃClearQuest ½øÐвâÊÔ¹ÜÀí

²úÆ··¢²¼¹ÜÀí
ÅäÖùÜÀí·½·¨¡¢Êµ¼ù¡¢¹¤¾ß
¶à²ã´Î¼¯³ÉÅäÖùÜÀí
ʹÓÃCCÓëCQ½øÐÐÏîĿʵ¼ù
CVSÓëÅäÖùÜÀí
Subversion¹ÜÀíÔ±

ÅäÖùÜÀíʵ¼ù£¨´Ó×éÖ¯¼¶µ½ÏîÄ¿¼¶£©
ͨºÅÔº ÅäÖùÜÀí¹æ·¶ÓëÓ¦ÓÃ
ÅäÖùÜÀíÈÕ¹¹½¨¼°³ÖÐø¼¯³É
µ¤·ð˹ ClearCaseÓëÅäÖùÜÀí
ÖйúÒÆ¶¯ Èí¼þÅäÖùÜÀí
ÖйúÒøÐÐ Èí¼þÅäÖùÜÀí
Ìì½ò»ªÒíÀ¶Ìì¿Æ¼¼ ÅäÖùÜÀíÓëPvcs