原文出處:https://dev.to/lofiandcode/git-and-github-how-to-revert-a-single-file-dha
一旦您開始與其他開發人員合作,了解如何將單一檔案還原到某個提交就變得很重要。出現這種需求是因為您有時需要更改與拉取請求無關的文件以測試您正在開發的功能。但是,手動將這些文件中的每一行程式碼變更回原始狀態並進行新的提交可能會導致提交歷史記錄混亂。恢復檔案是一種更清晰的處理方式。
首先,您需要前往 GitHub 上的共用儲存庫並找到要復原的檔案。導航到該文件後,您應該在文件上方看到以下內容:
在右側,您可以看到 7 位數的提交 ID 和日期。這是修改該文件的最近一次提交的提交 ID。記下此提交 ID,或將其複製到剪貼簿。
接下來您需要的是工作目錄中的檔案路徑。這部分很簡單,因為文件的路徑位於您找到文件的提交 ID 的相同 GitHub 畫面上。
在上面您可以看到與之前相同的螢幕截圖,但這次我在文件路徑下劃線了。請注意,我只在路徑的一部分下劃線了。列出的第一個目錄是工作目錄名稱,並且將是您使用此檔案路徑時所在的目錄。因此,您只需要下劃線部分。
剩下的就是恢復檔案了。打開終端並變更為工作目錄後,您可以使用“git checkout”來還原檔案。 git 指令的格式如下圖所示:
git checkout [提交 ID] -- 路徑/到/檔案
如果我要恢復上面螢幕截圖中的文件,則將如下所示:
我知道你在想什麼,“等一下,我認為重點是不建立新的提交?”嗯,這說對了一半。我們不想對我們恢復的文件進行新的提交。但是一旦我們恢復文件,我們就需要提交該更改。在這種情況下,更改是單一檔案的恢復。這是使用標準提交命令完成的:
git commit -m '提交訊息'
然後,您可以將該提交推送到遠端,以便 GitHub 上的分支版本與您的本機版本相符。
若要將單一檔案還原至特定版本,請執行下列操作:
尋找要還原到的檔案版本的提交 ID。
找到要從工作目錄復原的檔案的路徑。
在終端機中,將目錄變更為工作目錄。
輸入 git checkout [commit ID] -- path/to/file
並按 Enter 鍵。
將更改提交到恢復的文件。