±à¼ÍƼö: |
±¾ÎÄÀ´×Ôsegmentfault£¬ÎÄÕ½éÉÜÁË´´½¨ÓëºÏ²¢·ÖÖ§¡¢
·ÖÖ§µÄ²Ù×÷¹ÜÀíÒÔ¼°¶àÈËÐ×÷¿ª·¢µÈÏà¹ØÖªÊ¶¡£ |
|
1. git Ïê½â¼°ÊµÓÃÖ¸ÄÏÖ®Ò» £¨±¾µØ²Ù×÷£©
2. git Ïê½â¼°ÊµÓÃÖ¸ÄÏÖ®¶þ £¨Ô¶³Ì²Ù×÷£©
1.´´½¨ÓëºÏ²¢·ÖÖ§
ÀûÓ÷ÖÖ§¾Í¿ÉÒÔʵÏÖ¶àÈË¿ª·¢µÄΰ´óģʽ£¬´Ó¶øÌá¸ßÉú²úЧÂÊ¡£ÔÚÕû¸ö GIT Ö®ÖУ¬Ö÷·ÖÖ§(master)Ö÷ÒªÊÇ×÷Ϊ³ÌÐò
µÄ·¢²¼Ê¹Óã¬Ò»°ã¶øÑÔºÜÉÙ»áÔÚÖ÷·ÖÖ§ÉϽøÐдúÂëµÄ¿ª·¢£¬¶¼»áÔÚ¸÷×ÔµÄ×Ó·ÖÖ§ÉϽøÐС£
1£©mastr ·ÖÖ§
ĬÈÏÇé¿öÏ£¬mastrÊÇÒ»ÌõÏߣ¬git ÀûÓà master Ö¸Ïò×îеÄÌá½»£¬ÔÙÓà "HEAD"
ÅúÏò "master",¾ÍÄÜÈ·¶¨µ±Ç°·ÖÖ§ÒÔ¼°µ±Ç°·ÖÖ§µÄÌá½»µã¡£

ÒÔÉϲÙ×÷ÊôÓÚÏîÄ¿·¢²¼°æ±¾µÄÖ´ÐÐ˳Ðò£¬ÒòΪ×îÖÕ·¢²¼¾ÍÊÇ master ·ÖÖ§¡£µ«ÊǶÔÓÚÆäËüµÄ¿ª·¢Õߣ¬²»Ó¦¸ÃÓ¦¸ÃÔÚmastr
·ÖÖ§ÉϽøÐС£ËùÒÔÓ¦¸Ã½¨Á¢·ÖÖ§£¬¶ø×Ó·ÖÖ§×îÆðÂ뽨Á¢µÄʱºòÓ¦¸ÃÊǵ±Ç°µÄ master ·ÖÖ§µÄ״̬¡£¶ø·ÖÖ§µÄÒ»µ«´´½¨Ö®ºó£¬
HEAD Ö¸Õë¾Í»á·¢Éú±ä»¯¡£
2£©·ÖÖ§Ìá½»
Èç¹ûÓÐеÄÌá½»£¬Ôò master ·ÖÖ§²»»á¸Ä±ä£¬Ö»ÓÐ brh ·ÖÖ§»á·¢Éú±ä»¯¡£

ÄÇô´Ëʱ master ·ÖÖ§µÄ°æ±¾ºÅ¾ÍÂäºóÓÚ×Ó·ÖÖ§ÁË¡£µ«ÊDz»¹Ü×Ó·ÖÖ§ÔÙÔõô¿ª·¢£¬Ò²²»ÊÇ×îз¢²¼°æ±¾£¬ËùÓеķ¢²¼°æ±¾¶¼±£´æÔÚ
master ·ÖÖ§ÉÏ£¬ÄÇô¾Í±ØÐ뽫·ÖÖ§Óë master µÄ·ÖÖ§½øÐкϲ¢¡£
3£©·ÖÖ§Ìá½»
Èç¹ûÓÐеÄÌá½»£¬¸Õ master ·ÖÖ§²»»á¸Ä±ä£¬Ö»ÓÐ bth ·ÖÖ§»á·¢Éú¸Ä±ä¡£

µ±·ÖÖ§ºÏ²¢Ö®ºó£¬Êµ¼ÊÉϾÍÏ൱ÓÚ master µÄ·ÖÖ§µÄÌá½»µãÐÞ¸ÄΪ×Ó·ÖÖ§µÄÌá½»µã£¬¶øºóÕâ¸öºÏ²¢Ó¦¸ÃÔÚ
master ·ÖÖ§ÉÏÍê³É£¬¶øºó HEAD ÐèÒªÐÞ¸ÄÖ¸Õ룬¶Ï¿ª brh ·ÖÖ§£¬¶øÖ¸ÏòÔ±¾µÄ master
·ÖÖ§¡£
4£©É¾³ý×Ó·ÖÖ§
Èç¹ûÓÐеÄÌá½»£¬¸Õ master ·ÖÖ§²»»á¸Ä±ä£¬Ö»ÓÐ brh ·ÖÖ§»á·¢Éú¸Ä±ä¡£

·Ö֧ɾ³ýµôÖ®ºóËùÓеÄÄÚÈÝÒ²¾Í¶¼È¡ÏûÁË¡£
5£©´´½¨Ò»¸ö·ÖÖ§
6£©µ±·ÖÖ§´´½¨Íê³ÉÖ®ºó¿ÉÒÔͨ¹ýÈçÏÂÃüÁî½øÐв쿴

¿ÉÒÔ·¢ÏÖÏÖÔÚÌáʾµ±Ç°¹¤×÷ÇøÖÐÓÐÁ½¸ö·ÖÖ§:Ò»¸öÊÇ brh ·ÖÖ§£¬ÁíÍâÒ»¸öÊÇ master ·ÖÖ§£¬¶øÏÖÔڵķÖÖ§Ö¸ÏòµÄ
ÊÇ master ·ÖÖ§¡£
7£©Çл»µ½brh·ÖÖ§

µ«ÊǺܶàʱºòÎÒÃÇ´´½¨·ÖÖ§µÄ×îÖÕÄ¿µÄ¾ÍÊÇΪÁËÇл»µ½´Ë·ÖÖ§ÉϽøÐпª·¢£¬ËùÒÔΪÁË·½±ã²Ù×÷£¬ÔÚ git Ö®ÖÐÌṩÁËÒ»
¸ö¸ü¼Ó¼òµ¥µÄ¹¦ÄÜ¡£
´´½¨²¢Çл»·ÖÖ§
Èç¹ûÏëҪɾ³ý×Ó·ÖÖ§£¬ÄÇô²»ÄÜÔÚµ±Ç°·ÖÖ§ÉÏ£¬ËùÒÔÇл»»ØÁË master ·ÖÖ§
ɾ³ý×Ó·ÖÖ§
½¨Á¢·ÖÖ§µÄͬʱ¿ÉÒÔ×Ô¶¯µÄÇл»µ½×Ó·ÖÖ§
8£©Çл»µ½brh·ÖÖ§
ÏÖÔÚÒѾ³É¹¦µÄÔÚbrh·ÖÖ§ÉÏÁË£¬ÄÇôÏÂÃæ½øÐдúÂëµÄÐÞ¸Ä;
ÐÞ¸Ä hello.js
btn.onclick
= function() {
console.log('git ·ÖÖ§¹ÜÀíÁ·Ï°£¡');
} |
Õâ¸öʱºòµÄ Hello.java ÎļþÊÇÊôÓÚ×Ó·ÖÖ§Éϵ쬶øÏÖÔÚÒ²ÔÚ×Ó·ÖÖ§ÉÏ£¬ÄÇôÏÂÃæ²éѯһÏÂ×Ó·ÖÖ§µÄ״̬¡£

´Ëʱ¸üеÄÊÇ×Ó·ÖÖ§µÄÄÚÈÝ£¬µ«ÊÇÖ÷·ÖÖ§ÉϵÄÊý¾ÝÄØ?
9£©ÔÚ×Ó·ÖÖ§ÉϽ«Ð޸ĽøÐÐÌá½»
git commit -a
-m "modified hello.js file" |
µ±×Ó·ÖÖ§µÄÊý¾ÝÌá½»Ö®ºóʵ¼ÊÉϲ¢²»»áÈ¥ÐÞ¸Ä master ·ÖÖ§µÄÄÚÈÝ¡£Õâ¾ÍÖ¤Ã÷ÁË£¬Á½¸ö·ÖÖ§ÉϵÄÄÚÈÝÊDZ˴˶ÀÁ¢µÄ¡£
10£©Ã´¼ÈÈ»·ÖÖ§¶¼ÒѾ´æÔÚÁË£¬ÄÇôÏÖÔÚΪÁ˸ü¼ÓÇå³þ£¬½«masterºÍbrhÁ½¸ö·ÖÖ§¶¼Ìá½»µ½Ô¶³Ì·þÎñÆ÷ÉÏ(GITHUB)
git remote set-url
origin https://github.com/yootk/mldn.git
git push origin master
git push origin brh |
11£©×îÖÕ·¢²¼µÄ°æ±¾Ò»¶¨ÊÇÔÚmaster·ÖÖ§ÉÏ£¬ËùÒÔÏÂÃæÐèÒª½«brh·ÖÖ§Óëmaster·ÖÖ§½øÐкϲ¢(ÔÚÖ÷·ÖÖ§ÉÏ)

ÔÚ֮ǰ½²½âµÄʱºò˵¹ýʵ¼ÊÉÏÊÇÐÞ¸ÄÁË master Ö¸ÕëΪ brh ·ÖÖ§µÄÖ¸ÕëÐÅÏ¢¡£ËùÒÔ´ËʱµÄºÏ²¢·½Ê½Îª¡°Fast-forward¡±,±íʾÊÇ¿ìËٺϲ¢·½Ê½£¬¿ìËٵĺϲ¢·½Ê½²¢²»»á²úÉúÈκεÄ
commit id¡£ ËüÖ»ÊÇÀûÓÃÁ˺ϲ¢×Ó·ÖÖ§µÄ commit id ¼ÌÐø²Ù×÷¡£
12£©´ËʱµÄbrh·Ö֧ûÓÐÈκεÄÓô¦ÁË£¬ÄÇô¾Í¿ÉÒÔÖ´ÐÐɾ³ý²Ù×÷
13£©Ìá½» master ·ÖÖ§
ÏÖÔÚÔÚ±¾µØÉÏÒѾûÓÐÁË×Ó·ÖÖ§£¬µ«ÊÇÔÚÔ¶³Ì·þÎñÆ÷ÉÏÒÀÈ»»á´æÔÚ×Ó·ÖÖ§¡£ÄÇôÏÂÃæÒªÉ¾³ýÔ¶³Ì·ÖÖ§¡£
14£©É¾³ýÔ¶³Ì·ÖÖ§
git push origin
--delete brh |
ÄÇô´ËʱԶ³Ì·ÖÖ§¾ÍÒѾ±»³É¹¦µÄɾ³ýµôÁË¡£
2.·ÖÖ§µÄ²Ù×÷¹ÜÀí
ÉÏÃæÑÝʾÁË·ÖÖ§µÄ¸÷¸ö²Ù×÷£¬°üÀ¨Ê¹Ó÷ÖÖ§¡¢ÒÔ¼°ºÏ²¢·ÖÖ§£¬Í¬Ê±Ò²Çå³þÁ˶ÔÓÚ·ÖÖ§ÓÐÁ½ÖÖ·½Ê½Ò»ÖÖ ÊDZ¾µØ·ÖÖ§£¬ÁíÍâÒ»ÖÖÊÇÔ¶³Ì·ÖÖ§£¬µ«ÊǶÔÓÚ·ÖÖ§ÔÚ
GIT ʹÓÃÖ®ÖÐÒÀÈ»»áÓÐһЩССµÄÎÊÌ⣬ËùÒÔÏÂÃæ½øÐм¯ÖÐʽµÄ˵Ã÷£º
1£©ÎªÁË·½±ã»¹Êǽ¨Á¢Ò»¸öеķÖÖ§ ¡ª¡ª brh
2£©ÔÚ´Ë·ÖÖ§ÉϽ¨Á¢Ò»Ð©Îļþ
public class
HelloWorld() {
console.log('Hello World');
} |
git add .
git commit -a -m "Add Emp.java File"
|
ÒÔÉϵĴúÂëÊÇÔÚ×Ó·ÖÖ§(brh)ÉϽ¨Á¢µÄ¡£
3£©´Ëʱ²¢Ã»ÓнøÐзÖÖ§Êý¾ÝµÄÌá½»£¬µ«ÊÇÓÐÈ˾õµÃÕâ¸öbrh·ÖÖ§Ãû³Æ²»ºÃ£¬Ó¦¸ÃʹÓÃ×Ô¼ºµÄÐÕÃû¼òдÍê³É¡°wzy¡±
ÏÖÔÚÏ൱ÓÚ·ÖÖ§Ãû³Æ½øÐÐÁËÖØÐµÄÃüÃû¡£
4£©½«·ÖÖ§ÍÆË͵½Ô¶³Ì·þÎñÆ÷¶Ë
5£©ÔÚ±¾µØ²ì¿´Ô¶³ÌµÄ·ÖÖ§
// ²ì¿´È«²¿µÄ·ÖÖ§£¬°üÀ¨Ô¶³ÌºÍ±¾µØµÄ·ÖÖ§
git branch -a
// Ö»²ì¿´Ô¶³ÌµÄ·ÖÖ§
git branch -r
// Ö»²ì¿´±¾µØ·ÖÖ§
git branch -l
|
6£©´Ëʱ¡°wzt¡±·ÖÖ§ÉÏÒѾ×ö³öÁËÐ޸쬵«ÊDz¢Ã»ÓÐÓëmaster·ÖÖ§½øÐкϲ¢£¬ÒòΪÏÖÔÚËù¿ª·¢µÄ¹¦ÄÜ¿ª·¢µ½Ò»°ë·¢ÏÖ²»ÔÙÐèÒªÁË£¬ËùÒÔ¾ÍÒª·Ï³ýµôËù×÷³öµÄÐ޸ġ£ÓÚÊÇ·¢³öÁËɾ³ý
wzy ·ÖÖ§µÄÃüÁî

´Ëʱֱ½ÓÌáʾ£¬·ÖÖ§²¢²»Äܹ»±»É¾³ýµô£¬ÒòΪÕâ¸ö·ÖÖ§Ëù×ö³öµÄÐ޸Ļ¹Ã»ÓнøÐкϲ¢¡£Èç¹ûÒªÏëÇ¿ÖÆÉ¾³ý´Ë·ÖÖ§£¬
Ôò¿ÉÒÔʹÓá°-D¡±µÄ²ÎÊýÍê³É¡£

¿ÉÊÇÏÖÔÚÔÚÔ¶³Ì·þÎñÆ÷ÉÏÒÀÈ»»á´æÔÚ´Ë·ÖÖ§£¬ÄÇô¾Í±ØÐëÒ²Ò»Æðɾ³ýµô£¬µ«ÊǶÔÓÚɾ³ý²Ù×÷£¬³ýÁË֮ǰʹÓùýµÄ·½
ʽ֮Í⣬Ҳ¿ÉÒÔÍÆËÍÒ»¸ö¿ÕµÄ·ÖÖ§£¬ÕâÑùÒ²±íʾɾ³ý¡£
ɾ³ý·½Ê½Ò»
git push origin
--delete wzy |
ɾ³ý·½Ê½¶þ
3.³åÍ»½â¾ö
·ÖÖ§¿ÉÒԺܺõÄʵÏÖ¶àÈË¿ª·¢µÄ»¥²Ù×÷£¬µ«ÊÇÓпÉÄܳöÏÖÕâÑùÖÖÇé¿ö:
ÏÖÔÚ½¨Á¢ÁËÒ»¸öеķÖÖ§ brh£¬²¢ÇÒÓÐһλ¿ª·¢ÕßÔÚ´Ë·ÖÖ§ÉÏÐÞ¸ÄÁË hello.js Îļþ¡£
µ«ÊÇÕâ¸ö¿ª·¢ÕßÓÉÓÚ²»Ð¡ÐĵÄʧÎó£¬ÓÖ½«·ÖÖ§Çл»»ØÁË master ·ÖÖ§ÉÏ£¬²¢ÇÒÔÚ master ·ÖÖ§ÉÏÒ²¶Ô
hello.jsÎļþ½øÐÐÐ޸ġ£
µÈÓÚÏÖÔÚÓÐÁ½¸ö·ÖÖ§¶Ôͬһ¸öÎļþ½øÐÐÁËÐ޸ģ¬ÄÇôÔÚ½øÐÐÌá½»µÄʱºòÒ»¶¨»á³öÏÖÒ»¸ö³åÍ»¡£ÒòΪϵͳ²»ÖªµÀµ½µ×
Ìá½»ÄÇÒ»¸ö·ÖÖ§µÄÎļþ¡£
master ºÍ brh Á½¸ö·ÖÖ§É϶¼Óи÷×ÔµÄÐÅÏ¢Ìá½»£¬ÄÇô´Ëʱ¾ÍÐγÉÁ˳åÍ»£º

ÄÇôºÜÃ÷ÏÔ£¬´ËʱÓÐÁ½¸öÌá½»µã£¬ÄÇô»á³öÏÖÔõÑùµÄ³åÍ»¾¯¸æÄØ?ΪÁ˸üºÃµÄ˵Ã÷ÎÊÌ⣬ÏÂÃæÍ¨¹ý´úÂë½øÐÐÑéÖ¤:
1£©½¨Á¢²¢Çл»µ½ brh ·ÖÖ§ÉÏ
2£©ÔÚ´Ë·ÖÖ§ÉÏÐÞ¸Ähello.jsÎļþ
btn.onclick
= function() {
console.log('git ·ÖÖ§¹ÜÀíÁ·Ï°£¡');
console.log('git ·ÖÖ§³åÍ»Á·Ï°£¡')
} |
3£©ÔÚbrh·ÖÖ§ÉÏÌá½»´ËÎļþ
git commit -a
-m "add static attribute" |
4£©Çл»»Ø master ·ÖÖ§
5£©ÔÚ master ·ÖÖ§ÉÏÒ²ÐÞ¸Ä Hello.js Îļþ
btn.onclick
= function() {
console.log('git ·ÖÖ§¹ÜÀíÁ·Ï°£¡');
console.log('git Mast ·ÖÖ§Ð޸IJâÊÔ£¡ ')
} |
6£©ÔÚmaster·ÖÖ§ÉϽøÐÐÐ޸ĵÄÌá½»
git commit -a
-m "add master change file" |
ÏÖÔÚÔÚÁ½¸ö·ÖÖ§É϶¼´æÔÚÁË´úÂëµÄÐ޸쬶øÇÒºÜÃ÷ÏÔ£¬Ð޸ĵÄÊÇͬһ¸öÎļþ£¬ÄÇô×ÔÈ»½øÐзÖÖ§ºÏ²¢µÄʱºòÊÇÎÞ·¨
ºÏ²¢µÄ¡£
7£©ºÏ²¢·ÖÖ§(´ËʱÒѾ´æÔÚÓÚmaster·ÖÖ§ÉÏ)

´Ëʱ»áÖ±½ÓÌáʾ³öÏÖÁ˳åÍ»¡£
8£©²ì¿´³åÍ»µÄÄÚÈÝ

Ö±½ÓÌáʾÓû§£¬Á½´ÎÐÞ¸ÄÁË Hello.java Îļþ¡£
9£© ²ì¿´ Hello.js Îļþ
btn.onclick
= function() {
console.log('git ·ÖÖ§¹ÜÀíÁ·Ï°£¡');
<<<<<<< HEAD
console.log('git Mast ·ÖÖ§Ð޸IJâÊÔ£¡ ')
=======
console.log('git ·ÖÖ§³åÍ»Á·Ï°£¡')
>>>>>>> brh
} |
ËüÏÖÔڰѳåÍ»µÄ´úÂë½øÐÐÁ˱ê¼Ç£¬ÄÇôÏÖÔھͱØÐëÈËΪÊÖ¹¤Ð޸ķ¢Éú³åÍ»µÄÎļþ¡£
10£©ÊÖ¹¤ÐÞ¸Ä Hello.js Îļþ
btn.onclick
= function() {
console.log('git ·ÖÖ§¹ÜÀíÁ·Ï°£¡');
console.log('git Mast ·ÖÖ§Ð޸IJâÊÔ£¡ ')
console.log('git ·ÖÖ§³åÍ»Á·Ï°£¡')
} |
ÏÖÔÚÊÇÏ£ÍûÕ⼸¸öÊä³öµÄÄÚÈݶ¼Í¬Ê±½øÐб£Áô¡£
11£©´ËʱÒѾÊÖ¹¤½â¾öÁ˳åÍ»£¬¶øºó¼ÌÐø½øÐÐÌá½»
git commit -a
-m "conflict print" |
ÄÇôÏÖÔڵijåÍ»ÎÊÌâ¾Í½â¾öÁË¡£
12£©Ïò·þÎñÆ÷¶ËÌá½»ÐÅÏ¢
ÄÇôÔÚʵ¼ÊµÄ¿ª·¢Ö®ÖУ¬Ò»¶¨»á´æÔÚÓÐÐí¶àµÄ·ÖÖ§ºÏ²¢µÄÇé¿ö£¬ÄÇôÎÒÔõô֪µÀ·ÖÖ§ºÏ²¢µÄÀúÊ·ÄØ?
13£© ²ì¿´ºÏ²¢µÄÇé¿ö
git log --graph
--pretty=oneline |

¡°-graph¡±Ö¸µÄÊDzÉÓûæÍ¼µÄ·½Ê½½øÐÐÏÖʵ¡£
14£© ɾ³ýµô brh ·ÖÖ§
ÄÇô´ËʱµÄ´úÂë¾Í¿ÉÒԻعéÕý³£µÄ¿ª·¢Ä£Ê½¡£
4.·ÖÖ§¹ÜÀí²ßÂÔ
ÔÚ֮ǰ½øÐзÖÖ§ºÏ²¢µÄʱºòʹÓõÄÈ«²¿¶¼ÊÇ¡°Fast forward¡±·½Ê½Íê³ÉµÄ£¬¶ø´ËÖÖ·½Ê½Ö»ÊǸıäÁËmasterÖ¸Õ룬¿ÉÊÇ
ÔÚ·ÖÖ§µÄʱºòÒ²¿ÉÒÔ²»Ê¹ÓÃÕâÖÖ¿ìºÏ²¢£¬¼´:Ôö¼ÓÉÏÒ»¸ö¡°--no-ff¡±²ÎÊý£¬ÕâÑù¾Í±íʾÔںϲ¢Ö®ºó»á×Ô¶¯µÄÔÙÉú³ÉÒ»¸öÐÂ
µÄ commit id£¬´Ó¶ø±£Ö¤ºÏ²¢Êý¾ÝµÄÍêÕûÐÔ¡£
"-no-ff": ºÏ²¢ºó¶¯´´½¨Ò»¸öÐ嵀 commit

1£©´´½¨Ò»¸öеķÖÖ§
2£©½¨Á¢Ò»¸öÐ嵀 empty.js Îļþ
public class
Empty() {
console.log('empty file');
} |
3£© Ìá½»ÐÞ¸Ä
git add.
git commit -m "add empty.js file" |
4£© Çл»»Ømaster·ÖÖ§
5£© ʹÓ÷ǿìËٺϲ¢µÄ·½Ê½½øÐдúÂëºÏ²¢
git merge --no-ff
-m "no ff commit" brh |
¡°--no-ff¡±·½Ê½»á´øÓÐÒ»¸öеÄÌá½»£¬ËùÒÔÐèҪΪÌá½»ÉèÖÃÒ»¸öÌá½»µÄ×¢ÊÍ¡£
6£© ²ì¿´Ò»ÏÂÌá½»µÄÈÕÖ¾ÐÅÏ¢
git log --graph
--pretty=oneline --abbrev-commit |

·ÖÖ§²ßÂÔ
master ·ÖÖ§Ó¦¸ÃÊǷdz£Îȶ¨µÄ£¬Ò²¾ÍÊǽöÓÃÀ´·¢²¼Ðµİ汾£¬²»ÒªÔÚ´Ë·ÖÖ§ÉÏ¿ª·¢£»
ÔÚ¸÷¸ö×Ó·ÖÖ§ÉϽøÐпª·¢¹¤×÷£»
ÍŶÓÖеÄÿ¸ö³ÉÔ±¶¼ÔÚ¸÷¸ö·ÖÖ§ÉϹ¤×÷£» 
5.·ÖÖ§ÔÝ´æ
Æ©Èç˵ͬÔÚÄãÕýÔÚÒ»¸ö·ÖÖ§ÉϽøÐдúÂëµÄ¿ª·¢£¬µ«ÊÇͻȻÄãµÄÁìµ¼¸øÁËÄãÒ»¸öеÄÈÎÎñ£¬²¢ÇÒ¸æËßÄãÔÚ°ë¸öСʱÄÚ
Íê³É£¬ÄÇôÔõô°ì?
ÄѵÀÄÇ¿ª·¢Ò»°ëµÄ·ÖÖ§ÒªÌá½»Âð?²»¿ÉÄܵģ¬ÒòΪ¶ÔÓÚ°æ±¾¿ØÖƵĻù±¾µÄµÀµÂ·½Ê½:Äã²»ÄܰÑÓÐÎÊÌâµÄ´úÂëÌá½»ÉÏ
È¥£¬ÄãËùÌá½»µÄ´úÂëÒ»¶¨¶¼ÊÇÕýÈ·µÄ´úÂ룬ÄÇôΪÁËÕâÑùµÄÎÊÌ⣬ÔÚ GIT ÖÐÌṩÁËÒ»¸ö·ÖÖ§ÔÝ´æµÄ»úÖÆ£¬¿ÉÒÔ½«¿ª·¢Ò»°ë
µÄ·ÖÖ§½øÐб£´æ£¬¶øºóÔÚÊʵ±µÄʱºò½øÐдúÂëµÄ»Ö¸´¡£
ÄÇôÏÂÃæÊ×ÏÈ´´½¨Ò»¸ö»ù±¾µÄ¿ª·¢³¡¾°¡£
1£©´´½¨²¢Çл»µ½Ò»¸öеķÖÖ§
2£©ÏÂÃæÔÚ·ÖÖ§Éϱàдempty.js ÀàµÄÎļþ
public class
Empty() {
console.log('empty file');
console.log('ÎÒÕýÔÚ¿ª·¢Ò»°ëÖС£¡£¡£¡£¡£¡£')
} |
3£©½«´ËÎļþ±£´æÔÚÔÝ´æÇøÖ®ÖÐ
Õâ¸öʱºòÓÉÓÚ´úÂ뻹ûÓпª·¢Íê³É£¬ËùÒÔ²»Äܹ»½øÐдúÂëµÄÌá½»¡£µ«ÊÇÄãµÄÀÏ°å¸øÁËÄãÒ»¸öеÄÈÎÎñ£¬ÄÇôÄã¾Í²»µÃ²»È¥Í£Ö¹µ±Ç°µÄ¿ª·¢ÈÎÎñ£¬ËùÒÔ¾ÍÐèÒª½«µ±Ç°µÄ¿ª·¢½ø¶È½øÐС°Ôݴ桱£¬µÈÈÕºóÓÐʱ¼äÁ˼ÌÐø½øÐлָ´¿ª·¢¡£
4£©½«¹¤×÷ÔÝ´æ

5£©²ì¿´Ò»Ïµ±Ç°µÄ¹¤×÷ÇøÖеÄÄÚÈÝ

´Ë´¦»áÖ±½Ó¸æËßÓû§µ±Ç°µÄ¹¤×÷ÇøÖ®ÖÐûÓÐÈκεÄÐ޸ġ£
6£©²ì¿´Ò»Ïµ±Ç°µÄ¹¤×÷ÇøÖеÄÄÚÈÝ
¶øºóÏÖÔÚ¼ÙÉèÒªÐ޸ĵĴúÂ뻹´¦ÓÚmaster·ÖÖ§ÉÏ£¬ËùÒÔÏÂÃæÇл»µ½master·ÖÖ§¡£
ÄÇôÏÖÔÚ¼ÙÉè˵´´½¨Ò»¸öеķÖÖ§£¬ÓÃÓÚÍê³ÉÀϰåµÄÐèÇ󣬼ÙÉè·ÖÖ§µÄÃû³ÆÎª¡°dev¡±(Ò²ÓпÉÄÜÊÇÒ»¸ö bug
µ÷ÊÔ)¡£
7£©´´½¨²¢Çл»·ÖÖ§
8£© ÔÚеķÖÖ§ÖÐÐÞ¸ÄHello.jsÎļþ
btn.onclick
= function() {
console.log('git ·ÖÖ§¹ÜÀíÁ·Ï°£¡');
console.log('git Mast ·ÖÖ§Ð޸IJâÊÔ£¡ ')
console.log('git ·ÖÖ§³åÍ»Á·Ï°£¡')
console.log('ÁÙʱÈÎÎñ dev ÉϵÄÐÞ¸Ä')
} |
9£© Ìá½»Ð޸ĵIJÙ×÷
git commit -a
-m "dev change" |
10£© Ìá½»Ð޸ĵIJÙ×÷
ºÏ²¢ deve ·ÖÖ§£¬Ê¹Óà no fast forward
git merge --no-ff-m
"merge dev branch" dev |
11£© ÄÇôÏÖÔÚÍ»·¢µÄÎÊÌâÒѾ±»½â¾öÁË£¬±»½â¾öÖ®ºó¶ÔÓÚ dev µÄ·ÖÖ§½«Ã»ÓÐÈκεĴæÔÚÒâÒ壬¿ÉÒÔÖ±½Óɾ³ý;
12£© ÄÇôÐèÒª»Ø¹éµ½ÒÑÓеŤ×÷״̬£¬µ«ÊÇÓпÉÄÜ»á´æÔÚÓÐÐí¶àµÄÔÝ´æµÄ״̬£¬¿ÉÒÔÖ±½ÓʹÓÃÈçÏÂÃüÁî½øÐÐÁгö¡£

13£©´ÓÔÝ´æÇøÖ®ÖнøÐлָ´
ÔÝ´æÇø»Ö¸´Ö®ºóÄÇôËùÔÝÍ£µÄ²Ù×÷½«Ã»ÓдæÔÚµÄÒâÒ壬µ«ÊÇÒ²ÓÐÈË»áÈÏΪËüÓÐÒâÒ壬ËùÒÔ¶ÔÓÚ»Ö¸´ÓÐÁ½ÖÖÐÎʽ:
ÐÎʽһ:ÏȻָ´£¬¶øºóÔÙÊÖ¹¤É¾³ýÔÝ´æ
git stash apply
git stash drop |
ÐÎʽ¶þ:»Ö¸´µÄͬʱҲ½« stash ÄÚÈÝɾ³ý

ÄÇôÏÂÃæµÄÈÎÎñ¾Í¿ÉÒÔÏñ֮ǰÄÇÑù½øÐдúÂëµÄÌá½»£¬¶øºóɾ³ýµô brh ·ÖÖ§:
git commit -a
-m "change empty.js"
git branch -d brh |
ʹÓÃÔÝ´æ²ßÂÔ¿ÉÒԺܷ½±ãµÄ½â¾ö´úÂëͻȻÔÝÍ£Ð޸ĵIJÙ×÷£¬ÊǷdz£·½±ã¡£
6.²¹¶¡: patch
²¹¶¡²¢²»ÊÇÕë¶ÔÓÚËùÓдúÂëµÄÐ޸ģ¬Ö»ÊÇÕë¶ÔÓÚ¾Ö²¿µÄÐ޸ġ£ÔںܶàµÄ´úÂëά»¤Ö®ÖУ¬Èç¹û°´ÕÕ×îÔç¿Ë¡µÄ·½Ê½½«
´úÂëÕûÌå¿Ë¡ÏÂÀ´Êµ¼ÊÉÏËù»¨·ÑµÄ×ÊÔ´ÊǷdz£ÅÓ´óµÄ£¬µ«ÊÇÐ޸ĵÄʱºò¿ÉÄÜÖ»Ð޸ĺÜСµÄÒ»²¿·Ö´úÂ룬ËùÒÔÔÚÕâÖÖÇé¿öÏÂ
¾ÍÏ£Íû¿ÉÒÔ½«Ò»Ð©´úÂëµÄ²¹¶¡ÐÅÏ¢·¢Ë͸ø¿ª·¢Õß¡£¶ø·¢¸ø¿ª·¢ÕßÖ®ºóËûÐèÒªÖªµÀÄÇЩ´úÂë±»ÐÞ¸ÄÁË£¬ÕâÑùµÄ»°¾Í¿ÉÒÔʹÓÃ
Ò»¸ö¼«µÍµÄ¿ªÏúʵÏÖ´úÂëµÄÐ޸IJÙ×÷£¬¶øÔÚ GIT Ö®ÖÐÒ²ÌṩÁËÁ½ÖÖ¼òµ¥µÄ²¹¶¡·½°¸:
ʹÓà git diff Éú³É±ê×¼µÄ patch
ʹÓà git format-patch Éù³Æ git רÓÃµÄ patch
1£© ÀûÓà git diff Éú³É±ê×¼µÄ patch
µ±Ç°µÄempty.jsÎļþ
public class
Empty() {
console.log('empty file');
console.log('ÎÒÕýÔÚ¿ª·¢Ò»°ëÖС£¡£¡£¡£¡£¡£')
} |
2£© ½¨Á¢Ò»¸öеķÖÖ§ ¡ª¡ª cbrh
3£© ÐÞ¸Ä empty.jsÎļþ
public class
Empty() {
console.log('empty file');
console.log('ÎÒÕýÔÚ¿ª·¢Ò»°ëÖС£¡£¡£¡£¡£¡£')
console.log('²¹¶¡ÐÞ¸Ä1');
console.log('²¹¶¡ÐÞ¸Ä2');
} |
4£© ¶øºó²ì¿´Ç°ºó´úÂëµÄ²»Í¬

´Ëʱ¿ÉÒÔ·¢ÏÖ Emp.java ÎļþÐÞ¸ÄǰºóµÄ¶Ô±ÈÇé¿ö¡£
5£© ÔÚcbrhÉϽøÐдúÂëµÄÌá½»
git commit -a
-m "add 2 line empty.js " |
´Ëʱ²¢Ã»ÓкÍÖ÷·ÖÖ§½øÐÐÌá½»£¬µ«ÊÇ´úÂëÒѾ¸Ä±äÁË£¬ÐèÒªµÄÊǽ«´úÂëµÄ±ä»¯Ìá½»¸ø¿ª·¢Õß¡£
6£© Éú³É²¹¶¡Îļþ ¡ª¡ª mypatch
git diff master
> mypatch |
7£©Çл»»Ømaster·ÖÖ§
´Ëʱ»á×Ô¶¯ÔÚÏîĿĿ¼ÖÐÉú³ÉÒ»¸ö mypat µÄ²¹¶¡ÎļþÐÅÏ¢¡£Õâ¸öÎļþÊÇ¿ÉÒÔÓÉ git ¶Á¶®µÄÐÅÏ¢Îļþ£¬ÄÇôÍê³ÉÖ®ºóÏÖÔÚÐèҪģÄâÁíÍâÒ»¸ö¿ª·¢Õߣ¬ÁíÍâÒ»¸ö¿ª·¢Õß¼ÙÉèÊÇרÃŽøÐв¹¶¡ºÏ²¢µÄ¿ª·¢Õß¡£
8£©´´½¨²¢Çл»Ò»¸öеķÖÖ§
9£©Ó¦Óò¹¶¡ÐÅÏ¢
´Ëʱ²¹¶¡¿ÉÒԳɹ¦µÄʹÓÃÁË¡£
10£©Ìá½»²¹¶¡µÄ²Ù×÷
git commit -a
-m "patch apply" |
11£©Çл»»Ø master ·ÖÖ§Ö®ÖнøÐзÖÖ§ºÏ²¢
git checkout
master
git merge --no-ff -m "Merge Patch" patchbrh |
ÕâÑùÈç¹ûÖ»Êǽ«²¹¶¡Êý¾ÝµÄÎļþ·¢Ë͸ø¿ª·¢Õߣ¬ÄÇô¾ÍûÓбØÒª½øÐдóÁ¿´úÂëµÄ´«Ê䣬²¢ÇÒÔÚ´´½¨²¹¶¡µÄʱºòÒ²¿ÉÒÔÕë¶ÔÓÚ¶à¸öÎļþ½øÐв¹¶¡µÄ´´½¨¡£
7. ÀûÓà git format-patch Éú³É GIT רÓò¹¶¡
1£©´´½¨²¢Çл»µ½cbrh·ÖÖ§
git branch -D
cbrh
git branch -D patchbrh
git checkout -b cbrh |
2£©´´½¨²¢Çл»µ½cbrh·ÖÖ§
public class
Empty() {
console.log('empty file');
console.log('git format-patch ²âÊÔ')
} |
3£©´´½¨²¢Çл»µ½cbrh·ÖÖ§
git commit -a
-m "add formatch test" |
4£©ÏÂÃæÐèÒªÓëÔʼ´úÂë×öÒ»¸ö±È½Ï£¬¶øÇұȽϺó»á×Ô¶¯µÄÉú³É²¹¶¡Îļþ
ÏÖÔÚ±íʾҪÓë master ·ÖÖ§½øÐбȽÏ(¶ø-M ²ÎÊý¾ÍÊÇÖ¸¶¨·ÖÖ§)¡£

´ËʱÒѾÉú³ÉÁËÒ»¸ö²¹¶¡Îļþ£¬ÒòΪֻÐÞ¸ÄÁËÒ»´ÎµÄÄÚÈÝ¡£Õâ¸ö²¹¶¡ÎļþÑϸñÀ´½«¾ÍÊÇÒ»¸ö email Êý¾Ý£¬ÐèÒª½«´ËÊý¾Ý·¢Ë͸ø¿ª·¢Õߣ¬¶øºó¿ª·¢Õß¿ÉÒÔ½øÐв¹¶¡µÄÓ¦Óá£
5£©´´½¨²¢Çл»µ½patchbrh·ÖÖ§ÉÏ
git checkout
master
git checkout -b patchbrh |
6£© Ó¦Óò¹¶¡µÄÐÅÏ¢£¬ÀûÓá°git am¡±Íê³É
git am 0001-add-formatch-test.patch
|

ÏÖÔÚÊǽ«·¢Ë͹ýÀ´µÄ£¬´øÓÐ email ¸ñʽµÄ²¹¶¡Îļþ½øÐÐÁËÓ¦Óá£
7£© Ìá½»Ó¦ÓõĸüÐÂ
git commit -a
-m "method patch apply" |
ÄÇô´Ëʱ¾Í¿ÉÒԳɹ¦µÄÓ¦Óò¹¶¡½øÐдúÂëµÄ¸üÕý¡£
¹ØÓÚÁ½ÖÖ²¹¶¡·½Ê½µÄ˵Ã÷
ʹÓÃgit diffÉú³É²¹¶¡¼æÈÝÐÔÊDZȽϺõģ¬Èç¹ûÄãÊÇÔÚ²»ÊÇgit¹ÜÀíµÄ²Ö¿âÉÏ£¬´ËÀ෽ʽÉú³ÉµÄ²¹¶¡ÊǷdz£ÈÝÒ×½ÓÊܵÄ;
µ«ÊÇÈç¹ûÄãÊÇÏò¹«¹²µÄ¿ª·¢ÉçÇø½øÐдúÂëµÄ²¹¶¡¸üÕý£¬ÄÇô½¨ÒéʹÓÃgit format-patch£¬ÕâÑù²»½ö±ê×¼£¬¶øÇÒÒ²¿ÉÒÔ½«¸üÕýÈ˵ÄÐÅÏ¢½øÐй«²¼¡£
8. ¶àÈËÐ×÷¿ª·¢
·ÖÖ§µÄ´¦Àíʵ¼ÊÉÏÊÇΪÁ˸üºÃµÄ¶àÈË¿ª·¢×ö³öµÄ×¼±¸£¬ÄÇôÏÂÃæ¾Í½«ÀûÓÃÁ½¸öÃüÁîÐз½Ê½(Ä£ÄâÆäËûµÄ¿ª·¢Õß)½øÐÐÏîÄ¿´úÂëµÄ±àд¡£Ê×ÏÈ˵Ã÷Ò»ÏÂ:
Ò»°ã¶øÑÔ£¬master ·ÖÖ§ÏîÄ¿µÄºËÐÄ·ÖÖ§£¬Ö»Òª½øÐдúÂëµÄ¿Ë¡£¬ÄÇô´Ë·ÖÖ§Ò»¶¨»á±»±£´æÏÂÀ´;
¿ª·¢ÕßÍùÍù»á½¨Á¢Ò»ÏµÁеķÖÖ§£¬Æ©È磬±¾´ÎÁ·Ï°½¨Á¢ÁËÒ»¸ö brh µÄ·ÖÖ§½øÐдúÂëµÄ±àд;
Èç¹ûÒª½øÐе÷ÊÔ¿ÉÒÔ½¨Á¢Ò»¸ö bug ·ÖÖ§;
Èç¹ûÒªÔö¼ÓijЩÐµĹ¦ÄÜÔò¿ÉÒÔ½¨Á¢ feature ·ÖÖ§¡£
1£© ´´½¨²¢Çл»µ½Ò»¸öеķÖÖ§:brh
2) ÔÚеķÖÖ§ÉϽ¨Á¢Ò»¸öеÄÎļþ ¡ª¡ª Dept.js
public class
Dept() {
console.log('¶àÈËÐ×÷¿ª·¢!');
} |
3) ½«´Ë´úÂë½øÐÐÌá½»
git commit -a
-m 'add dept.js files' |
4) ½«Á½¸ö·ÖÖ§Ìá½»µ½·þÎñÆ÷ÉÏÈ¥
git push origin
master
git push origin brh |
5£© [¶þºÅ]ΪÁËÄ£ÄâµÚ¶þ¸ö¿ª·¢Õߣ¬ËùÒÔ½¨Á¢Ò»¸öеÄÃüÁîÐд°¿Ú£¬²¢ÇÒ½«´úÂë¸´ÖÆÏÂÀ´(d:proclone)
git clone https://github.com/qq449245884/HelloGitHub.git |
6) [¶þºÅ] ²ì¿´·ÖÖ§ÐÅÏ¢

·¢ÏÖÏÖÔÚÖ»Êǽ« master ·ÖÖ§¿½±´ÏÂÀ´ÁË£¬µ«ÊÇ brh ·ÖÖ§²¢Ã»ÓдæÔÚ¡£
7) [¶þºÅ]½¨Á¢²¢Çл»µ½brh·ÖÖ§ÉÏ
8) [¶þºÅ]½«Ô¶³Ì·þÎñÆ÷¶ËÉϵÄbrh·ÖÖ§µÄÄÚÈÝ¿½±´µ½±¾µØµÄbrh·ÖÖ§ÉÏ
9) [¶þºÅ]ÏÖÔÚ¿ª·¢ÕßÔö¼ÓÁËÒ»¸öAdmin.jsÎļþ
public class
Admin() {
console.log('¶àÈËÐ×÷²âÊÔ!:')
} |
10) [¶þºÅ]½«ÐµĴúÂë½øÐÐÌá½»
git add .
git commit -m 'add admin.js files' |
11) [¶þºÅ]ÏÖÔÚ±¾µØµÄ brh ·ÖÖ§´úÂë·¢ÉúÁ˱仯£¬ÄÇôӦ¸Ã½«´Ë±ä»¯Ìá½»µ½Ô¶³ÌµÄ brh ·ÖÖ§ÉÏ
ÏÖÔÚ´úÂëÒѾ·¢Ë͵½ÁË·þÎñÆ÷ÉÏÁË£¬²¢ÇÒÔÚ brh ·ÖÖ§ÉÏÔö¼ÓÁËÐ嵀 Admin.java Îļþ¡£
12) [Ò»ºÅ]Õâ¸öʱºò×îÔʼµÄ¿ª·¢ÕßĿ¼Ï»¹Ö»ÊÇÉÏÒ»´ÎÌá½»µÄÄÚÈÝ¡£ÄÇôÐèҪȡµÃ×îеÄÊý¾Ý²Å¿ÉÒÔ
¶ÔÓÚÈ¡µÃ×îеķÖÖ§Êý¾ÝÓÐÁ½ÖÖ·½Ê½:
git fetch: ´Ë²Ù×÷Ö»ÊÇÈ¡µÃ×îеķÖÖ§Êý¾Ý£¬µ«ÊDz»»á·¢Éú merge ºÏ²¢²Ù×÷
git pull: ´Ë²Ù×÷È¡³ö×îзÖÖ§Êý¾Ý£¬²¢ÇÒͬʱ·¢Éú merge ºÏ²¢²Ù×÷
git pull

ʵ¼ÊÉÏ´íÎóÐÅÏ¢Ò²ºÜ¼òµ¥£¬Ö¸µÄÊÇ£¬µ±Ç°µÄ brh ·ÖÖ§ºÍ·þÎñÆ÷ÉϵķÖ֧ûÓйØÏµ£¬ËùÒÔÈç¹ûÒªÏë¶ÁÈ¡´úÂ룬±ØÐëÈÃÁ½
¸ö·ÖÖ§²úÉú¹ØÁª¹ØÏµ¡£
git branch --set-upstream-to=origin/brh |
ËæºóÔٴζÁÈ¡ËùÓеĴúÂë¡£
13) [¶þºÅ]ÐÞ¸Ä Admin.js ÀàÎļþ
public class
Admin() {
console.log('¶àÈËÐ×÷²âÊÔ!:')
console.log('¶þºÅÎÒÀ´¸öÐÔÁË£¡');
} |
14) [¶þºÅ]½«ÒÔÉϵĴúÂë½øÐÐÌá½»
git commit -a
-m 'update admin.js file' |
15) [¶þºÅ]Ïò·þÎñÆ÷¶ËÌá½»´úÂëµÄÐÞ¸Ä
16) [Ò»ºÅ]¿ª·¢ÕßÒ²½øÐÐ Admin.js ÎļþµÄÐÞ¸Ä
public class
Admin() {
console.log('¶àÈËÐ×÷²âÊÔ!:')
console.log('Ò»ºÅÒ²½øÐÐÐÞ¸ÄÁË!')
} |
17) [Ò»ºÅ]½«´úÂëÌá½»
git commit -a
-m "1 update admin.js file" |
µ«ÊÇÕâ¸öʱºòºÜÃ÷ÏÔ£¬Á½¸öÓû§Ò»ÆðÐÞ¸ÄÁËͬһ¸öÎļþ¡£
18) [Ò»ºÅ]ץȡ×îеĸüÐÂÊý¾Ý

ÏÖÔÚ¿ÉÒÔ·¢ÏÖ£¬´ËʱµÄ³ÌÐò£¬ÊÇÁ½Î»¿ª·¢ÕßÐÞ¸ÄÁËͬһ¸ö´úÂ룬ËùÒÔ²úÉúÁ˳åÍ»¡£Í¬Ê±Ò»ºÅ¿ª·¢ÕßÖ®ÖÐµÄ Admin.js
ÎļþµÄÄÚÈÝÒѾ±ä¸üΪÈçÏÂÇé:
public class
Admin() {
console.log('¶àÈËÐ×÷²âÊÔ!:')
<<<<<<< HEAD
console.log('Ò»ºÅÒ²½øÐÐÐÞ¸ÄÁË!')
=======
console.log('¶þºÅÎÒÀ´¸öÐÔÁË£¡');
>>>>>>> a600e113d2d139efc73eee2052ad509fa95d16e3
} |
19) [Ò»ºÅ]ÊÖ¹¤½â¾ö³åÍ»ÎļþÄÚÈÝ
public class
Admin() {
console.log('¶àÈËÐ×÷²âÊÔ!:')
console.log('Ò»ºÅÒ²½øÐÐÐÞ¸ÄÁË!')
console.log('¶þºÅÎÒÀ´¸öÐÔÁË£¡');
} |
20) ÔÙ´ÎÖ´ÐÐÌá½»ºÍ·þÎñÆ÷ÍÆËÍ
git commit -a
-m "3 Update Admin.js File"
git push origin brh |
ÏÖÔÚÒѾ³É¹¦µÄÓɱ¾µØµÄ³åÍ»À©³äµ½ÁËÔ¶³ÌµÄ³åÍ»£¬ÏàÐÅͨ¹ýһϵÁеĴúÂë´ó¼ÒÒ²¿ÉÒÔ¸üºÃµÄÀí½â·ÖÖ§µÄ²Ù×÷ÎÊÌâ¡£ |