1. 程式人生 > >更進一步掌握Git與GitHub

更進一步掌握Git與GitHub

(一)熟悉Markdown語法

由於在github上面的文字編輯是完全基於Markdown語法的,如果你想知道什麼是Markdown語法,請百度或者Google;如果你想練習Markdown語法,那麼請戳這裡,老老實實,按部就班敲一敲,很快就能上手,相信你也會很快愛上它,因為它在很大程度上讓我們節省了大量的時間和精力,使我們專注於內容,而不是各種花裡花俏的排版。<br>

(二)建立應用場景

都說掌握一個工具,掌握一門程式語言最好的方式就是不斷地實踐,然而大部分無人指點的新手根本無法準確的知道這個工具或者這門程式語言到底能幹什麼,從哪下手還真是個問題??長期下來,自然而然對其就會失去興趣。

相信大部分剛接觸web開發的新手(當然包括我啦),都十分渴望將自己開發的網站部署到網上,能隨時隨地讓自己或讓別人進行瀏覽。除了購買網路主機能夠實現這一點,利用Github也可以。在這一方面,Github無疑是最好的選擇,理由是:簡單、免費、能夠充分展示自己。在前面一篇手記裡我展示瞭如何將自己的網站快速部署到Github上,所以在這就不做重複的敘述了。<br>

相信很多有經驗的人都能看出新手教程那篇未免過於囉嗦,甚至有些步驟完全沒必要。但是,凡事都得有個過程,得一步步來,熟悉後的步驟為:

- New repository
- git clone
- cd 
- git add .
- git commit -m "內容"
- git pull
- git push

在這個過程中有兩個點需要稍微解釋下:<br>
1、選擇Initialize this repository with a README,是為了初始化一個README檔案,看字面意思就知道。<br>
2、在Initialize this repository with a README下方有兩個選項,第一個新增規則,表示git push應該忽略掉哪些檔案,我們可以填node,忽略那個體積龐大的node_modules檔案;另一個是選擇哪項開源協議的意思,一般填寫MIT。<br>
3、選擇master branch,是為了給專案一個地址,這樣才能通過url訪問到你的網站。<br>

(三)Github常用板塊說明

Overview :
翻譯成中文就是“概述”的意思,但是實際上它相當於你的社交賬號的首頁,上面展示了你的一些專案和基本資訊。你可以點選customize your pinned repositories 把你最為得意或者最想讓其他人看到的專案展示出來。

Repositories:
根據字面意思可知,這是你的專案倉庫,你的所有專案都包含在裡面(包括從別人那裡fork來的專案)。

Stars:
這是你點贊過或者收藏的專案,假如你認同一個人的專案,無妨給個stars,假如你想對一個人的專案肆無忌憚的動手動腳,那麼就將該專案fork下來。

Follwers:
根據字面意思可知,這是你的跟隨者,也就是關注你和認同你的粉絲。

Follwing:
根據字面意思可知,這是你跟隨的人,也就是你所關注和認同的人。<br><br>

(四)利用Github進行學習的好處

其實感覺現在自己也並沒有充分利用到這個全球最大的同性交流平臺,不過還是要談談自己在這裡所得到的成長:<br>

1、開闊眼界:
在這裡真的見到了太多的對程式設計熱情和擅長的人,他們的專案以及所記錄的事情絕對會讓你重新認識何謂程式設計愛好者、何謂技術人生。如何關注牛人?其實途徑有非常多,在這裡推薦一個自己欣賞的人jawil。然後你可以根據他所關注的人進行選擇關注更多的牛人,從而學習他們,提升自己。

2、學會總結:
也不知道為啥,現在覺得在Github上做相關的總結是十分令人身心愉悅的事情,在這過程中也慢慢地促進了自己的成長。

3、閱讀英文文件:
不說了,都是被逼的。逼著逼著,突然就喜歡了。。。<br>

(五)如何更好的玩耍Github?

1、下載各種有用的外掛
蘿蔔青菜,各有所愛,這個還是大家自行搜尋吧。之前我用的是jawil開發的GayHub外掛,用來優化Github的閱讀體驗。

2、使用emoji
這是Github支援的表情列表,能夠讓你的Github擁有一定騷動性,請檢視表情列表大全<br>

(六)當使用git上傳專案到GitHub老是要輸入賬號密碼怎麼破?

其實導致上面的原因是線上與線下的環境並沒有打通,只要我們建立並配置好了SSH-key那麼問題就會迎刃而解,其中的原理就是線上下建立一個私鑰,線上配置好了一個公鑰,私鑰和公鑰進行連線配對,這樣我們在上傳和下載程式碼的時候就不用賬號和密碼了。關於如何建立並配置GitHub的SSH-key網上有非常多的教程,大家自行搜尋,我就不一一說明。

當你配置好SSH-key後,那麼在github上建立的專案中,在clone or download那裡就能選擇是“Use HTTPS”還是“Use SSH”將專案下載到本地上。如果使用的是SSH,那麼在git push的時候就不用輸入賬號與密碼;使用HTTPS方式的話,可能每次git push或者git pull的時候就要輸入賬號和密碼了,十分不方便。

上面是一種比較複雜的辦法,下面來說一種簡單的,只要在命令列中輸入:

git config --global credential.helper store

那麼就會在你本地生成一個文字,上邊記錄你的賬號和密碼。然後你使用上述的命令配置好之後,再操作一次git pull,然後它會提示你輸入賬號密碼,這一次之後就不需要再次輸入密碼了。

(七)GitHub上分支的作用以及建立

在多人協作開發中,分支的作用十分明顯,因為能夠十分清楚的知道目前的分支內容與上次的分支內容到底改變了什麼,利於我們快速還原始碼和尋找bug。下面具體介紹下建立一個分支的過程:

  • 假裝你已經熟悉我上面所說的內容,在GitHub上建立了一個專案,並且git clone到本地
  • 步驟一:進入本地git clone的專案地址;
  • 步驟二:試著新建一個文件並將該文件push到GitHub上,記得文件上要有內容;
  • 步驟三:在git命令視窗建立一個本地分支(git branch 分支名);
  • 步驟四:切換到新的分支(git checkout 分支名)
  • 步驟五:修改文件內容,並且重新上傳到GitHub中;
  • 步驟六:在最後一步上傳命令中得修改為git push origin 分支名
  • 步驟七:到GitHub對比下這兩個分支的內容,細細體會下分支對日常開發起到的作用。
  • 參考資料:點選我呀

如果你需要將該分支的內容和主分支的合併,那麼只需這麼做就可以了:

  • 首先是切換到主分支(git checkout master),主分支名預設為master;
  • 接著是合併內容(git merge origin/分支名);
  • 最後是提交內容(git push),假如這步有錯誤的話說明你線上主分支內容可能有變化,先使用git pull,r然後再使用git push<br>

(八)git回滾到任意版本

在開發專案的時候,往往在完成一個功能或者模組的時候,都會把執行良好的程式碼push到雲端。這樣我再繼續往下開發的時候,當發現當前程式碼變得不可維護的時候,我們能夠回滾到任何一個已經提交的版本程式碼,下面是相關步驟:

  • 檢視已提交過的程式碼: git log
    commit 9754f375585f584498fcaecc2ad5852c98896 (HEAD -> zxfHome, origin/zxfHome)
    Author: James Wenming <***[email protected]>
    Date:   Thu Aug 9 13:45:18 2018 +0800
    add
  • 回滾到指定程式碼版本: git reset --hard commit值(commit值指的是git log後每個版本里面commit的值)<br>

(九)git對他人的程式碼進行修改

  • 步驟一:使用命令git checkout 分支名,切換到需要被修改的分支
  • 步驟二:使用命令git pull origin 分支名:分支名,將最新的線上分支程式碼同步下來
  • 步驟三:之後就可以修改這個分支的程式碼然後再git push

(十)git push origin "分支名" 失敗了怎麼辦

造成上面的錯誤往往是因為在push之前沒有將最新的線上程式碼pull下來,如何用命令來改正這個錯誤呢?其實我暫時也沒發現很好的辦法,因為在執行push命令的時候往往已經git add .和git commit -m "內容", 如果要pull最新的線上程式碼,那麼就必須把已經暫存到線上的程式碼全部恢復下來,就是這一步讓我不知手措。<br>

下面給出我的一個笨方法:

  • 將更新的程式碼複製出一份儲存在本地
  • 接著使用git log和git reset --hart commit值進行程式碼回滾
  • 然後再使用git pull origin 分支名:分支名
  • 把複製出來的程式碼再貼上回線上最新的專案中
  • 最後就是:git add .、git commit -m "內容"、git push origin 分支名

轉載自:  https://www.imooc.com/article/72183