github極簡指南
入生信的坑已經3年多了,但開始github的旅程才一年多,起初主要是為了建立bioconductor中文社群而學習的,現在也在自己的github上面分享了不少程式碼,有一些心得體會,歡迎大家前往github star我的專案
當初想了解github的時候看到過不少教程,始終覺得不夠透徹,還是分享一下自己的心得吧。 首先要明白為什麼要用github,一般就4類需求啦:
- 僅僅是為了檢視拷貝別人的程式碼,那麼其實沒必要用github,下載程式碼即可。
- 需要分享程式碼,那麼建立一個賬戶把程式碼上傳即可。
- 一個長期的程式設計專案,就略微有點麻煩,會涉及到程式碼備份,回滾,撤銷等各種git指令,其實大部分人不需要學這東西。我就從來沒有用過回滾操作。
- 如果是團隊合作,那麼更加複雜了,需要買一本git操作書籍開學習,並且經常團隊會議,學習幾十個小時才行。
大部分人只需要學會把自己的電腦跟自己的github賬戶關聯,然後新建一個git專案跟github裡面的倉庫關聯即可。
用 git clone
複製一個 Git 倉庫
大多數人的需求僅止於此啦,就是想複製一個專案,看看程式碼,你就可以克隆那個專案。 在終端執行 git clone [url],[url] 為你想要複製的專案,就可以了,比如下面:
上述操作將複製該專案的全部記錄,讓你本地擁有這些。並且該操作將拷貝該專案的主分支, 使你能夠檢視程式碼,或編輯、修改。
預設情況下,Git 會按照你提供的 URL 所指示的專案的名稱建立你的本地專案目錄。 通常就是該 URL 最後一個 / 之後的任何東西。
這個時候跟github本身沒有關係,因為你只是下載了檔案而已,並沒有涉及到提交程式碼。如果要提交程式碼,需要把自己的電腦跟github關聯,並且關聯指定的倉庫。
安裝git,然後把自己的電腦關聯自己的github賬戶:
去github官網建立賬號的教程我就不寫了,有了賬號密碼就需要跟自己的電腦關聯起來,這樣github網頁才會認可你,允許你上傳你的程式碼。
如果是windows電腦,那麼需要下載git軟體才可以,軟體下載地址http://git-scm.com/,安裝好git就可以開啟終端了。
如果是mac或者linux,那麼開啟終端即可,一般都預設安裝了git軟體。
終端,就是下面這樣的黑白命令列,開啟之後在終端裡面執行命令: ssh-keygen -t rsa -C "[email protected]"
可以看到 home目錄
下面多了一個.ssh資料夾
用notepad++等高階文字編輯器開啟那個public key檔案,把裡面的內容複製到自己的 github網頁
裡面的ssh keys裡面
然後就成功啦,如下 ssh -T [email protected]
,可以用測試一下
配置本地使用者和郵箱
使用者名稱郵箱作用 : 我們需要設定一個 使用者名稱
和 郵箱
, 這是用來上傳本地倉庫到GitHub中, 在GitHub中顯示程式碼上傳者;
使用命令 :
git config --global user.name "jmzeng1314" //設定使用者名稱 git config --global user.email "[email protected]" //設定郵箱
到此Git客戶端已安裝及GitHub配置完成,現在可以給GitHub傳輸程式碼了。
客戶端把本地資料夾和github倉庫關聯
github的客戶端非常之多,很多人喜歡github desktop,不過我比較熟悉的Rstudio,因為我喜歡R語言。
Rstudio客戶端的global選單裡面有設定github賬號關聯的方法,因為我們電腦本來就已經關聯了,這個就略過哈。
首先在自己的github網頁裡面新建同樣的空的project,然後去自己剛才在本機用Rstudio新建的資料夾裡面:
因為是空白倉庫,所以直接進入終端,然後進入專案資料夾裡面把本地檔案上傳到指定的即可。
$git init //初始化$git add . //把所有檔案加入到索引(不想把所有檔案加入,可以用gitignore或add 具體檔案,見下文)$git commit //提交到本地倉庫,然後會填寫更新日誌($git commit -m “my first vesion of ...”)$git remote add origin https://github.com/jmzeng1314/test.git //增加到remote$git push origin master //push到github上
記住要在github網站裡面新建的是空白的倉庫哦。
這樣就把網頁版github和本地的資料夾聯絡起來了,以後要修改了這個程式,只需要點選commit+push即可,如果是網頁版的程式被修改了,就先pull一下。
當然,其實對大部分人來說,意義不大,因為大家喜歡命令列的,不是很喜歡這個滑鼠點選來進行同步。命令列就需要看下面的教程啦。 https://www.r-bloggers.com/rstudio-and-github/ http://r-bio.github.io/intro-git-rstudio/
命令列把本地資料夾和github倉庫關聯
首先在自己的github網頁裡面新建一個空的倉庫,然後執行下面的程式碼即可!
cd ~/test //到test目錄,本地目錄名與repository的名字不一定相同git init ##初始化git add . ##把所有檔案加入到索引(不想把所有檔案加入,可以用gitignore或add 具體檔案,見下文)git commit -m 'aha' ##提交到本地倉庫,然後會填寫更新日誌($git commit -m “my first vesion of ...”)git remote add origin https://github.com/jmzeng1314/test.git ##增加到remotegit push origin master ##push到github上
記住一定要是空白的倉庫哦,如果萬一你新建倉庫的同時建立了readme檔案,就直接clone好了,走下面的流程。
github進階操作。
其實就是本地的程式碼有所修改,需要同步到github而已,又或者github網頁裡面的程式碼被修改了,需要同步到本地。如果是多個人合作,那麼別人會修改你的程式碼,所以每次你上傳程式碼之前,都需要先把github網頁裡面的程式碼先拉下了,再合併後上傳自己的。
1.更新專案(新加了檔案), 這個是最高頻需求
$cd ~/hello-world$git add . //這樣可以自動判斷新加了哪些檔案,或者手動加入檔名字$git commit //提交到本地倉庫,不加引數會提示,注意:^=Ctrl,按照提示來就好了~~~$git push origin master //不是新建立的,不用再add 到remote上了
2.更新專案(沒新加檔案,只有刪除或者修改檔案): $cd ~/hello-world $git commit -a //記錄刪除或修改了哪些檔案 $git push origin master //提交到github
3.忽略一些檔案,比如*.o等:
$cd ~/hello-world$vim .gitignore //把檔案型別加入到.gitignore中,儲存
然後就可以git add . 能自動過濾這種檔案
4.clone程式碼到本地:
$git clone https://github.com/jmzeng1314/test.git
5.假如本地已經存在了程式碼,而倉庫裡有更新,把更改的合併到本地的專案:
$git fetch origin //獲取遠端更新$git merge origin/master //把更新的內容合併到本地分支
這個也是最高頻需求
6.撤銷
$git reset
7.刪除
$git rm * // 不是用rm
裝逼請看這個:http://www.oschina.net/question/1397765_166368
安裝git工具看這個:http://www.ihref.com/read-16377.html
上傳自己的程式碼看這個:http://blog.csdn.net/hanhailong726188/article/details/46738929
一些開發過程的注意事項:http://blog.csdn.net/u011068702/article/details/49531167
簡介完整教程:http://caibaojian.com/use-github.html