版權(quán)聲明:本文為博主原創(chuàng)文章埠啃,未經(jīng)博主允許不得轉(zhuǎn)載辙芍。http://www.reibang.com/p/3f12bd3ccf2a
轉(zhuǎn)載請標(biāo)明出處:
http://www.reibang.com/p/3f12bd3ccf2a
本文出自 AWeiLoveAndroid的博客
目錄:
一踏志、入門必備知識
(一)git,SVN,github的區(qū)分
(二)版本控制軟件中Trunk和Branch的區(qū)別:
(三)github有什么作用撮珠?
(四) github的理解誤區(qū):
二琉兜、開始github之旅
(一)注冊Github
(二)登陸Github,看看登陸后的菜單是什么樣的。
(三)現(xiàn)在可以創(chuàng)建倉庫試試看院仿。
(四)下載git客戶端秸抚,clone并提交本地代碼到倉庫里面。
(五)使用ssh進(jìn)行下載和提交代碼
三歹垫、一些實用的git命令操作
(一)使用git克掳馈(下載)一個倉庫或單個文件夾
(二)關(guān)于git config配置文件的增刪改查命令
(三)如何下載github某個單獨目錄(此方法也適用于gitlab 碼云等工具)
四、git使用中遇到的錯誤集錦
(一)git clone 下載速度0bytes 出現(xiàn)error
(二)git push出現(xiàn)的錯誤
(三)git push出現(xiàn)的錯誤
github好多人都只聽說過排惨,但是沒具體的用過吭敢,下面簡單講一下,大概30分鐘讓你快速入門若贮。
一省有、入門必備知識
(一)git,SVN,github的區(qū)分
SVN也是版本控制系統(tǒng),它是一個本地的版本控制工具谴麦。
git是免費蠢沿,開源的分布式版本控制系統(tǒng),在線的版本控制工具匾效;
只不過git現(xiàn)在更流行舷蟀,現(xiàn)在再用SVN比較落伍。所以面哼,git算是程序員必備技能野宜;
github是基于git來進(jìn)行版本控制,git只是github上用來管理項目的一個工具而已魔策,github的功能不僅僅就這點匈子。
(二)版本控制軟件中Trunk和Branch的區(qū)別:
Trunk---軟件開發(fā)過程中的主線,保存了從版本庫建立到當(dāng)前的信息闯袒。
Branch---軟件開發(fā)過程中的分支虎敦,保存了從版本庫的某一特定點(不一定是版本庫建立時)到當(dāng)前的信息。分支主要用于在不影響Trunk其它用戶情況下進(jìn)行一些關(guān)于新功能的探索性或?qū)嶒炐缘拈_發(fā)政敢,待新功能完善后它也可以合并到Trunk中其徙。
(三)github有什么作用?
學(xué)習(xí)優(yōu)秀開源項目喷户;
多人協(xié)作唾那;
寫作;
個人簡歷:如果你github賬號有不錯的開源項目褪尝,star很多闹获,他就算你的一個強有力的簡歷。
(四) github的理解誤區(qū):
1.英語差恼五,0基礎(chǔ)能學(xué)得會么昌罩?
沒問題的,直接找百度翻譯灾馒,就可以茎用,最好是用谷歌瀏覽器打開,因為自帶谷歌翻譯睬罗,任何英文網(wǎng)頁都能翻譯成中文的轨功。(如下圖所示)
原版的界面是這樣的:(具體講解后面有介紹)
是不是很簡單?所以千萬不要怕看不懂英文而放棄GitHub容达。
2.需要翻墻嗎古涧?
不需要,直接在瀏覽器打開就可以花盐,速度還是很快的羡滑。
二菇爪、開始github之旅
(一)注冊Github
打開瀏覽器,在地址欄輸入地址:github.com,回車柒昏,注冊就不用我說了凳宙,填寫用戶名(郵箱號碼),密碼职祷,點擊注冊github氏涩,然后發(fā)一個郵件到你的郵箱,點擊激活有梆,就OK了是尖。具體的就不截圖了。
(二)登陸Github,看看登陸后的菜單是什么樣的泥耀。
(1) 點擊右上角的sign in(登陸)饺汹,然后輸入賬戶和密碼,點擊登陸就OK了爆袍。詳解如下圖:
(2)看看登陸進(jìn)去的導(dǎo)航欄的組成:
(3)點頭像 --> 選擇 your profile --> 進(jìn)入主頁首繁。
(4)個人主頁的介紹。
(三)現(xiàn)在可以創(chuàng)建倉庫試試看陨囊。
(1)點擊+號弦疮,選擇New repository
(2)創(chuàng)建倉庫
(3)假如創(chuàng)建庫的時候忘記了勾選README那個對勾蜘醋,別著急胁塞,創(chuàng)建好了項目之后是這樣的(關(guān)于各部分都是干嘛的,后文有講解)压语,看下圖:
(4)添加README文檔
(5)添加好了之后啸罢,就會顯示倉庫的詳細(xì)信息了,如下圖有詳細(xì)的講解:
另外那個添加關(guān)鍵字
的操作胎食,由于步驟太多扰才,不方便截圖,我錄制了一個gif厕怜,這里給大家看一下:
(6)回到主頁衩匣,看看我們的庫。
有3種方式回到首頁:
-
1. 點擊你的用戶名粥航,如圖:
2. 點擊右上角的頭像 --> 選擇 your profile --> 進(jìn)入主頁琅捏,其他的和
方法1
一樣的。
-
3. 點擊左上角的github的logo,然后在右邊就可以看到你的所有的庫递雀。
(四)下載git客戶端柄延,clone并提交本地代碼到倉庫里面。
【注意事項:】要把 文件夾顯示后綴名
缀程,以及顯示隱藏文件
這個打開搜吧。
(1)下載git客戶端市俊,打開百度,搜索一下git客戶端滤奈,下載然后安裝就可以了秕衙,認(rèn)準(zhǔn)git,別下錯了僵刮。
git客戶端官網(wǎng)下載地址,點此進(jìn)去鹦牛。
選擇電腦平臺搞糕,如果是Windows,就點擊Windows下載曼追,如果是mac,點擊Mac OS X下載窍仰。
【注意:】如果是windows平臺,點擊了Windows進(jìn)去之后礼殊,會自動彈窗下載驹吮,建議取消,手動去選擇win 32位或者64位的去下載晶伦,免得你32位的電腦卻被下載了64位的git客戶端碟狞。
最后就是安裝了,這個選擇一個路徑婚陪,一直next就安裝好了族沃,安裝好了之后會在桌面有個快鍵方式,如下圖所示泌参。
(2)使用git客戶端下載github的庫脆淹,就拿剛才那個Demo1來說吧,打開Demo1沽一,點擊綠色按鈕盖溺,再點擊小冊子的那個圖標(biāo),表示復(fù)制當(dāng)前git倉庫铣缠,如圖所示烘嘱。(如果你喜歡圖形化界面,還可以安裝一個TortoiseGit攘残,這個不是我現(xiàn)在要講解的重點拙友,有興趣的可以去百度一下怎么使用。)
【注意:】下方有兩個另外下載的方式歼郭,左邊那個是使用github客戶端打開下載遗契,右邊那個是下載zip文件到本地。我以前沒有安裝git客戶端的時候病曾,想下載github的庫都是選擇下載zip到本地牍蜂。
(3)在電腦上某一個英文路徑下漾根,右鍵-->選擇Git Bash Here,然后命令行就彈出來了。
(4)初次使用git命令要設(shè)置郵箱和用戶名鲫竞,以后就不需要了辐怕。
【注意】郵箱和用戶名一定要記住。
設(shè)置郵箱和用戶名
比如郵箱是haha.163.com
名字是haha
命令如下:(注意要加空格)
git config --global user.email "haha@163.com"
git config --global user.name "haha"
(5)輸入 git clone 然后右鍵从绘,把剛才copy的地址粘貼過來寄疏,回車。
比如
git clone https://github.com/XXX/Demo1.git
【注意】git clone 以及https之間都有一個空格 別忘記了僵井。
(6)【修改或者上傳文件怎么辦官疲?】打開下載好的文件夾绑改,假如我新增一個文件(任意文件或者文件夾都是可以的),比如123.txt,隨便加一點東西進(jìn)去,然后保存而晒。
(7)打開剛才clone下來的那個文件夾Demo1,執(zhí)行以下命令鸦难,上傳到倉庫珍语。
git add . 回車(表示添加到本地庫)
git commit -m "新增了一個文件123.txt" 回車(提交更新信息)
git push origin master 回車(推送到遠(yuǎn)程庫的master分支)
經(jīng)過這三個命令 文件就上傳到倉庫中了强衡。
如圖:
(8)更新本地倉庫。
git pull 把遠(yuǎn)程倉庫的項目拉取到本地合呐。如果遠(yuǎn)程庫和電腦里面的是一樣的暮的,機會顯示Already up-to-date,已經(jīng)是最新的庫淌实,如果遠(yuǎn)程庫有最新的青扔,就會下載最新的到電腦里面。
(9)回到github翩伪,刷新一下微猖,就看到最新的內(nèi)容了。
(五)使用ssh進(jìn)行下載和提交代碼
(1) 輸入命令行
ssh-keygen -t rsa -C xxx@xxx.com
生成ssh 中間提示輸入密碼缘屹,直接回車即可凛剥。
注意:xxx@xxx.com換成你的郵箱地址。
如下圖所示:
(2)ssh文件在
C:\Users\Administrator\.ssh
轻姿,其中Users
是你電腦的用戶名犁珠。通過命令ls ~.ssh
可以查看生成的文件』チ粒可以看到生成的id_rsa(私鑰)和id_rsa.pub(公鑰)犁享,如圖所示:
(3)初次使用git命令要設(shè)置郵箱和用戶名,以后就不需要了豹休。
【注意】郵箱和用戶名一定要記住炊昆。
設(shè)置郵箱和用戶名
比如郵箱是haha.163.com
名字是haha
命令如下:(注意要加空格)
git config --global user.email "haha@163.com"
git config --global user.name "haha"
(3)使用命令vi id_rsa.pub
,然后復(fù)制文件內(nèi)容,進(jìn)入github頁面凤巨,Settings
-> SSH and GPG keys
视乐,點擊SSH Keys
后面的綠色按鈕New SSH key
新建一個SSH key,然后在文本框中輸入復(fù)制的內(nèi)容敢茁,然后點Add SSH key
按鈕完成添加佑淀。
(4)測試ssh keys是否設(shè)置成功
使用命令ssh -T git@github.com
看到successfully表示ssh連接成功。如下圖所示:
(5)打開github彰檬,選擇ssh
(6)復(fù)制鏈接到git窗口 進(jìn)行下載伸刃,命令為`git clone git@github.com:XXX/yyyy.git
其中:XXX為github的用戶名,yyy為倉庫名逢倍, 例如我要下載的庫的地址是:
git clone git@github.com:AweiLoveAndroid/MyDocs.git` 下載過程如圖所示:
三奕枝、一些實用的git命令操作
(一)使用git克隆(下載)一個倉庫或單個文件夾
注意:文件夾名可以隨意寫 瓶堕,倉庫地址替換成你想要下載的倉庫地址。
//新建倉庫并進(jìn)入文件夾
git init 文件夾名字 && cd test
//設(shè)置允許克隆子目錄
git config core.sparsecheckout true
//設(shè)置要克隆的倉庫的子目錄路徑 //空格別漏
echo '子路徑名*' >> .git/info/sparse-checkout
//這里換成你要克隆的項目和庫
git remote add origin 倉庫地址
//下載
git pull origin master
(二)關(guān)于git config配置文件的增刪改查命令:
查詢
查詢所有配置文件內(nèi)容
git config --global --list
查詢某個指定內(nèi)容症歇,例如 查詢用戶名
git config --global user.name
增加
增加一個用戶名
git config --global --add user.name jianan
刪除
刪除用戶
git config --global --unset user.name
修改
修改用戶名
git config --global user.name jianan
(三)如何下載github某個單獨目錄(此方法也適用于gitlab 碼云等工具)
- (1)使用Git命令進(jìn)行下載
比如我要在E盤郎笆,新建一個目錄test,里面下載https://github.com/AweiLoveAndroid/CommonDevKnowledge這個項目里面的pic目錄忘晤。
新建文件夾 test
mkdir test
?
打開test文件夾
cd test
?
初始化git
git init
?
將遠(yuǎn)程庫加入到Git Config文件中宛蚓。
git remote add -f origin https://github.com/AweiLoveAndroid/CommonDevKnowledge
在Config中允許使用Sparse Checkout模式:
git config core.sparsecheckout true
告訴Git哪些文件或者文件夾是你真正想Check Out的,你可以將它們作為一個列表保存在.git/info/sparse-checkout文件中设塔。
echo “pics” >> .git/info/sparse-checkout
從你想要的分支中將你的項目拉下來 例如這里是master分支:
git pull origin master
- (2)結(jié)合svn進(jìn)行下載
github上的每一個git版本庫都可以使用svn來操作凄吏,而svn是支持部分檢出的,所以我們可以使用svn來下載闰蛔。如果沒安裝svn痕钢,需要先安裝一下。
例如:我想下載我的git_demo
項目的test
目錄
- (1)在github上點開這個目錄序六,例如:https://github.com/AWeiLoveAndroid/git_demo/tree/master/test
- (2)將上面地址里的tree/master換成trunk任连,然后用
svn co命令
檢出,具體操作示例如下:
svn co https://github.com/AWeiLoveAndroid/git_demo/trunk/test
如果下載了TortoiseSVN
客戶端例诀,直接右鍵svn checkout
,輸入地址随抠,確定就可以了。 - (3) 如果不是master分支繁涂,而是其他分支拱她,比如develop分支,比如:
https://github.com/AWeiLoveAndroid/git_demo/tree/develop/test
檢出也是一樣的道理扔罪,只要把剛才的地址改成/trunk/
換成/branches/develop/
就行了秉沼。
也就是https://github.com/AWeiLoveAndroid/git_demo/branches/develop/test
- (4) 修改之后,如果你想提交代碼到git倉庫,可以使用
svn ci
命令提交到git倉庫氧猬,輸入自己github的用戶名密碼就可以提交到github了背犯。
四、git使用中遇到的錯誤集錦
(一)git clone 下載速度0bytes 出現(xiàn)error: RPC failed; curl 18 transfer closed with outstanding read data
【原因:】由于Http協(xié)議錯誤盅抚,當(dāng)Clone的時候漠魏,因為curl的postBuffer默認(rèn)值太小的原因,而項目可能本身比較大妄均,所以下載失敗柱锹。
【解決方案:】
打開git命令行 輸入 git config --global http.postBuffer 524288000
,然后可以輸入 git config --list
查看剛才的設(shè)置是否生效丰包。
git config --global http.postBuffer 524288000 命令的意思:相當(dāng)于把curl的postBuffer的值修改的大一些禁熏。524288000的單位是B,相當(dāng)于500MB邑彪。
(二)git pull 報錯:git - error: RPC failed; curl 18 transfer closed with outstanding read data remaining
報錯信息:
fatal: The remote end hung up unexpectedly
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
【原因:】
由于Http協(xié)議錯誤瞧毙,當(dāng)Clone的時候,因為curl的postBuffer默認(rèn)值太小的原因寄症,而項目可能本身比較大宙彪,所以下載失敗。
【解決方案:】
打開git命令行 輸入 git config --global http.postBuffer 524288000
有巧,然后可以輸入 git config --list
查看剛才的設(shè)置是否生效释漆。
(三)git push出現(xiàn)的錯誤,RPC failed; curl 56 SSL read: error:00000000:lib(0):func(0):reason(0), errno 10053
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
error: RPC failed; curl 56 SSL read: error:00000000:lib(0):func(0):reason(0), errno 10053
【原因分析:】
可能是上傳的文件太大篮迎,緩存不夠男图,默認(rèn)只有1M。
【解決方案:】
打開git命令行 輸入 git config --global http.postBuffer 524288000
到此甜橱,基本的github的使用基本講完了逊笆,是不是很簡單,不到半個小時就學(xué)會了岂傲,快去用起來吧览露。更多關(guān)于git的使用,請查看git官網(wǎng)的中文文檔譬胎,點此進(jìn)入→ https://git-scm.com/book/zh/v2
【原因:】由于Http協(xié)議錯誤差牛,當(dāng)Clone的時候,因為curl的postBuffer默認(rèn)值太小的原因堰乔,而項目可能本身比較大偏化,所以下載失敗。