開發(fā)工具總結(jié)(3)之Git及GitHub快速入門圖文全面詳解

版權(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的博客

github紀(jì)念品

目錄:

一踏志、入門必備知識
(一)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)航欄的組成:

↑ 導(dǎo)航欄的組成

(3)點頭像 --> 選擇 your profile --> 進(jìn)入主頁首繁。

↑ 點擊your profile 進(jìn)入主頁

(4)個人主頁的介紹。

↑ 個人主頁的介紹
(三)現(xiàn)在可以創(chuàng)建倉庫試試看陨囊。

(1)點擊+號弦疮,選擇New repository

點擊 + 號,新建倉庫

(2)創(chuàng)建倉庫

創(chuàng)建倉庫

(3)假如創(chuàng)建庫的時候忘記了勾選README那個對勾蜘醋,別著急胁塞,創(chuàng)建好了項目之后是這樣的(關(guān)于各部分都是干嘛的,后文有講解)压语,看下圖:

添加README文檔

(4)添加README文檔

添加README文檔

(5)添加好了之后啸罢,就會顯示倉庫的詳細(xì)信息了,如下圖有詳細(xì)的講解:


倉庫的詳細(xì)講解

另外那個添加關(guān)鍵字的操作胎食,由于步驟太多扰才,不方便截圖,我錄制了一個gif厕怜,這里給大家看一下:

github給倉庫添加關(guān)鍵字.gif

(6)回到主頁衩匣,看看我們的庫。

有3種方式回到首頁:

  • 1. 點擊你的用戶名粥航,如圖:

    方式1

  • 2. 點擊右上角的頭像 --> 選擇 your profile --> 進(jìn)入主頁琅捏,其他的和 方法1 一樣的。

方式2
  • 3. 點擊左上角的github的logo,然后在右邊就可以看到你的所有的庫递雀。
    方式3
(四)下載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客戶端碟狞。

手動選擇32位還是64位下載

最后就是安裝了,這個選擇一個路徑婚陪,一直next就安裝好了族沃,安裝好了之后會在桌面有個快鍵方式,如下圖所示泌参。


git快捷鍵

(2)使用git客戶端下載github的庫脆淹,就拿剛才那個Demo1來說吧,打開Demo1沽一,點擊綠色按鈕盖溺,再點擊小冊子的那個圖標(biāo),表示復(fù)制當(dāng)前git倉庫铣缠,如圖所示烘嘱。(如果你喜歡圖形化界面,還可以安裝一個TortoiseGit攘残,這個不是我現(xiàn)在要講解的重點拙友,有興趣的可以去百度一下怎么使用。)

image.png

【注意:】下方有兩個另外下載的方式歼郭,左邊那個是使用github客戶端打開下載遗契,右邊那個是下載zip文件到本地。我以前沒有安裝git客戶端的時候病曾,想下載github的庫都是選擇下載zip到本地牍蜂。

(3)在電腦上某一個英文路徑下漾根,右鍵-->選擇Git Bash Here,然后命令行就彈出來了。

右鍵選擇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之間都有一個空格 別忘記了僵井。

使用clone命令下載倉庫

(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)容了。

最新的內(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)值太小的原因堰乔,而項目可能本身比較大偏化,所以下載失敗。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末镐侯,一起剝皮案震驚了整個濱河市侦讨,隨后出現(xiàn)的幾起案子驶冒,更是在濱河造成了極大的恐慌,老刑警劉巖韵卤,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件骗污,死亡現(xiàn)場離奇詭異,居然都是意外死亡沈条,警方通過查閱死者的電腦和手機需忿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蜡歹,“玉大人屋厘,你說我怎么就攤上這事≡露” “怎么了汗洒?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長父款。 經(jīng)常有香客問我溢谤,道長,這世上最難降的妖魔是什么憨攒? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任世杀,我火速辦了婚禮,結(jié)果婚禮上浓恶,老公的妹妹穿的比我還像新娘。我一直安慰自己结笨,他們只是感情好包晰,可當(dāng)我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著炕吸,像睡著了一般伐憾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上赫模,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天树肃,我揣著相機與錄音,去河邊找鬼瀑罗。 笑死胸嘴,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的斩祭。 我是一名探鬼主播劣像,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼摧玫!你這毒婦竟也來了耳奕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎屋群,沒想到半個月后闸婴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡芍躏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年邪乍,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纸肉。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡溺欧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出柏肪,到底是詐尸還是另有隱情姐刁,我是刑警寧澤,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布烦味,位于F島的核電站聂使,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏谬俄。R本人自食惡果不足惜柏靶,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望溃论。 院中可真熱鬧屎蜓,春花似錦、人聲如沸钥勋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽算灸。三九已至扼劈,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間菲驴,已是汗流浹背荐吵。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留赊瞬,地道東北人先煎。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像巧涧,于是被迫代替她去往敵國和親榨婆。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,573評論 2 353

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理褒侧,服務(wù)發(fā)現(xiàn)良风,斷路器谊迄,智...
    卡卡羅2017閱讀 134,651評論 18 139
  • 十天前我認(rèn)識了一富士康工程師,對方以智慧的談吐烟央,干凈的外表取得良好印象统诺,第二次見面更是感覺超好…慢慢覺得一些差距對...
    sherry宏珊閱讀 229評論 0 0
  • 有兩天沒有做亂語了,第一階段剛開始?xì)g快地跟著音樂哼了起來疑俭,到后面慢下來了粮呢,啊一哈之間的吟唱中切換,在想樓下路...
    紫蓮閱讀 251評論 0 0
  • 第一次看見流星钞艇,是和你一同走在校園的跑道上啄寡。寒冬臘月,看臺冷清哩照,那時你因為某個笑話還是某個八卦而拉著我說個不停挺物,而...
    李北生閱讀 346評論 0 2
  • 周日 想說能不能遲到一小時 朱老師說要請假 呵呵那我還不如請一個下午 真的感覺超不爽! 應(yīng)該是因為不喜歡這份工作 ...
    角落蜷縮閱讀 157評論 0 0