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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Git´¦Àí»»ÐзûÎÊÌâ
 
  1953  次浏览      28
 2018-3-28 
 
±à¼­ÍƼö:
±¾ÎÄÀ´×Ôsegmentfault.com£¬ÔÚÄãͨ¹ýgithub»òÕ߯äËûÔ¶³ÌÍйܷþÎñÆ÷À´ºÍÆäËûÈ˽øÐÐЭͬ¿ª·¢´úÂëµÄʱºò£¬È·±£»»Ðзû±»ÕýÈ·´¦ÀíÊÇÒ»ÏîºÜÖØÒªµÄÊ¡£

Ê×ÏÈ£¬ÄãÐèÒªÖªµÀ²»Í¬µÄ²Ù×÷ϵͳ¶Ô»»ÐзûµÄ¶¨Òå»áÓÐËù²»Í¬£¬Unix»òÀàUnix²Ù×÷ϵͳµÄ»»Ðзû½Ð×öLF£¬¶øwindowsϵͳµÄ½Ð×öCRLF£¬¶þÕß¾ßÓкܴóµÄÇø±ð£º

UnixϵͳÀÿÐнáβֻÓС°<»»ÐÐ>¡±£¬¼´"n"£»WindowsϵͳÀïÃæ£¬Ã¿ÐнáβÊÇ¡°<»»ÐÐ><»Ø³µ>¡±

Note:Òý×Իسµ(CR)Óë»»ÐÐ(LF)£¬ 'r'ºÍ'n'µÄÇø±ð.

Õâ¾ÍÊÇÔì³ÉÎÊÌâµÄ¸ùÔ´¡ª¡ª¼´Èç¹ûÄãʹÓõÄÊÇwindowsϵͳ£¬¶øÄãµÄС»ï°éÓõÄÊÇMacµÄ»°£¬µ±ÄãÃÇʹÓÃgitЭͬ¿ª·¢Èí¼þʱ£¬¾Í»á³öÏÖ»»Ðзû²»Í³Ò»µÄÎÊÌâ¡£

gitÆäʵ¿ÉÒÔ×Ô¼º´¦Àí»»Ðзû²»Í³Ò»µÄÎÊÌ⣬µ«ÊÇ¿ÉÄÜ»á²úÉúÒâÏë²»µ½µÄ½á¹û¡£Òò´Ë£¬ÓбØÒª½øÐÐÏà¹ØµÄÅäÖã¬ÎÒÃÇͨ³£ÓÐÁ½ÖÖ·½°¸£º

È«¾ÖÅäÖû»Ðзû

Õë¶Ôij¸ö²Ö¿âµÄ¾Ö²¿ÅäÖÃ

»»ÐзûµÄÈ«¾ÖÅäÖÃ

Ò»°ãÈç¹ûÄã²»ÏëÂé·³µÄ»°£¬¿ÉÒÔ²ÉÓñȽϼòµ¥µÄ·½·¨£¬ÈçÏÂËùʾ:

$ git config --global core.autocrlf true

Æäʵ£¬ÔÚÄã°²×°windows°æ±¾µÄgit»òÕßtorgoiseGitʱ£¬Äã¿ÉÄÜÒѾ­½øÐйýÕâÑùµÄÅäÖã¬Ò²ÐíÄ㵱ʱ²¢Î´ÖªµÀÄǸöÑ¡ÏîÊÇʲôÒâ˼¡£ÏÂÃæÕâÕÅͼÊDz»ÊÇÓÐЩÑÛÊìÄØ£¿

Note:±¾Í¼Æ¬À´×԰ٶȾ­Ñé:http://jingyan.baidu.com/arti...¡£

²»¹ý£¬Ò²ÐíºÜ¶àÈ˰²×°gitµÄʱºò£¬ÊÇÒ»Ö±next...next°É£¡ÆäʵÉÏÃæÐ´µÃºÜÇå³þ£º

Checkout Windows-style, commit Unix-style line endings

µ±¼ì³öÎı¾Îļþʱ£¬Git»á½«LFת»»ÎªCRLF¡£µ±Ìá½»Îı¾Îļþʱ£¬CRLF½«»á±»×ª»»ÎªLF¡£¶ÔÓÚ¿çÆ½Ì¨µÄÏîÄ¿£¬ÕâÊǶÔWindowsϵͳµÄÍÆ¼öÉèÖá£("core.autocrlf" is set to "true")

Checkout as-is, commit Unix-style line endings

µ±¼ì³öÎı¾Îļþʱ£¬Git²»»á×öÈκÎת»»¡£µ±Ìá½»Îı¾Îļþʱ£¬CRLF½«»á±»×ª»»ÎªLF¡£¶ÔÓÚ¿çÆ½Ì¨µÄÏîÄ¿£¬ÕâÊǶÔUnixϵͳµÄÍÆ¼öÉèÖá£("core.autocrlf" is set to "input")

Checkout as-is, commit as-is

²»ÂÛÊǼì³ö»¹ÊÇÌá½»Îı¾Îļþʱ£¬Git¶¼²»»á×öÈκÎת»»¡£¶ÔÓÚ¿çÆ½Ì¨µÄÏîÄ¿£¬²»ÍƼö²ÉÓøÃÑ¡Ïî¡£

ÏÔÈ»£¬µÚÒ»¸öÑ¡Ïî¾ÍÊÇÎÒÃÇËù½éÉܵĵÚÒ»ÖÖ·½·¨¡£

˳±ãͲÛһϣ¬ÎÒÔÚÍøÉÏ¿´µ½ºÜ¶à½éÉÜÈçºÎ°²×°GitµÄ²©¿Í£¬ºÜÉÙÓÐÏêϸ˵Ã÷ÿһ¸ö°²×°²½ÖèµÄ£¬ÓÐЩÉõÖÁÖ±½Ó˵

Ò»Ö±nextÏÂÈ¥¾Í°²×°Íê³ÉÁË¡£

Ò»·½ÃæÔ­Òò¾ÍÊÇËûÃÇÒ²²»ÖªµÀ£¬ÆäʵÕâÑù¿ÉÄÜ»á¶ÔÐÂÊÖ²úÉúÎóµ¼£¬¶øÇÒδÃâÓÐЩ²»¸ºÔðÈΡ£

µ¥Ò»²Ö¿âµÄ»»Ðзû¾Ö²¿ÅäÖÃ

µ±È»£¬ÓиüºÃµÄ·½·¨½â¾ö»»Ðзû²»Í³Ò»µÄÎÊÌ⡪¡ªÊ¹ÓÃ.gitattributesÎļþͳһ»»Ðзû¡£ÕâÖÖ·½·¨ÊÇÕë¶Ôij¸ö²Ö¿â½øÐл»ÐзûµÄͳһÅäÖ㬼´Ê±ÄãÒѾ­½øÐÐÁËÈ«¾ÖÅäÖá£

ÁíÍ⣬Õâ¸öÎļþÓеã¶ùÀàËÆÓÚ.gitignore£¬²»½öÃû×ÖºÜÀàËÆ£¬Ê¹Ó÷½Ê½£¬±àдÓï·¨Ò²ºÜÏñ¡£Õâ¸öÎļþ±ØÐëλÓÚ²Ö¿âµÄ¸ùĿ¼£¬¿ÉÒÔÏñÆäËûÎļþÒ»Ñù½øÐÐÐ޸ġ¢Ìá½»¡£ÏÂÃæ½éÉÜÈçºÎ±àдÕâ¸öÎļþ£º

ÎļþÄÚÈÝ¿´ÆðÀ´ÏñÒ»Õűí¸ñ£¬×ܹ²·ÖΪÁ½ÁУº×ó±ßÒ»ÁÐÊÇgitҪƥÅäµÄÎļþÃû£»ÓÒ±ßÊÇgitÐèÒª²ÉÓõĻ»Ðзû¸ñʽ¡£ÏÂÃæÎÒÃÇÀ´¿´Ò»¸öÀõ×Ó£º

# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto

# Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout.
*.c text
*.h text

# Declare files that will always have CRLF line endings on checkout.
*.sln text eol=crlf

# Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary

Èç¹ûÄãÊìϤ.gitignoreµÄ»°£¬Äã»á¾õµÃÉÏÃæÕâ¸öÎļþµÄ×ó±ßÒ»ÁкÜÊìϤ£¬ÕâÀïÎÒÃǾͲ»ÔÙ׸ÊöÁË£¬²»ÊìϤµÄ»°£¬Çë×ÔÐвéÔÄÏà¹Ø×ÊÁÏ¡£Î¨Ò»µÄ²»Í¬¾ÍÊÇ.gitattributesÎļþ¶àÁËÓÒ±ßÒ»ÁУ¬Èçtext, text eol=crlf, binary£¬¸Õ¸ÕÎÒÃÇҲ˵¹ýÕâÒ»ÁÐÊÇÓÃÀ´ÉèÖÃ×ó±ß¶ÔÓ¦ÎļþʹÓõĻ»Ðзû¸ñʽµÄ£¬×óÓÒÁ½ÁÐÓÿոñ¸ô¿ª¡£ÏÂÃæÎÒÃÇÀ´Ïêϸ½éÉÜÏÂÓÒ±ßÒ»ÁеÄÓï·¨£º

text=auto

ÈÃgit×ÔÐд¦Àí×ó±ßÆ¥ÅäµÄÎļþʹÓúÎÖÖ»»Ðзû¸ñʽ£¬ÕâÊÇĬÈÏÑ¡Ïî¡£

text eol=crlf

¶Ô×ó±ßÆ¥ÅäµÄÎļþͳһʹÓÃCRLF»»Ðзû¸ñʽ£¬Èç¹ûÓÐÎļþÖгöÏÖLF½«»áת»»³ÉCRLF¡£

text eol=lf

¶Ô×ó±ßÆ¥ÅäµÄÎļþͳһʹÓÃLF»»Ðзû¸ñʽ£¬Èç¹ûÓÐÎļþÖгöÏÖCRLF½«»áת»»³ÉLF¡£

binary

¸æËßgitÕâ²»ÊÇÎı¾Îļþ£¬²»Ó¦¸Ã¶ÔÆäÖеĻ»Ðзû½øÐиı䡣ÁíÍ⣬binaryºÍ·ûºÅ-text -diffÊǵȼ۵ġ£

ÉÏÃæÕâЩÓï·¨Ó¦¸ÃÒѾ­×ã¹»ÁË£¬Èç¹ûÓÐÐËȤµÄ£¬¿ÉÒÔ×ÔÐвéÔÄÏà¹Ø×ÊÁÏ£¬±ÈÈç¹Ù·½µÄ×ÊÁÏ£ºhttps://git-scm.com/book/en/v...¡£

Èç¹û´´½¨²Ö¿â֮ǰûÓнøÐл»ÐзûÅäÖÃÔõô°ì

Ò²ÐíÄãÔÚ¿´ÍêÎҵIJ©¿ÍÖ®ºó£¬²ÅÒâʶµ½×Ô¼º²¢Î´½øÐÐÏà¹ØµÄÉèÖÃÒÖ»òÊÇÄãÏëÐ޸Ļ»ÐзûÅäÖã¬ÓÚÊÇÄãÐËÖ²ª²ªµØ°´ÕÕÎҵIJ©¿Í½øÐÐÁËÅäÖ㬽á¹ûÄã·¢ÏÖ³öÁËÒ»¶ÑĪÃûÆäÃîµÄ¾¯¸æ»òÕß´íÎó¡£

¹ÖÎÒà¶£¿

²»Òª×ż±Í²ۣ¬±øÀ´½«µ²£¬Ë®À´ÍÁÑÚ£¬Ã»Óнâ¾ö²»Á˵ÄÎÊÌ⣡

Ê×Ïȱ£´æGitÖÐĿǰµÄËùÓÐÎļþ£¬ÕâÑù¿ÉÒÔÈ·±£ÄãµÄ¹¤×÷²»»á¶ªÊ§¡£

# ÔÚ²Ö¿âµÄ¸ùĿ¼ÏÂÔËÐÐÃüÁî
$ git add . -u
$ git commit -m "Saving files before refreshing line endings"

È»ºóɾ³ýÔÝ´æÇøÖеÄËùÓÐÎļþ£¬

$ git rm --cached -r .

ÖØÐ´ÔÝ´æÇøÒÔÖØÐÂÓ¦ÓÃÐµĻ»Ðзû

$ git reset --hard

ÕÒ»ØËùÓÐÐ޸ĹýµÄÎļþ²¢¼ÓÈëÔÝ´æÇø£¬Í¬Ê±£¬ÄãÒ²¿ÉÒԲ鿴ЩÎļþûÓб»Ð޸ġ£

$ git add .
# ³öÏÖ"warning: CRLF will be replaced by LF in file."µÄ¾¯¸æÊǺÜÕý³£µÄÏÖÏó

Ìá½»Äã¶Ô²Ö¿âµÄÐÞ¸Ä

$ git commit -m "Normalize all the line endings"
   
1953 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

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

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

ÅäÖùÜÀíʵ¼ù
ÅäÖùÜÀí·½·¨¡¢¹¤¾ßÓëÓ¦ÓÃ
¶à²ã´Î¼¯³ÉÅäÖùÜÀí
²úÆ··¢²¼¹ÜÀí