±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜÁËgitµÄ¸ÅÄî¼°ËĸöÇøÓò³£ÓÃÃüÁî¡£
±¾ÎÄÀ´×ÔÓÚ²©¿ÍÔ°£¬ÓÉ»ðÁú¹ûÈí¼þLinda±à¼¡¢ÍƼö¡£ |
|
Ò»¡¢¸ÅÄî
1¡¢Ëĸö¹¤×÷ÇøÓò
Git±¾µØÓÐËĸö¹¤×÷ÇøÓò£º¹¤×÷Ŀ¼£¨Working Directory£©¡¢ÔÝ´æÇø(Stage/Index)¡¢×ÊÔ´¿â(Repository»òGit
Directory)¡¢git²Ö¿â(Remote Directory)¡£ÎļþÔÚÕâËĸöÇøÓòÖ®¼äµÄת»»¹ØϵÈçÏ£º
Workspace£º ¹¤×÷Çø£¬¾ÍÊÇÄãƽʱ´æ·ÅÏîÄ¿´úÂëµÄµØ·½
Index / Stage£º ÔÝ´æÇø£¬ÓÃÓÚÁÙʱ´æ·ÅÄãµÄ¸Ä¶¯£¬ÊÂʵÉÏËüÖ»ÊÇÒ»¸öÎļþ£¬±£´æ¼´½«Ìá½»µ½ÎļþÁбíÐÅÏ¢
Repository£º ²Ö¿âÇø£¨»ò°æ±¾¿â£©£¬¾ÍÊÇ°²È«´æ·ÅÊý¾ÝµÄλÖã¬ÕâÀïÃæÓÐÄãÌá½»µ½ËùÓа汾µÄÊý¾Ý¡£ÆäÖÐHEADÖ¸Ïò×îзÅÈë²Ö¿âµÄ°æ±¾
Remote£º Ô¶³Ì²Ö¿â£¬ÍйܴúÂëµÄ·þÎñÆ÷£¬¿ÉÒÔ¼òµ¥µÄÈÏΪÊÇÄãÏîÄ¿×éÖеÄһ̨µçÄÔÓÃÓÚÔ¶³ÌÊý¾Ý½»»»
2¡¢¹¤×÷Á÷³Ì
gitµÄ¹¤×÷Á÷³ÌÒ»°ãÊÇÕâÑùµÄ£º
£±¡¢ÔÚ¹¤×÷Ŀ¼ÖÐÌí¼Ó¡¢ÐÞ¸ÄÎļþ£»
£²¡¢½«ÐèÒª½øÐа汾¹ÜÀíµÄÎļþ·ÅÈëÔÝ´æÇøÓò£»
£³¡¢½«ÔÝ´æÇøÓòµÄÎļþÌá½»µ½git²Ö¿â¡£
Òò´Ë£¬git¹ÜÀíµÄÎļþÓÐÈýÖÖ״̬£ºÒÑÐ޸ģ¨modified£©,ÒÑÔݴ棨staged£©,ÒÑÌá½»(committed)
3¡¢ÎļþµÄËÄÖÖ״̬
°æ±¾¿ØÖƾÍÊǶÔÎļþµÄ°æ±¾¿ØÖÆ£¬Òª¶ÔÎļþ½øÐÐÐ޸ġ¢Ìá½»µÈ²Ù×÷£¬Ê×ÏÈÒªÖªµÀÎļþµ±Ç°ÔÚʲô״̬£¬²»È»¿ÉÄÜ»áÌá½»ÁËÏÖÔÚ»¹²»ÏëÌá½»µÄÎļþ£¬»òÕßÒªÌá½»µÄÎļþûÌá½»ÉÏ¡£
GIT²»¹ØÐÄÎļþÁ½¸ö°æ±¾Ö®¼äµÄ¾ßÌå²î±ð£¬¶øÊǹØÐÄÎļþµÄÕûÌåÊÇ·ñÓиı䣬ÈôÎļþ±»¸Ä±ä£¬ÔÚÌí¼ÓÌύʱ¾ÍÉú³ÉÎļþа汾µÄ¿ìÕÕ£¬¶øÅжÏÎļþÕûÌåÊÇ·ñ¸Ä±äµÄ·½·¨¾ÍÊÇÓÃ
SHA-1Ëã·¨¼ÆËãÎļþµÄУÑéºÍ¡£
Untracked: δ¸ú×Ù, ´ËÎļþÔÚÎļþ¼ÐÖÐ, µ«²¢Ã»ÓмÓÈëµ½git¿â, ²»²ÎÓë°æ±¾¿ØÖÆ. ͨ¹ýgit
add ״̬±äΪStaged.
Unmodify: ÎļþÒѾÈë¿â, δÐÞ¸Ä, ¼´°æ±¾¿âÖеÄÎļþ¿ìÕÕÄÚÈÝÓëÎļþ¼ÐÖÐÍêÈ«Ò»ÖÂ. ÕâÖÖÀàÐ͵ÄÎļþÓÐÁ½ÖÖÈ¥´¦,
Èç¹ûËü±»ÐÞ¸Ä, ¶ø±äΪModified.
Èç¹ûʹÓÃgit rmÒƳö°æ±¾¿â, Ôò³ÉΪUntrackedÎļþ
Modified: ÎļþÒÑÐÞ¸Ä, ½ö½öÊÇÐÞ¸Ä, ²¢Ã»ÓнøÐÐÆäËûµÄ²Ù×÷. Õâ¸öÎļþÒ²ÓÐÁ½¸öÈ¥´¦,
ͨ¹ýgit add¿É½øÈëÔÝ´æstaged״̬, ʹÓÃgit checkout Ôò¶ªÆúÐ޸Ĺý,
·µ»Øµ½unmodify״̬, Õâ¸ögit checkout¼´´Ó¿âÖÐÈ¡³öÎļþ, ¸²¸Çµ±Ç°ÐÞ¸Ä
Staged: ÔÝ´æ״̬. Ö´ÐÐgit commitÔò½«ÐÞ¸Äͬ²½µ½¿âÖÐ, Õâʱ¿âÖеÄÎļþºÍ±¾µØÎļþÓÖ±äΪһÖÂ,
ÎļþΪUnmodify״̬. Ö´ÐÐgit reset HEAD filenameÈ¡ÏûÔÝ´æ,
Îļþ״̬ΪModified
ÏÂÃæµÄͼºÜºÃµÄ½âÊÍÁËÕâËÄÖÖ״̬µÄת±ä£º
н¨Îļþ--->Untracked
ʹÓÃaddÃüÁн¨µÄÎļþ¼ÓÈëµ½ÔÝ´æÇø--->Staged
ʹÓÃcommitÃüÁÔÝ´æÇøµÄÎļþÌá½»µ½±¾µØ²Ö¿â--->Unmodified
Èç¹û¶ÔUnmodified״̬µÄÎļþ½øÐÐÐÞ¸Ä---> modified
Èç¹û¶ÔUnmodified״̬µÄÎļþ½øÐÐremove²Ù×÷--->Untracked
¶þ¡¢ËĸöÇøÓò³£ÓÃÃüÁî
1¡¢Ð½¨´úÂë¿â
¸´ÖÆ´úÂë
# ÔÚµ±Ç°Ä¿Â¼Ð½¨Ò»¸öGit´úÂë¿â
git init
# н¨Ò»¸öĿ¼£¬½«Æä³õʼ»¯ÎªGit´úÂë¿â
git init [project-name]
# ÏÂÔØÒ»¸öÏîÄ¿ºÍËüµÄÕû¸ö´úÂëÀúÊ·
git clone [url]
¸´ÖÆ´úÂë
2¡¢²é¿´Îļþ״̬
#²é¿´Ö¸¶¨Îļþ״̬
git status [filename]
#²é¿´ËùÓÐÎļþ״̬
git status
3¡¢¹¤×÷Çø<-->ÔÝ´æÇø
¸´ÖÆ´úÂë
# Ìí¼ÓÖ¸¶¨Îļþµ½ÔÝ´æÇø
git add [file1] [file2] ...
# Ìí¼ÓÖ¸¶¨Ä¿Â¼µ½ÔÝ´æÇø£¬°üÀ¨×ÓĿ¼
git add [dir]
# Ìí¼Óµ±Ç°Ä¿Â¼µÄËùÓÐÎļþµ½ÔÝ´æÇø
git add .
#µ±ÎÒÃÇÐèҪɾ³ýÔÝ´æÇø»ò·ÖÖ§ÉϵÄÎļþ, ͬʱ¹¤×÷ÇøÒ²²»ÐèÒªÕâ¸öÎļþÁË, ¿ÉÒÔʹÓã¨??£©
git rm file_path
#µ±ÎÒÃÇÐèҪɾ³ýÔÝ´æÇø»ò·ÖÖ§ÉϵÄÎļþ, µ«±¾µØÓÖÐèҪʹÓÃ, Õâ¸öʱºòÖ±½ÓpushÄDZßÕâ¸öÎļþ¾ÍûÓУ¬Èç¹ûpush֮ǰÖØÐÂaddÄÇô»¹ÊÇ»áÓС£
git rm --cached file_path
#Ö±½Ó¼ÓÎļþÃû ´ÓÔÝ´æÇø½«Îļþ»Ö¸´µ½¹¤×÷Çø£¬Èç¹û¹¤×÷ÇøÒѾÓиÃÎļþ£¬Ôò»áÑ¡Ôñ¸²¸Ç
#¼ÓÁË¡¾·ÖÖ§Ãû¡¿ +ÎļþÃû Ôò±íʾ´Ó·ÖÖ§ÃûΪËùдµÄ·ÖÖ§ÃûÖÐÀÈ¡Îļþ ²¢¸²¸Ç¹¤×÷ÇøÀïµÄÎļþ
git checkout
¸´ÖÆ´úÂë
4¡¢¹¤×÷Çø<-->×ÊÔ´¿â£¨°æ±¾¿â£©
¸´ÖÆ´úÂë
#½«ÔÝ´æÇø-->×ÊÔ´¿â£¨°æ±¾¿â£©
git commit -m '¸Ã´ÎÌύ˵Ã÷'
#Èç¹û³öÏÖ:½«²»±ØÒªµÄÎļþcommit »òÕß ÉÏ´ÎÌá½»¾õµÃÊÇ´íµÄ »òÕß ²»Ïë¸Ä±äÔÝ´æÇøÄÚÈÝ£¬Ö»ÊÇÏëµ÷ÕûÌá½»µÄÐÅÏ¢
#ÒƳý²»±ØÒªµÄÌí¼Óµ½ÔÝ´æÇøµÄÎļþ
git reset HEAD ÎļþÃû
#È¥µôÉÏÒ»´ÎµÄÌá½»£¨»áÖ±½Ó±ä³Éadd֮ǰ״̬£©
git reset HEAD^
#È¥µôÉÏÒ»´ÎµÄÌá½»£¨±ä³ÉaddÖ®ºó£¬commit֮ǰ״̬£©
git reset --soft HEAD^
¸´ÖÆ´úÂë
5¡¢Ô¶³Ì²Ù×÷
# È¡»ØÔ¶³Ì²Ö¿âµÄ±ä»¯£¬²¢Óë±¾µØ·ÖÖ§ºÏ²¢
git pull
# ÉÏ´«±¾µØÖ¸¶¨·ÖÖ§µ½Ô¶³Ì²Ö¿â
git push
6¡¢ÆäËü³£ÓÃÃüÁî
¸´ÖÆ´úÂë
# ÏÔʾµ±Ç°µÄGitÅäÖÃ
git config --list
# ±à¼GitÅäÖÃÎļþ
git config -e [--global]
#³õ´Îcommit֮ǰ£¬ÐèÒªÅäÖÃÓû§ÓÊÏä¼°Óû§Ãû£¬Ê¹ÓÃÒÔÏÂÃüÁ
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
#µ÷³öGitµÄ°ïÖúÎĵµ
git --help
#²é¿´Ä³¸ö¾ßÌåÃüÁîµÄ°ïÖúÎĵµ
git +ÃüÁî --help
#²é¿´gitµÄ°æ±¾
git --version
|