Git
GitHub
不管是在個人專案,還是在多人協作時,都必須記得在實作新功能時,一定要在分支上進行:
在課程最一開始寫的 Git 筆記:[week 1] 版本控制 - Git 進階指令 & GitHub,也有提到一些常見狀況劇。
最近在進行 Final Project 時,體驗到多人協作和個人專案的不同,有許多需要注意的地方,這裡舉幾個自己實際遇到的狀況以及解決方式:
當我們要 push 分支時,如果沒有先同步 master 進度,就會出現衝突問題,有兩種方式解決:
這個方法可以確保新分支一定是同步遠端的狀態,缺點就是要記得先備份好要 commit 的內容,才能切回 master 同步:
較推薦這個方法,直接在舊分支同步遠端,就不須再另外新開分支
依照上述其中一種方式,之後就可以在 GitHub 頁面發 PR 進行 merge,解決衝突問題。
如果是在建立 .gitignore
之前,不小心把要被版本控制忽略的檔案給 push 上 GitHub 的話該怎麼辦呢?
以 React 中會自動生成的 .eslintcache
為例,如果在忽略之前就先把檔案 push 上去,之後多人協作要進行 merge 時,都必須解決衝突問題,這時只要按照以下步驟:
.eslintcache
檔案.eslintcache
加入專案根目錄的 .gitignore
忽略版本控制需注意這裡用 git reset --hard
指令,除了回到指定 commit 版本,程式碼也會回到指定版本的狀態:
由於本地端分支版本低於遠端分支版本,這裡必須使用 --force
來強制 push 想要拆掉重做的 branch:
這樣就成功撤銷已經 push 的 branch,回到指定的 commit 狀態了!
其實 Git 版本控制是在 Lidemy 課程最一開始學的,之後繳交作業都是透過 Git 進行,中間也曾遇到種種狀況,像是不小心把同步課程大綱也 push 上去等等。
最近和同學實際進行團體協作,才發現需要注意的事情又更多了!常常一個不注意下錯指令,把應該 push 的分支 push 成 master,還沒同步分支必須解決的衝突問題等等,趁這個機會把一些自己實際遇到的狀況給寫下來。熟悉多人協作以後,感覺自己又對版本控制有更深一層的認識。