github初學者 使用筆記

github

從記錄顯示,我從2014年8月註冊github以來,其實一直很少使用,所以相關的安裝步驟與指令常常是每當需要時才臨時抱佛腳請google大神給予指示。

我想乾脆寫一篇簡單的安裝與指令筆記,留給自己日後參考用,才能日漸累積出對於git指令之熟習能力。也為了寫這篇日記,自己稍認真地重頭試了一次又一次的新手步驟。

1. 安裝git
叫出終端機,在命令列分別下這二行指令
sudo apt-get update
sudo apt-get install git
(這時應該已經順利在電腦上安裝好了git,不妨在命令列打上:git --version  可以檢查自己安裝的版本是多少)

2. 設定git
在命令列下分別打入:
git config --global user.name “Your Name” #Your Name = 自己想取的名字,通常會和github 帳戶名一樣
git config --global user.email “youremail@domain.com” #youremail@domain.com , 希望讓其它人佑知道作者聯絡方式的電郵,通常也會和註冊github所用的email 一玫。
完成設定後,在命令列打入: git config --list, 就會出現
name = Your Name
email = youremail@domain.com
顯示到目前為止一切順利

3. SSH Key(設定這個是可以省去使用https方法每回都得再輸入帳號密碼的麻煩。當然也可略過改採https方式)
接下來就是要在自己目前使用的電腦上產生一組給github的公鑰,好讓遠端的github 核對加密鑰匙正確後,才會放行資料檔案的修改同步權限,不致造成別人到自己gibhub 資源庫裏亂搞的情況。
3.1. 在命令列打上: ssh-keygen -t rsa -b 4096 -C "your_email@example.com" #記得把your_email@example.com 改成自己詿冊時所留的電子郵件
終端機出現:Enter file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
(無須輸入,直接按「enter」即可)
終端機出現:Enter passphrase (empty for no passphrase): [Type a passphrase]
(要求輸入一組密碼,請依個人喜好習慣輸入密碼後再按「enter」後,命令列會再請我們再輸入一次確認二次輸入的密碼相吻合)
Enter same passphrase again: [Type passphrase again]
3.2 將新產生的加密鑰匙加入SSH管理單上
在命令列打上:ssh-add ~/.ssh/id_rsa
3.3 用編輯軟體打開 ~/.ssh/id_rsa.pub 這個檔案,複制檔案裏的全部內容。
3.4 到github 網頁上的個人設定中(personal settings)選擇「SSH Keys」,新增一組「SSH Keys」
title : 打上自己可以辨認的機器名稱
key: 貼上前一步驟中 .ssh/id_rsa.pub 檔案內容。

如果不使用SSH key方式,也可以另用https網址資訊,但這個方法會在每次連到github時詢問你的帳號密碼。

4. 新建repository(檔案庫)
4.1 在自己的github 網頁上,新增一個repository (假設該檔案庫名稱為「testdir」)
4.2 在自己電腦的命令列上,輸入git init testdir #即為在 git init之後加入自己卻在電腦上初始化一個git repo檔案夾(名稱 為testdir)。則會發現電腦上自動生成了一個testdir資料夾。可以進一步在此檔案夾下的命令列中打上:git status, 查看狀態。
4.3 繼續此檔案夾下的命令列中打上:git remote add origin git@github.com:yourname/testdir.git # yourname = github帳號

5. 提交檔案到 github 遠端 repository (把自己電腦上的檔案放上github)
5.1 在欲上傳的檔案夾目錄下,先在命令列打加入欲上傳到github的檔案例如要上傳"text.txt"這個檔案,即輸入
git add test.txt
如果要上傳此檔案夾下所有檔案與資料夾,則打入: git add . (注意那個".")
5.2 在命令列打入: git commit -m "first commit" # -m "XXXXXXX"是指註記的資料,換句話說,不是一定要打first commit ,使用者可以輸入任何要讓自己看得懂的標示資訊.
5.3 在命令列打入: git push
5.4 如果要取消本地與遠端資源庫之間的連結,重新設定初始化則是:
rm -rf .git  #刪除原有git檔
git init  #再次初始化本地資料目錄

6. 把遠端 repository 抓回自己的電腦
命令列下打: git clone git://github.com/schacon/grit.git #git:// 之後的網址位置通常就是想抓 repository 的HTTPS 资料,該 repository 不一定得是自己名下的repository,github上公開的repository都可以抓下來。
有時候,雖然本地資料夾已與遠端git建立初始化的同制,但如果本地端的資料和遠端不同,通常在push時,會傳回要求先進行完pull(拉回)的動作,而這個pull也帶有一點clone的效果,即輸入以下指令:
$ git pull ...
##$ 為要拉回的遠地端git repository 的https或SSK網址,如果省略此參數的話,會對以origin命名的數據庫執行
## 指定要pull的分支,沒此參數的話,則會以master 分枝進行拉回。

7. 分享自己或複制他人的repository
目前我都直接先在github 網站上fork他人釋出的repository到自己名下。因為對他人的專案並沒什麼貢獻機會,所以還沒認真學習如何pull request 之類進一步更高階的指令。待日後真的有透過github 和他人協做專案的經驗再來繼續整理吧。

8. 個人使同一個帳號.但在不同本地端電腦如何進行作業
以我自已的情況,比較會遇上的狀況是:在二台電腦之間,如何地協調遠端git repository的更新。這部份我是參考了這本git 線上教學手冊中的:遠端一人或多人合作開發-單分支。若第一台電腦已按上面4, 5步驟作好了遠端資源庫的git連結與上傳,則在第二台電腦上操作時,先利用步驟6 將git遠端的資源庫抓回到第二台電腦端的工作目錄下。然後在此工作目錄中,有哪些是經過修放的檔案,則再使用 git add ; git commit 方式來新增與註解,最後再下:git push origin master 這樣就可以利用第二台電腦上傳到遠端伺服器上,保有最新變動更改或新增的檔案囉。而這時候,原本第一台電腦中的檔案版本與內容當然和遠地端有所差異,若希望能維持一致,則在第一台電腦的工作目錄下操作此指令:git pull origin master, 就會把遠端資源庫與本地第一台電腦的工作目錄完成同步。而這樣保持了遠端與本地端第一台電腦之間的檔案版本一致,才不會再接下來若在第一台電腦上又作了什麼更變後,push到遠端時出現異常而無法成功的戕況。

至於其它進階的:建立分支,處理版本衝突,多人合作等狀況,因為我目前幾乎沒什麼機會遇上,所以就先不管它了。

1 意見:

Alexander said...

Even after landing your first developer job, when it comes time to move on or work on a side project, you might not want to have your work out, available for anyone or for your current employer to see and make assumptions out of. this website

My Instagram