版本控制在實驗科學的功用已經越來越重要。如果比喻可重製研究是一種創作概念,版本控制是實現概念的實作程序,有了版本控制系統維護的專案,等於為專案內的檔案留下重要時刻的生命紀錄。使用版本控制系統維護的可重製研究成果,讀者可以檢視紀錄驗證每一份檔案的成長過程,可說是經驗主義知識論的最高境界。
越來越多程式設計者與開源運動人士( Open Source )接受Git,除了管理專案內容的成長紀錄,分散式架構是使其廣為歡迎的關鍵,同時也是無程式設計知識的人士上手的重要關卡。
本章說明Git的安裝及設定、github的註冊以及RSA key的設定。後續R專案的進階管理以實況情境介紹Git指令的使用方法,以及透過github與他人協同合作。本章與後續章節都是幫助未有使用Git與github經驗的讀者,有一個學習的開始,內容是筆者從Pro Git與30 天精通 Git 版本控管兩本電子書,以及個人使用經驗濃縮而成。
這一節寫給有意學習透過github建立與維護R專案的讀者。如果目前還無意學習這種方法,讀者可以跳過這一節。
讀者如果對於獨自學習沒有信心,可以找尋有經驗的使用者協助,常用Git的使用者多數是樂於分享知識的開源人士,在個人時間與能力允許的情況下,都樂於幫助他人成長。
git add
-> git commit
)建立與更新紀錄。即使是同一份資料夾,也不是每次更新後,所有檔案都要在Git系統建立紀錄。D:/Apps/Git
。git bash
示範設定與操作。git bash
視窗,如下圖範例。git bash
類似windows的command line
,可以對實體檔案進行作業系統的管理動作,不過是linux指令(回憶Git的生父是誰),例如ls
,mv
等。Git系統的指令都有git
開頭,稍後設定Git系統的範例可嘗試。確認要建立的身份識別資訊,在git bash
輸入以下指令:
git config --global user.name "your_github_name" ## your_github_name換成你的github註冊帳號
git config --global user.email "yours@email.com" ## yours@email.com換成你的github註冊電子郵件
建立之後隨時執行以下指令,查詢已存在的設定檔內容,回傳訊息有已建立的身份識別資訊:
git config --global --list
git bash
或應用程式(如Rstudio)提供的版本控制指令,同步本機與github的內容。.ssh
的內容,同時打開git bash
,切換到這個目錄。如下圖示範,筆者的筆記型電腦使用者名稱是CSC
:git bash
輸入第一個指令,開始設定RSA key,下圖是以筆者使用的e-mail為例,請讀者換成自已建立於Git系統的e-mail:id_rsa
,有經驗的使用者如果有不只一個雲端資料庫,會在此步設定另一個檔案。若維持預設,按Enter即可:.ssh
資料夾也出現id_rsa
和id_rsa.pub
兩個檔案:git bash
輸入下圖的指令:id_rsa.pub
的內容到系統剪貼薄,使用下圖示範的指令不用再另外開啟檔案複製內容:Add SSH key
,就會出現最下方的對話框。因為這是與筆者的筆電連動,所以Title取名CSC-Laptop
。將游標移到Key
下方的對話框(圖中最下面的馬賽克),貼上剛才複製到系統剪貼薄的id_rsa.pub
內容。確認完成就按對話框下面的按鈕(未截到)。git bash
,輸入下圖最後一行示範的指令:git bash
印出的fingerprint和github上的內容是否一致。如果無誤請打yes
繼續: