- 創建個人課程專案
首先在課程影片上方有一個網址,點這個 GitHuba classroom 連結,接受並登入 Github 帳號後自動幫你創建一個 repository,專案名稱會是這堂課「mentor-program-4th」加上你的 Github 名稱
簡單來說,就是一個 Lidemy 的課程群組,按下連結就可以加入這個大群。一開始它幫你會拷貝作業模板,創建成一份個人專案,你能夠在這個群組裡搜尋,查看誰是大家收藏的範本作品,作為改進的依據。
- 當遠端專案建好,就拉到本地
你會得到一個專案的 clone 連結,在終端機上使用 git clone
指令,就能將遠端伺服器的資料抓取下來,本地會建立一個 mentor0program-4th-zoeaeen13
資料夾
$ git clone 'https://github.com/Lidemy/....git'
- 進入本地資料夾,建立新分支⭐
重要的一步,因為寫作業需要在分支裡面寫,我們都知道主分支需要維持穩定,一般不會輕易動到,當然也不會直接在 master 進行
#建一個名為week1的分支
$ git branch week
#切換到week1
$ git checkout week1
- 完成設置後,來寫作業吧
基本上就可以直接開始寫啦,我個人是會先在 hackmd 上把大部分內容寫好,再用 VS Code 開啟檔案,貼到上面進行最後排版,然後將完成作業提交進行版控。
寫作業過程中的 Git 操作這裡就不多說,可以參考我的 hw4.md 了解如何進行版本控制,這邊假定已經完成作業,也全部都 commit 了,接下來要怎麼推上 Github 上給助教批改呢?
- 準備推上遠端
推之前,再一次使用 git status
確認工作目錄裡面是乾淨、沒有完成到一半的東西
- 繼續停留在 week1 分支,現在要做的就是使用下方指令把目前分支推上去
$ git push origin 分支名稱
$ git push origin week1 ->我們要做的事把 week1 分支推上去
這個指令會把你手邊的 week1 分支的內容,推一份到 origin 這個地方, origin 可能是 GitHub、GitLab 或是公司內部的 Git 伺服器,如果找不到這個分支,它會在 origin 這個地方形成一個同名的分支(week1),也就是我們要的,將本地分支內容推到遠端。
特別去查了一下git push
,原來 push 指令的完整型態是長這樣
$ git push origin master:master
意思就是「把本地的 master 分支的內容,推一份到 origin 上,並且在 origin 上建立一個 master 分支」,如果把指令調整一下:
$ git push origin master:today
意思就會變成「把本地的 master 分支的內容,推一份到 origin 上,並且在 origin 上建立一個 today 分支」
- Pull Request
將本地分支推上遠端後,系統會提示你可以「Compare & pull request」如果沒有也沒關係,自己開一個 pull request 也可以,記得確認是要將 week1 合併到 master
- 提交到交作業列表
完成之後,將 pull request 連結貼到作業系統上,會看到自己的提交及幫你改的助教,當他改完並確認沒有問題之後就會把你的 week1 分支 merge 到 master 主分支,並刪掉你的 week1 分支
- 本地要和遠端同步
最後一步,現在我們知道遠端已經完成本週作業批改、也更新了主分支,但是本地內容還是舊的!
於是我們在本地切回主分支,使用 git pull origin
指令更新 master,確認更新完就可以刪掉本地的 week1 分支,這麼一來遠端和本地就同步了!
$ git checkout master
#切回主分支
$ git pull origin master
#更新本地端 master
$ git branch -d week1
#刪除本地分支week1
- 先把自己目前改的東西全部 commit
git commit -am"finished"
- 切回 master`,確認 working area 是乾淨的
git checkout master
git status
- 和老師的 master 同步,並輸入 commit message
git pull https... master
git commit -am"update"
- push 回自己的 github
git push origin master
- 切換回寫作業的分支
git checkout week3
- 繼續寫作業
補充:git clone、git fetch 跟 git pull 這三個指令有什麼不同?
會把線上的專案,「整個」複製一份到你的電腦裡,並且在你的電腦裡建立相對應的標案及目錄
- 只會在一開始的時候使用
- clone 之後要再更新的話,通常是執行 git fetch 或 git pull
遠端節點叫 origin,當執行 git fetch 指令,Git 會比對本機與遠端專案的差別,會「下載 origin 上面有但我本機目前還沒有」的內容下來,並且在本地端形成相對應的分支。
- fetch 指令只做下載,不會進行合併
做的事情跟 fetch 是一樣的,差別只在於 fetch 只有把檔案抓下來,但 pull 不只抓下來,還會順便進行合併
- git pull 其實就等於 git fetch 加上 merge 指令
參考資料:為你自己學 Git