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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
git°æ±¾¹ÜÀí²ßÂÔ¼°Ïà¹Ø¼¼ÇÉ
 
×÷ÕߣºBarret Lee À´Ô´£º²©¿ÍÔ° ·¢²¼ÓÚ 2015-1-20
  2647  次浏览      31
 

¹«Ë¾¼¸ºõËùÓеÄÏîÄ¿¶¼ÊÇʹÓà git ²Ö¿âÀ´¹ÜÀí´úÂ룬ÒÔǰ¶Ô git Ö»ÓÐЩ·ôdzµÄÁ˽⣬ÿ´ÎÌá½»´úÂë»òÕßÉÏÏßµÄʱºò×ÜÊÇ»áÌáÐĵõµ¨£¬ÉúųöÏÖһЩδ֪µÄÎÊÌâ¡£¾­¹ýÈý¸öÔµIJȿӺÍÌî¿Ó£¬ git ²Ù×÷ÆÄÏÔ³ÉÊì¡£½öÒÔ´ËÎÄ»ØÒäѧϰ git µÄÀúÊ·¡£

Ò»¡¢»ù±¾²Ù×÷

1. ¿Ë¡´úÂë

1.1 Ìí¼Ó²Ö¿â

×îÖ±½ÓµÄ·½Ê½£º

cd dir  # ÕâÀï²»ÓÃн¨Ò»¸öÏîÄ¿ÃûµÄÎļþ¼Ð£¬dirΪgitÎļþ¼ÐµÄ¸¸Îļþ¼Ð
git clone https://github.com/barretlee/Micro-Share

ÄãÒ²¿ÉÒÔ½øÈëÒ»¸öĿ¼£¬È»ºó³õʼ»¯£¨init£©£º

cd path/to/Project
git init
# Ìí¼ÓÔ¶³ÌĿ¼
git remote add origin https://github.com/barretlee/Micro-Share

ÕâЩ¶¼ÊÇ×î»ù±¾µÄÁË£¬ÉÏÃæµÄ remote add ÊÇÌí¼ÓÒ»¸öÔ¶³ÌĿ¼£¬ÄãÒ²¿ÉÒÔÌí¼Ó¶à¸öÔ¶³ÌĿ¼£¬Ê²Ã´Çé¿öÏ»áÌí¼Ó¶à¸öÄØ£¿±ÈÈ磺ÎÒÏë°Ñ±ðÈ˵ĴúÂë´¦ÀíÖ®ºó·Åµ½×Ô¼ºµÄ git ²Ö¿âÉÏÈ¥,

git remote add origin https://github.com/barretlee/Micro-Share
git remote add mine http://your/path/to/git
# À­È¡Ô¶³Ì´úÂëµ½ init Ö®ºóµÄ master Ö÷¸ÉÉÏ
git fetch origin master
# Ð޸ĴúÂëÖ®ºó£¬Ìá½»µ½×Ô¼ºµÄ²Ö¿â
git commit -am "fist"
git push -u mine master

1.2 Ìí¼ÓÎļþ

ÔÚÌá½»Îļþ֮ǰÊ×ÏÈÒªÌí¼ÓÎļþµ½·ÖÖ§ÖУ¬ºÜ¶àÈËÖ»ÖªµÀ£º

git add .

Èç¹ûÓÐÎļþɾ³ý£¬»á·¢ÏÖÕâЩɾ³ýµÄÎļþ²¢Ã»Óб»¸½¼Ó½øÈ¥£¬Ö×ô°ì£¿

#·½Ê½Ò»
git add --all .
#·½Ê½¶þ
git add -A .

--all ²ÎÊý£¬¹ËÃû˼Ò壬Ìí¼ÓËùÓÐÎļþ£¨change|delete|add£©

-A ²ÎÊý£¬Ìí¼ÓÐ޸ĹýºÍɾ³ý¹ýµÄÎļþ£¨change|delete£©

²»¼Ó ²ÎÊý£¬Ìí¼ÓÐ޸ĹýºÍÌí¼ÓµÄÎļþ£¨change|add£©

1.3 Ìá½»Îļþ

git commit -m "comment"

Èç¹ûûÓÐɾ³ý¹ýÎļþ£¬¿ÉÒԺϲ¢Ìí¼ÓºÍÌá½»ÎļþΪһ²½£º

git commit -am "add and commit"

1.4 Ô¶³ÌÌá½»

Ìá½»µ½Ô¶³Ì²Ö¿âÉÏ£º

# ½« master Ìá½»µ½ origin ÉÏ
git push origin master

ÕâÒ»²½²Ù×÷¿ÉÄÜ»á³öÏֺܶàµÄÎÊÌ⣬±ÈÈ磺

a) originΪһ¸ö¶àÈË¿ª·¢µÄ¿â£¬±ðÈËÔÚÄãÌύ֮ǰÒѾ­Ïò origin ÉÏÌá½»¹ýÒ»´Î£¨»òÕß¶à´Î£©£¬ÄÇô´ËʱÄãµÄ°æ±¾ÊÇÂäºóÓÚÔ¶³Ì·þÎñÆ÷°æ±¾µÄ£¬ÄãÐèÒªÏÈÀ­È¥ÏßÉÏ×îеĴúÂ룺

# À­È¥Ô¶³Ì·ÖÖ§µ½ master
git pull origin master

b) Ö´ÐÐ a) Ö®ºó£¬ÓпÉÄÜÒ²»áÓÐÌáÐÑ£º´æÔÚ³åÍ»£¬ÐèÒªºÏ²¢·ÖÖ§£¬Õâ¸öÔÚºóÃæ»áÌáµ½

c) Èç¹ûÄãºÜ×ÔÐÅ£¬¾õµÃÏßÉϵİ汾ÊÇ´æÔÚÎÊÌ⣬ÄãÕâ¸ö°æ±¾Ä¾ÓÐÎÊÌ⣬Äã¿ÉÒÔÇ¿ÖÆÌá½»ÄãµÄ´úÂë

git push -u origin master -f

ÕâÀïÐèÒªÌØ±ð×¢Ò⣬¼ÓÁË -f ÏßÉÏ֮ǰµÄÐ޸ľͻᱻɾµô£¬Çë½÷É÷ʹÓã¡

¶þ¡¢½ø½×²Ù×÷Ö¸ÄÏ

ÉÏÃæÊÇ×î»ù±¾µÄ¼¸ÌõÃüÁ³õÓà git µÄͯЬһ°ãÒ²Ö»»á½Ó´¥ÕâЩ¶«Î÷£¬ÔÚһЩ¸´ÔӵĶàÈË¿ª·¢ÏîÄ¿ÖУ¬Ð޸ĴúÂë¡¢ºÏ²¢´úÂëÊ®·ÖƵ·±£¬ÉÏÃæµÄÃüÁîÏÔÈ»ÊDz»¹»ÓÃÁË¡£ÔÚ½éÉܽø½×ÃüÁî֮ǰ£¬ÏÈÁ˽âÏ git µÄÈýÖÖ״̬¡£

+-----------+      +-----------+       +-----------+
|           |      |           |       |           |
|  working  | -->  |   index   |  -->  |  commit   |
|           |      |           |       |           |
+-----------+      +-----------+       +-----------+
      ¡ý                  ¡ý                   ¡ý
   µ±Ç°²Ù×÷            git add            git commit

Ä㵱ǰµÄ²Ù×÷״̬Ï£¬ËùÓÐÎļþµÄ״̬¶¼ÔÚ work ״̬£¬µ±ÄãÖ´ÐÐ git add Ö®ºó£¬Îļþ״̬±äΪ index£¬Ò²¾ÍÊÇÔÚ git ÖÐÒѾ­ÓйýÒ»´ÎµÇ¼ÇÁË£¬¶ø git commit Ö®ºó¾Í±»±àÈëÁË·ÖÖ§£¬³ÉΪ commited ״̬ÁË¡£ÐèҪעÒâµÄÊÇ£¬ÕâÈýÖÖ״̬һֱ´æÔÚ£¬Ö»ÊÇ»áÓв»Í¬µÄÎļþÀ´¶ÔÓ¦ÕâЩ״̬¡£

1. ³¡¾°Çл»

Barret ÓÐÒ»ÌìÇôúÂ룬´úÂëÇÃÁËÒ»°ë£¬Boss ¸úËû˵£¬ÏßÉϳöÁ˸ö bug£¬¸Ï½ôµÄ£¬È¥ÐÞ¸´£¡

Õ¦°ì£¿ÉÏÃæÄǶѴúÂ룬ÇÃÁ˰ë¸öÉÏÎç°¡£¬ÖØÐÂн¨Ò»¸öÎļþ¼Ð£¬È»ºó°ÑÏßÉÏ´úÂëÔÙ¿Ë¡һ´ÎÐ޸ģ¿ÕâÖÖ´¦ÀíµÄ³É±¾ÏÔȻ̫¸ßÁË£¡Æäʵ git ΪÎÒÃÇÌṩÁ˺ܺÃÓõÄÃüÁî git stash¡£Ö»ÒªÔÚµ±Ç°Ä¿Â¼Ï²Ù×÷£º

git stash

Õâ¾äÃüÁîÖ´ÐÐÍê±ÏÖ®ºó£¬git ¹ÜÀíÇøÖÐµÄ stash »á¶à³öÒ»Ìõ¼Ç¼£¬ÕâÌõ¼Ç¼±£´æÁËÉÏÒ»´ÎÌá½»µ½Ä¿Ç°£¬ÄãËùÓеÄÐÞ¸Ä:

last commit ... working file now

½Ó×ÅÄã¾Í¿ÉÒÔÐÞ¸ÄÄãµÄ bug ÁË£¬ÐÞ¸ÄÍêÁËÖ®ºó£¬ÔÙʹÓÃ

git stash pop

½«Ö®Ç°±£´æµÄÐ޸썳¡¾°£©»¹Ô­»ØÀ´¡£ÆäÄÚ²¿µÄÔ­ÀíÒ²ÊǺܼòµ¥µÄ£º

+---------------+      +-----------+      +-----------+  
|               |      |           |      |           |       |           |
|  last commit  | -->  |  working  | -->  |   index   |  -->  |  commit   |
|               |      |           |      |           |       |           |
+---------------+  ¡ü   +-----------+      +-----------+   
      ¡ý            |         ¡ý                  ¡ý         |          ¡ý
   ÉÏ´ÎÌá½»         |      µ±Ç°²Ù×÷            git add      |    git commit
                   |                                     s|
                   |                                     t|
                   |       +---------+                   a|
                   |       | Stash 0 |                   s|
                   |       +---------+                   h|
                   +------ | Stash 1 | <------------------+
                           +---------+
                           |  ....   |
                           +---------+
                           | Stash n |
                           +---------+
                                ¡ý                    
                             stash¶ÑÕ»

ÓÐЩͯЬ¿ÉÄÜ¿´²»Ì«¶®ÉÏÃæµÄͼ£¬git ÓÐÒ»¸ö³¡¾°£¨stash£©¶ÑÕ»£¬Õâ¸ö¶ÑÕ»µÄ×÷ÓÃÊÇÓÃÓÚ±£´æÐ޸ĵģ¬ÏÂÃæ¾Ù¸öÀý×Ó£º

# ½øÈëÎļþ¼Ð
$ cd test
# ³õʼ»¯ git
$ it init
# н¨ËĸöÎļþ
$ touch f1 f2 f3 f4

ÉÏÃæ³õʼ»¯Ò»¸ö git £¬È»ºóн¨ÁËËĸöÎļþ

# ÐÞ¸Ä f1
$ echo "1" > f1
# ½«ÐÞ¸Ä push µ½ stash Õ»¶ÑÖÐ
$ git stash

ÉÏÃæÐÞ¸ÄÁËÎļþ f1£¬²¢±£´æµ½³¡¾°Õ»¶ÑÖÐ

# ²é¿´ stash Õ»¶Ñ
$ git stash list
stash@{0}: WIP on master: 7f58be2 3

²é¿´Õ»¶Ñ£¬¿ÉÒÔ¿´µ½ stash@{0}

# ÐÞ¸Ä f2
$ echo "1" > f2
# Ìí¼ÓÐÞ¸Ä
$ git add .
# ½«ÐÞ¸Ä push µ½ stash Õ»¶ÑÖÐ
$ git stash

ÐÞ¸ÄÎļþ f2£¬Ìí¼ÓÖ®ºó±£´æµ½Õ»¶ÑÖ®ÖÐ

# ²é¿´ stash Õ»¶Ñ
$ git stash list
stash@{0}: WIP on master: 7f58be2 3
stash@{1}: WIP on master: 7f58be2 3

Õ»¶ÑÖжàÁËÒ»¸ö stash@{1}£¬Õâ¸öʱºòÎÒÃÇÈ¥ÐÞ¸´ bug£¬¸Ä±äÆäËûλÖõĴúÂ룬ÍêÁËÖ®ºó£º

# pop Õ»¶Ñ£¬»¹Ô­ÐÞ¸Ä
$ git stash pop

ÉÏÃæÎÒÃǽ«Õ»¶Ñ pop ³öÀ´£¬×ñÑ­ºó½øÏȳöµÄ¹æÔò

# ²é¿´Îļþ״̬
git status
$ Changes not staged for commit:
changed: f2
please commit it

ÒÔÉÏ´úÂë¶¼ÊÇÎÒÊÖ¶¯ÇóöÀ´µÄ£¬²»ÊǸ´ÖÆ¿ØÖÆÌ¨µÄ´úÂ룬´ó¸Å¾ÍÊÇÕâ¸öôÒâ˼°É¡£¹ØÓÚ stash µÄ×îºóÒ»¸öÏë˵Ã÷µÄÃüÁîÊÇ£º

git stash clear

Çå¿Õ³¡¾°£¨stash£©¶ÑÕ»¡£

2. ´úÂë diff

2.1 HEAD

ÔÚ½éÉÜÕâ¿é֮ǰ£¬Ò²ÐèÒªÏÈÁ˽⼸¸ö»ù±¾µÄ³£Ê¶£º

HEAD     Ëü±íʾÉÏÒ»´ÎµÄ commit °æ±¾

HEAD~n Ëü±íʾµÚÉÏ n ´ÊµÄ commit °æ±¾£¬ÕâÀïµÄ n ÊÇ´óÓÚµÈÓÚ 1 µÄÕûÊý

Èç¹ûÎÒÃÇÒª±È½ÏÉÏÒ»´ÎºÍÕâÒ»´Î´úÂëÖ®¼äµÄ²îÒ죬¿ÉÒÔ£º

git diff HEAD~1 HEAD

±È½ÏǰµÚÈý´ÎÓëÏÖÔÚ´úÂëµÄ²îÒ죬¿ÉÒÔ£º

git diff HEAD~3 HEAD

»ñȡǰµÚn´ÎµÄ»¹ÓÐÁíÍâÒ»ÖÖ·½Ê½£¬ÈçǰµÚ¶þ´Î£º

HEAD^^

ǰµÚÎå´Î£º

HEAD^^^^^

ÕâÑùдÆðÀ´±È½ÏÀÛ£¬»¹ÊÇÇ°ÃæµÄ·½Ê½±È½Ï˳ÊÖ¡£

2.2 SHA

¹ØÓÚ SHA ±êʶµÄ½éÉÜ£¬ÎÒÕâÀï¾ÍÀÁµÃ´ò×ÖÁË£¬¿ÉÒÔ¿´ÎÒ֮ǰ·ÖÏíµÄÒ»µã¶«Î÷£¬Ê¹ÓÃ

git log

¿ÉÒÔ¿´µ½Ã¿´Î commit µÄ SHA ±êʶ¡£Òª±È½ÏÁ½´ÎÌá½»Ö®¼äµÄ²îÒ죬¿ÉÒÔÖ±½Ó

git diff SHA1 SHA2

ÆäÖÐ SHA1 ºÍ SHA2 ÊÇÁ½´ÎÌá½»£¨commit£©Ê±µÄ±êʶ¡£

2.3 Ó볡¾°µÄ±È½Ï

Õâ¸öÓõıȽÏÉÙ£¬¶Ô±ÈĿǰ´úÂë¸ú×î½üÒ»´Î push µÄ³¡¾°´úÂë²îÒ죺

git diff --cached

´Ó×ÖÃæÉÏÒ²ºÃÀí½â£¬¾ÍÊǸú»º´æµÄÎļþ×ö¶Ô±ÈÂï~

3. °æ±¾»ØÍË

Èç¹ûÉÏÃæµÄ SHA£¬working£¬index£¬commit ¼¸ÖÖ״̬ºÍ±êʶûÓÐŪÃ÷°×£¬ÏàÐÅÕâÀïÒ²ÊÇÊ®·ÖÄÑÀí½âµÄ¡£

°æ±¾»ØÍËʹÓõÄÃüÁîÊÇ£º

git reset

3.1 ÈýÖÖ²Ù×÷

Õâ¸öÃüÁîºóÃæÊÇÒª¼Ó²ÎÊýµÄ£¬·Ö±ðΪ£º

a) filename

git reset HEAD filename  # ´ÓÔÝ´æÇøÒƳýÎļþ

Èç¹û֮ǰÓÐ add filename£¬ÉÏÃæµÄÃüÁî²Ù×÷Ö®ºó£¬filename ½«´¦ÓÚδ±» add µÄ״̬¡£Ò²¾ÍÊÇ´Ó index ת±ä³É working ״̬¡£

b) HEAD

git reset --hard HEAD~n

Ö±½Ó»ØÍ˵½Ç°µÚ n ¸ö°æ±¾¡£

c) SHA

git reset --hard SHA

»Øµ½ SHA ¶ÔÓ¦µÄ commit µÄ°æ±¾¡£

3.2 ÈýÖÖ·½Ê½

ÉÏÃæÎÒÃÇʹÓõÄÊÇ --hard À´ reset ´úÂ룬ÕâÑù·çÏÕÊÇÌØ±ð´óµÄ£¬ÕâÀïÓÐÈý¸ö¿ÉÑ¡²ÎÊý£º

--hard »ØÍ˰汾£¬´úÂëÒ²»ØÍË£¬ºöÂÔËùÓÐÐÞ¸Ä

--soft »ØÍ˰汾£¬´úÂë²»±ä£¬»ØÍËËùÓÐµÄ add ²Ù×÷

--mixed »ØÍ˰汾£¬´úÂë²»±ä£¬±£Áô add ²Ù×÷

4. ·ÖÖ§´¦Àí

4.1 ²é¿´·ÖÖ§

git branch

ÕâÊÇ×î¼òµ¥µÄ²é¿´£¬²é¿´±¾µØ´´½¨ÁËÄÄЩ·ÖÖ§¡£

git branch -va

²é¿´±¾µØ+Ô¶³Ì·ÖÖ§£¬¼°ÆäÏêϸÐÅÏ¢£¨ÉÏ´ÎÌá½»commitÐÅÏ¢£©

4.2 Ìí¼Ó·ÖÖ§

git branch branch_name

Èç¹ûÄ㵱ǰËùÔڵķÖÖ§ÊÇ master£¬´Ë´¦´´½¨µÄ·ÖÖ§»áÖ±½Ó¼Ì³Ð master µÄËùÓÐÐÞ¸ÄÀúÊ·¡£

git branch -b branchnew branchold

-b ÊÇ base µÄÒâ˼£¬Èç¹ûÄãÓÐÁ½¸ö·ÖÖ§ A ºÍ B £¬Ä¿Ç°ÔÚ A ·ÖÖ§ÉÏ£¬ÄãÏÈн¨Ò»¸ö·ÖÖ§¼Ì³Ð B£¬´Ë¿ÌÄãÓÐÁ½¸öÑ¡Ôñ£º

# Ñ¡ÔñÒ»
# ÏÈÇл»µ½ B ·ÖÖ§ÉÏ
git checkout B
git branch C

# Ñ¡Ôñ¶þ
git branch -b C B

4.3 Çл»·ÖÖ§

a) Çл»µ½±¾µØ·ÖÖ§

git checkout branch_name

b) Çл»µ½Ô¶³Ì·ÖÖ§

git checkout remotes/origin/branch_name
git checkout branch_name

ÏêÇéÇ뿴֮ǰ·ÖÏíµÄÕâÆªÎÄÕ£¬gitÇл»µ½Ô¶³Ì·ÖÖ§

4.4 ɾ³ý·ÖÖ§

ÏÔÇл»µ½±ðµÄ·ÖÖ§ÉÏ£¬È»ºó

git branch -d branch_name

Èç¹ûÊÇÔ¶³Ì·ÖÖ§£º

git push origin :branch_name

ÔÚÐèҪɾ³ýµÄ·ÖÖ§Ç°Ãæ¼ÓÒ»¸öðºÅOKÁË£¬push ÉÏÈ¥Ö®ºó£¬·þÎñÆ÷ÉϵķÖÖ§×ÔÈ»¾Í±»É¾³ýÁË¡£

   
2647 ´Îä¯ÀÀ       31
Ïà¹ØÎÄÕÂ

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

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

ÅäÖùÜÀíʵ¼ù
ÅäÖùÜÀí·½·¨¡¢¹¤¾ßÓëÓ¦ÓÃ
¶à²ã´Î¼¯³ÉÅäÖùÜÀí
²úÆ··¢²¼¹ÜÀí
×îл¼Æ»®
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢ 6-12[ÏÃÃÅ]
È˹¤ÖÇÄÜ.»úÆ÷ѧϰTensorFlow 6-22[Ö±²¥]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 6-30[±±¾©]
ǶÈëʽÈí¼þ¼Ü¹¹-¸ß¼¶Êµ¼ù 7-9[±±¾©]
Óû§ÌåÑé¡¢Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À 7-25[Î÷°²]
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 8-23[±±¾©]

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


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


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