Working directory(工作區), Staging area(暫存區), Git directory(儲存庫) | 再談 Git
工作區、暫存區與儲存庫Git 大致可以分成三個區,分別是 Working Directory(工作區)、Staging Area(暫存區) 和 Git Directory(儲存庫),如下圖所示。 與其對應,在 Git 中,檔案可能處於以下狀態: Working Directory Tracked : 檔案已被之前的 commit 存入儲存庫,在 Git 的管理範圍內。 Unmodified:檔案內容與最後一次 commit 相同,沒有變更。 Modified:檔案內容已更改,但尚未加入 Staging area。 Untracked : 其他不在 Repository ,也不在 Staging Area 的檔案,不在 Git 的管理範圍內。 Staging Area Staged:檔案已加入 Staging area,等待 commit。 Git Directory Committed:commit 已被提交並存入儲存庫。 Working Directory(工作區)Working Directory 可以視為 Git Directory(儲存庫)...
所以,Git 是 ? | 再談 Git
什麼是 Git?我們常聽到「要用 Git」、「要做版本控制」,那到底什麼是版本控制 (Version Control) 呢? 版本控制 (Version Control) 是什麼?白話說,版本控制系統 就是一種可以記錄檔案變更歷史的工具,讓我們隨時可以回到過去的某個版本,查看、還原或比較內容。 “What is “version control”, and why should you care? Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later.”—— Pro Git 所以,為什麼要用 Git?如果沒有版本控制,我們想要管理不同版本的檔案,比如: file-0501.txt ...
Python 3.10 | Match Statement - 更靈活的 switch
概述在我當初開始學 Python 時,發現沒有 switch 可用,令我感到有些驚訝,還好從 Python 3.10 開始, Python 有了自己的 switch —— Structural Pattern Matching。 所以什麼是 Structural Pattern Matching ? 與 C++ 的 switch 相比,我覺得它更類似於 C# 的 Pattern Matching。舉個簡單的例子: 12345678910111213141516171819202122232425is_perform = Falsematch ("anon", "soyorin"): # Mismatch case 'tomorin': print('組一輩子樂團') # Mismatch: soyorin != rana case ("anon", "rana"): ...