# Git學習筆記01 ###### tags: `Git` 由於疫情緩解,開放實體上課,於是報名了5xRuby的實體BootCamp,給自己三個月的時間好好坐在教室學習。2021/10/18~2022/1/XX 表定上課時間10:30~16:30,但由於同學們都有辦公室門禁的權限,也有不少同學09:20就到教室;另外也可留下來自習與問問題至19:00。 本屆參加的同學約含我20位,且來自不同專業背景,但多半是服務業相關,受COVID-19影響收入甚鉅,或者是遇到薪資發展天花板,想要轉換跑道才來報名課程。 簡單的破冰遊戲與環境介紹後 (喔對了教室有兩隻貓,一隻橘色的比較親人) 便迎來了下午的正式課程。 - 註:強烈建議報名Astro Camp 的同學先將補習班預先提供之線上授課影片看過1~2輪,尤其是非資訊背景的人更要將看影片中有疑問的地方查清楚,有需要可提前搭配 [CS50](https://www.youtube.com/c/cs50) 或者 [計算機概論](https://www.youtube.com/watch?v=EDYjPpn1OmE&list=PLil-R4o6jmGiDc1CC8PyBbasl8kR9r8Wr&ab_channel=%E8%87%BA%E5%A4%A7%E7%A7%91%E5%AD%B8%E6%95%99%E8%82%B2%E7%99%BC%E5%B1%95%E4%B8%AD%E5%BF%83CASE) 服用 *** ### 為什麼要學Git? 1. 不用重複存取檔案:有過坐辦公室工作經驗的人應該都能體會一份簡報要改N次,從V1-V20都有,另外我也遇過像是「期中報告_final09」這種final非final的窘況。 2. 版本變化一目瞭然:一般的檔案修改,除非利用追蹤修訂的功能,不然很難看得出檔案有哪邊經過修改,但Git可以呈現專案中各個檔案的增減與內容的變化,有利於多人協作並且回溯開發歷程,而且還會留下證據 !! 3. 分散式檔案管理:雖然目前將Git檔案push至Github伺服器是主流,但Git本身是採取分散式檔案管理的機制,因此團隊成員可在手邊先將各自的工作寫好,在經過成員們的code review (套用在GitHub就是Pull Request)來決定要將那些專案更新到共同的雲端。 (怎麼有點分散式帳本的味道XD) #### 一、環境建置與安裝 ##### 1. 確認是否電腦有安裝:在終端機輸入 ``` which git ``` 確認git有安裝在電腦某路徑(沒安裝就會出現not found),如果沒找到就到git-scm去下載,Mac照步驟就好;Windows 則需要看,是要另外安裝在WSL的linux系統還是windows環境,但以目前學習的情況先安裝在外層windows環境就好(可透過windows商店下載)。 ##### 2. 安裝好之後確認版本 ``` git --version ```` ##### 3. 下載 Sourcetree GUI 軟體 可以去[這裡](https://www.sourcetreeapp.com/)下載 ##### 4. 在終端機輸入基本資料 ``` git config --list git config --global user.name "名字" git config --global user.email "email" ``` #### 二、初始化 ##### 1. 在想要的資料夾初始化git ``` pwd //檢視目前位置 cd /mnt/d //change directory mkdir happydog //新增名叫happydog的資料夾 cd happydog git init //初始化 git 目錄 ls -al //查看資料夾內所有檔案(包含隱藏檔) touch doge.html //新增一個doge.html檔案 ``` *以下謹慎使用* ``` rm -rf .git // 移除 -重複每一層強制 檔案名 (-rf很可怕不要亂用) ``` ##### 2. 新增修改任何檔案後必須經過add 跟 commit 的步驟將檔案版本更新 ``` git add happydog.html //將檔案加入站存區 如果是 add . 則是所有檔案; add *.html git commit -m " " //執行commit並留下message ``` ### 三、基本觀念 檔案經過異動後一開始會在**工作區**被記錄,如果確定要將檔案更新版本的話,首先要先提交到**暫存區**,可以在將檔案陸續提交到**暫存區**,完成工作階段後再一起commit到Repository形成一個新的git節點 | Working Directory工作區 | Staging Directory暫存區 | Repository倉儲地端 |Repository雲端 (也就是GitHub的遠端節點) | -------- | -------- | -------- | -------- | | git add | git commit -m "放想註記的訊息" | git push | 要抓下來可以用 git pull | ### 四、檢視紀錄 ``` git log //看版本異動紀錄(由近到遠) git log --oneline //看版本異動摘要 如果出現閃閃由標按一下Q退出 git status //檢查工作區狀態 ``` 或是用 sourcetree 直接看就好。 ###### AstroCamp的第一堂課就到這邊,可以善用本篇文章的tag來尋找類似主題。同學都很認真的感覺~要加油啦!