Git版本控管實務
分散式管理系統
- Git為分散式版本控管系統,可把檔案狀態作為更新歷史紀錄加以保存,方便還原與追蹤
- 為了解決協作時對於同一檔案的修改導致互相覆蓋,又無法紀錄修改等問題
- 版本庫是記錄檔案或目錄狀態的地方,儲存內容的修改歷史記錄,分為本地端與遠端。
- 本地端與遠端版本庫功能相同,差別在於遠端版本庫作為協作公開使用
三層式目錄結構
- 工作目錄(working directory):
專案被取出的某一個版本。這些檔案從 Git 目錄內被壓縮過的資料庫中拉出來並放在保存目前專案的目錄供使用或修改
- 暫存區域(staging area):
位於工作目錄與版本庫之間,為了向版本庫提交前的暫存區域。所有提交不會直接進版本庫,而是先進到暫存區作索引,之後才提交
- Git 目錄(repository):
Git 用來儲存專案的 metadata 及物件資料庫。這是 Git 最重要的部份,當從其它版本庫複製時會備份過來
Win環境開啟SourceTree一直閃退
- Step 1.
清除C:\Users\user\AppData\Local裏頭的Atlassian和SourceTree資料夾
清除C:\Users\user\AppData\Roaming裏頭的Atlassian資料夾
- Step 2.
關閉pageant服務
- Step 3.
重新安裝SourceTree
一般原因為遠端有新的提交還沒被Pull下來,只要先把新提交給Pull到本地端,就可以重新進行Push
修改到同一個檔案造成衝突
- 當提交同時修改了同一個檔案,而系統無法分辨應該採用哪一個提交,就會產生衝突。
- 衝突處理,就是讓提交人自己決定應該如何合併該檔案的修改
- 衝突程式碼會出現以====為分隔線,箭頭為界的區塊,以標示各提交的修改內容。
- 處理完成需將等號和箭頭等符號都移除,視為已解決
參考資料
git入門指南
Git 初學者的入門
Git & GitHub 教學手冊
30 天精通 Git 版本控管
GitHub Pages 教學手冊
Github Desktop
Sourcetree - git 的 GUI 管理軟體
Bitbucket