githubï¼
https://github.comï¼æ¯ä¸ä¸ªåºäºgitç代ç æ管平å°ï¼ä»è´¹ç¨æ·å¯ä»¥å»ºç§äººä»åºï¼æ们ä¸è¬çå
è´¹ç¨æ·åªè½ä½¿ç¨å
Œ
±ä»åºï¼ä¹å°±æ¯ä»£ç è¦å
¬å¼ã对äºä¸è¬äººæ¥è¯´å
Œ
±ä»åºå°±å·²ç»è¶³å¤äºï¼èä¸æ们ä¹æ²¡å¤å°ä»£ç æ¥ç®¡çï¼O(â©_â©)O~ãä¸é¢æ¯ææ»ç»çä¸äºç®å使ç¨æ¹æ³ï¼ä¾åå¦è
åèã
1.注åè´¦æ·ä»¥åå建ä»åº
è¦æ³ä½¿ç¨github第ä¸æ¥å½ç¶æ¯æ³¨ågithubè´¦å·äºãä¹åå°±å¯ä»¥å建ä»åºäºï¼å
è´¹ç¨æ·åªè½å»ºå
Œ
±ä»åºï¼ï¼Create a New Repositoryï¼å¡«å¥½å称åCreateï¼ä¹åä¼åºç°ä¸äºä»åºçé
置信æ¯ï¼è¿ä¹æ¯ä¸ä¸ªgitçç®åæç¨ã
2.å®è£
客æ·ç«¯msysgit
githubæ¯æå¡ç«¯ï¼è¦æ³å¨èªå·±çµèä¸ä½¿ç¨gitæ们è¿éè¦ä¸ä¸ªgit客æ·ç«¯ï¼æè¿ééç¨msysgitï¼è¿ä¸ªåªæ¯æä¾äºgitçæ ¸å¿åè½ï¼èä¸æ¯åºäºå½ä»¤è¡çãå¦ææ³è¦å¾å½¢çé¢çè¯åªè¦å¨msysgitçåºç¡ä¸å®è£
TortoiseGitå³å¯ã
è£
å®msysgitåå³é®é¼ æ ä¼å¤åºä¸äºé项æ¥ï¼å¨æ¬å°ä»åºéå³é®éæ©Git Init Hereï¼ä¼å¤åºæ¥ä¸ä¸ª.gitæ件夹ï¼è¿å°±è¡¨ç¤ºæ¬å°gitå建æåãå³é®Git Bashè¿å
¥gitå½ä»¤è¡ï¼ä¸ºäºææ¬å°çä»åºä¼ å°githubï¼è¿éè¦é
ç½®ssh keyã
3.é
ç½®Git
é¦å
å¨æ¬å°å建ssh keyï¼
1
$
ssh-keygen
-t rsa -C
"
[email protected]"
åé¢ç
[email protected]æ¹ä¸ºä½ çé®ç®±ï¼ä¹åä¼è¦æ±ç¡®è®¤è·¯å¾åè¾å
¥å¯ç ï¼æ们è¿ä½¿ç¨é»è®¤çä¸è·¯å车就è¡ãæåçè¯ä¼å¨~/ä¸çæ.sshæ件夹ï¼è¿å»ï¼æå¼id_rsa.pubï¼å¤å¶éé¢çkeyã
åå°githubï¼è¿å
¥Account Settingsï¼å·¦è¾¹éæ©SSH Keysï¼Add SSH Key,titleé便填ï¼ç²è´´keyã为äºéªè¯æ¯å¦æåï¼å¨git bashä¸è¾å
¥ï¼
1
$
ssh
-T
[email protected]å¦ææ¯ç¬¬ä¸æ¬¡çä¼æ示æ¯å¦continueï¼è¾å
¥yeså°±ä¼çå°ï¼Youâve successfully authenticated, but GitHub does not provide shell access ãè¿å°±è¡¨ç¤ºå·²æåè¿ä¸githubã
æ¥ä¸æ¥æ们è¦åçå°±æ¯ææ¬å°ä»åºä¼ å°githubä¸å»ï¼å¨æ¤ä¹åè¿éè¦è®¾ç½®usernameåemailï¼å 为githubæ¯æ¬¡commité½ä¼è®°å½ä»ä»¬ã
1
2
$ git config --global user.name
"your name"
$ git config --global user.email
"
[email protected]"
è¿å
¥è¦ä¸ä¼ çä»åºï¼å³é®git bashï¼æ·»å è¿ç¨å°åï¼
1
$ git remote add origin
[email protected]:yourName/yourRepo.git
åé¢çyourNameåyourRepoè¡¨ç¤ºä½ ågithubçç¨æ·åååææ°å»ºçä»åºï¼å å®ä¹åè¿å
¥.gitï¼æå¼configï¼è¿éä¼å¤åºä¸ä¸ªremote âoriginâå
容ï¼è¿å°±æ¯åææ·»å çè¿ç¨å°åï¼ä¹å¯ä»¥ç´æ¥ä¿®æ¹configæ¥é
ç½®è¿ç¨å°åã
4.æ交ãä¸ä¼
æ¥ä¸æ¥å¨æ¬å°ä»åºéæ·»å ä¸äºæ件ï¼æ¯å¦READMEï¼
1
2
$ git add README
$ git commit -m
"first commit"
ä¸ä¼ å°githubï¼
1
$ git push origin master
git pushå½ä»¤ä¼å°æ¬å°ä»åºæ¨éå°è¿ç¨æå¡å¨ã
git pullå½ä»¤åç¸åã
ä¿®æ¹å®ä»£ç åï¼ä½¿ç¨git statuså¯ä»¥æ¥çæ件çå·®å«ï¼ä½¿ç¨git add æ·»å è¦commitçæ件ï¼ä¹å¯ä»¥ç¨git add -iæ¥æºè½æ·»å æ件ãä¹ågit commitæ交æ¬æ¬¡ä¿®æ¹ï¼git pushä¸ä¼ å°githubã
5.gitignoreæ件
.gitignore顾åæä¹å°±æ¯åè¯gitéè¦å¿½ç¥çæ件ï¼è¿æ¯ä¸ä¸ªå¾éè¦å¹¶ä¸å¾å®ç¨çæ件ãä¸è¬æ们åå®ä»£ç åä¼æ§è¡ç¼è¯ãè°è¯çæä½ï¼è¿æé´ä¼äº§çå¾å¤ä¸é´æ件åå¯æ§è¡æ件ï¼è¿äºé½ä¸æ¯ä»£ç æ件ï¼æ¯ä¸éè¦gitæ¥ç®¡ççãæ们å¨git statusçæ¶åä¼çå°å¾å¤è¿æ ·çæ件ï¼å¦æç¨git add -Aæ¥æ·»å çè¯ä¼æä»ä»¬é½å è¿å»ï¼èæå¨ä¸ä¸ªä¸ªæ·»å çè¯ä¹å¤ªéº»ç¦äºãè¿æ¶æ们就éè¦.gitignoreäºãæ¯å¦ä¸è¬c#ç项ç®æç.gitignoreæ¯è¿æ ·åçï¼
1
2
3
bin
*.suo
obj
binåobjæ¯ç¼è¯ç®å½ï¼éé¢é½ä¸æ¯æºä»£ç ï¼å¿½ç¥ï¼suoæ件æ¯vs2010çé
ç½®æ件ï¼ä¸éè¦ãè¿æ ·ä½ å¨git statusçæ¶åå°±åªä¼çå°æºä»£ç æ件äºï¼å°±å¯ä»¥æ¾å¿çgit add -Aäºã
6.tag
æ们å¯ä»¥å建ä¸ä¸ªtagæ¥æå软件å¼åä¸çä¸ä¸ªå
³é®æ¶æï¼æ¯å¦çæ¬å·æ´æ°çæ¶åå¯ä»¥å»ºä¸ä¸ªâv2.0âãâv3.1âä¹ç±»çæ ç¾ï¼è¿æ ·å¨ä»¥åå顾çæ¶åä¼æ¯è¾æ¹ä¾¿ãtagç使ç¨å¾ç®åï¼ä¸»è¦æä½æï¼æ¥çtagãå建tagãéªè¯tag以åå
±äº«tagã
6.1æ¥çtag
ååºæætagï¼
1
git tag
è¿æ ·ååºçtagæ¯æåæ¯æåºçï¼åå建æ¶é´æ²¡å
³ç³»ãå¦æåªæ¯æ³æ¥çæäºtagçè¯ï¼å¯ä»¥å éå®ï¼
1
git tag -l v1.*
è¿æ ·å°±åªä¼ååº1.å ççæ¬ã
6.2å建tag
å建轻é级tagï¼
1
git tag v1.0
è¿æ ·å建çtag没æé带å
¶ä»ä¿¡æ¯ï¼ä¸ä¹ç¸åºçæ¯å¸¦ä¿¡æ¯çtagï¼
1
git tag -a v1.0 -m
'first version'
-måé¢å¸¦çå°±æ¯æ³¨éä¿¡æ¯ï¼è¿æ ·å¨æ¥åæ¥ççæ¶åä¼å¾æç¨ï¼è¿ç§æ¯æ®étagï¼è¿æä¸ç§æç¾åçtagï¼
1
git tag -s v1.0 -m
'first version'
åææ¯ä½ æGPGç§é¥ï¼æä¸é¢çaæ¢æså°±è¡äºãé¤äºå¯ä»¥ä¸ºå½åçè¿åº¦æ·»å tagï¼æ们è¿å¯ä»¥ä¸ºä»¥åçcommitæ·»å tagï¼
1
2
3
4
5
#é¦å
æ¥ç以åçcommit
git log --oneline
#åå¦æè¿æ ·ä¸ä¸ªcommitï¼8a5cbc2 updated readme
#è¿æ ·ä¸ºä»æ·»å tag
git tag -a v1.1 8a5cbc2
6.3å é¤tag
å¾ç®åï¼ç¥étagå称åï¼
1
git tag -d v1.0
6.4éªè¯tag
å¦æä½ æGPGç§é¥çè¯å°±å¯ä»¥éªè¯tagï¼
1
git tag -v
v1.0
6.5å
񄧮tag
æ们å¨æ§è¡git pushçæ¶åï¼tagæ¯ä¸ä¼ä¸ä¼ å°æå¡å¨çï¼æ¯å¦ç°å¨çgithubï¼å建tagågit pushï¼å¨githubç½é¡µä¸æ¯çä¸å°tagçï¼ä¸ºäºå
±äº«è¿äºtagï¼ä½ å¿
é¡»è¿æ ·ï¼
1
git push origin --tags