在 Git 中把檔案重置為與主分支相同的狀態

Ashok Chapagai 2023年9月13日
  1. 在Git中將檔案重設為“主要”分支
  2. 在Git中將檔案重設為特定提交
  3. 總結
在 Git 中把檔案重置為與主分支相同的狀態

假設在“主要”分支中有一個重要的檔案,該檔案不可編輯,但不幸的是,在“開發”分支中已經編輯並提交了多次。現在,您希望捨棄對該檔案所做的所有更改,並將其狀態更改為與“主要”分支相同。有一種簡單的方法可以實現這一點,不需要太多麻煩。

在Git中將檔案重設為“主要”分支

在Git中,git checkout命令是一個多功能工具,可用於各種任務,包括切換分支、創建新分支、還原檔案等。

當我們使用git checkout將檔案重設為“主要”分支時,實際上是告訴Git將當前分支中的檔案內容替換為“主要”分支中的內容。

現在,我們對Git checkout有了基本的了解,讓我們來看看將特定檔案重設為“主要”分支的步驟。

第1步:打開終端機

首先,打開終端機或命令提示字元。我們將使用Git命令來重設檔案,因此有一個終端機是必要的。

第2步:導航到您的存儲庫

使用cd命令導航到您的Git存儲庫目錄。例如:

cd /path/to/your/repo

/your/repo的路径替換為您的Git存儲庫的實際路徑。

第3步:檢查當前分支

在執行任何重設之前,請確認您在要重設檔案的分支上。您可以使用以下命令檢查當前分支:

git branch

這個命令會顯示一個分支列表,目前已檢出的分支會用星號(*)標示。

第4步:執行Git Checkout重設

現在,讓我們使用git checkout命令將檔案重設為“主要”分支。使用以下命令:

git checkout master -- file1 file2 ...

檔案1檔案2等替換為要重設的檔案的名稱。您可以通過用空格分隔它們的名稱來指定多個檔案。

例如,如果您想重設兩個名為檔案1.txt檔案2.txt的檔案,則命令將是:

git checkout master -- file1.txt file2.txt

更詳細地了解git checkout命令

  • git checkout:這是Git命令,用於各種操作,包括切換分支和重設檔案。
  • master:這指定您要從中取回檔案的源分支。在這種情況下,它是“主要”分支。
  • --:這個雙連字符用於分隔分支或提交與檔案路徑。它告訴Git接下來的項目是檔案路徑,而不是分支或提交。

第5步:檢查狀態

重設後,應該檢查工作目錄的狀態,使用以下命令:

git status

這將顯示相對於“主要”分支,哪些檔案已被修改、添加或刪除。

第6步:提交您的更改

如果您對更改感到滿意並準備好提交,請使用以下命令:

git add .
git commit -m "Your commit message"

"您的提交訊息"替換為描述您的更改的有意義的訊息。

在Git中將檔案重設為特定提交

在Git中,git reset命令用於將當前分支重設為指定的狀態,如特定提交。

當我們使用git reset將檔案重設為特定提交時,我們指示Git將分支指針移動到該提交,同時可選地更新工作目錄和暫存區(索引)。

讓我們深入了解如何將特定檔案重設為Git中的特定提交的步驟。

第1步:打開終端機

首先,打開終端機或命令提示字元。我們將使用Git命令,因此有一個終端機是必要的。

第2步:導航至您的存儲庫

使用cd命令導航到您的Git存儲庫目錄。例如:

cd /path/to/your/repo

/your/repo的路径替換為您的Git存儲庫的實際路徑。

第3步:確定目標提交

您需要確定要將檔案重設為的特定提交。您可以使用git log查看提交歷史並找到提交雜湊。例如:

git log

此命令將顯示提交歷史,每個提交都以唯一的雜湊(長的字母數字字符串)表示。

第4步:執行Git Reset

現在,讓我們使用git reset命令將特定檔案重設為目標提交。基本語法如下:

git reset <commit> -- <file1> <file2> ...

將以下文字翻譯為zh-tw:
<commit>替換為您想要重置的提交哈希、分支名稱或標籤名稱。將<file1><file2>等替換為您想要重置的文件的名稱。可以通過使用空格分隔它們的名稱來指定多個文件。

例如,如果您想要將名為file1.txtfile2.txt的兩個文件重置到哈希值為abc123的提交,命令如下:

git reset abc123 -- file1.txt file2.txt

更詳細了解git reset命令

  • git reset:這是用於重置分支和文件的Git命令。
  • <commit>:請將此占位符替換為要重置文件的提交哈希、分支名稱或標籤名稱。
  • --:這個雙橫號用於將提交與文件路徑分隔開。它告訴Git下面的項目是文件路徑,而不是分支或提交。

步驟5:檢查狀態

在重置之後,使用以下命令檢查您的工作目錄狀態是非常重要的:

git status

這將顯示與重置提交相比已被修改、添加或刪除的文件。

步驟6:提交更改

如果您對重置感到滿意並準備好提交,請使用以下命令:

git add .
git commit -m "Your commit message"

"Your commit message"替換為描述重置引入的更改的有意義的消息。

另一種方法:使用git checkout

達到相同目的的另一種方法是:

git checkout <commit_hash> <filename>

這也可以實現相同的結果。

總結

在Git中將文件重置到master分支是每位參與協作項目的開發人員的基本技能。

git checkout命令使您能夠輕鬆將您的工作與master分支的最新更改同步。

通過遵循本指南中概述的步驟,您可以自信地重置特定文件,確保您的項目保持一致和最新。

請記住,Git為重置文件提供了各種機制,如使用git reset重置到特定提交。

每種方法都有其用例,所以選擇最適合您需求的方法。

無論是更正錯誤還是合併master分支的更改,Git的靈活性都能確保您的版本控制工作流程高效可靠。

作者: Ashok Chapagai
Ashok Chapagai avatar Ashok Chapagai avatar

Ashok is an avid learner and senior software engineer with a keen interest in cyber security. He loves articulating his experience with words to wider audience.

LinkedIn GitHub

相關文章 - Git Reset