檢視歷史記錄
本文內容
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Visual Studio 2019 |Visual Studio 2022
Git 會使用 提交元數據 ,例如父連結、作者詳細資料和時間戳,來追蹤存放庫中變更的歷史。 您可以檢閱 Git 歷程記錄,以瞭解檔案何時變更、變更者,以及所做的變更。
當人員使用 提取要求 將功能 分支 合併到目標分支時,目標分支的開發歷程記錄可能不是一條直線。 因此,當您檢閱目標分支上檔案變更的歷程記錄時,請記住認可順序會受到 合併策略 和合併日期的影響,而不只是變更的原始日期。 例如,main
分支上的最新提交可能會引入數周前在功能分支中所做的更動,該更動最近才通過三方合併被合併到 main
分支。
若要瞭解如何搭配 Git 使用 Visual Studio 2022,請參閱 Visual Studio 如何使用 Git 輕鬆進行版本控制。
先決條件
類別
需求
專案存取
專案的 成員。
許可
- 在私人項目中檢視程式碼:至少 基本 權限。 - 複製或貢獻私人專案中的程式碼:作為 貢獻者 安全群組的成員或在專案中具有相應的許可權。 - 設定分支或存放庫許可權:管理分支或存放庫的許可權 許可權。 - 變更預設分支:編輯原則 存放庫的許可權。 - 匯入存放庫:專案管理員成員 安全組或 Git 專案層級 建立存放庫 許可權設定為 允許 。 如需詳細資訊,請參閱 設定 Git 存放庫許可權 。
服務
啟用 Repos 。
工具
選擇性。 使用 az repos 命令:Azure DevOps CLI 。
備註
在公用專案中,具有 項目關係人 存取權的使用者具有 Azure Repos 的完整存取權,包括檢視、複製及參與程式代碼。
類別
需求
專案存取
專案的 成員。
許可
- 查看程式碼:至少 基本 權限。 - 複製程式碼或貢獻程式碼:屬於 參與者安全組 的成員或具有專案中的對應許可權。
服務
啟用 Repos 。
比較檔案版本
當您想要了解特定檔案變更的方式和時間時,您可能需要比較不同提交中的同一檔案版本,這些版本可能位於不同的分支中。
Azure DevOps 小組專案網站允許您比較同一分支中提交的兩個相同檔案的版本,但不支援跨分支比較檔案版本。
從網頁瀏覽器開啟 Azure DevOps 組織的小組專案。 在 [存放庫 > 檔案] 檢視中,選取檔案,然後選擇 比較 標籤。
在 [比較 ] 索引標籤中,選擇包含您要比較的檔案版本的兩個提交。 差異檢視會顯示任何新的、已刪除或修改的檔案行。
備註
GitHub 讓您可以在不同提交和不同分支中,將相同檔案的兩個版本進行比較。 若要比較,請將 /compare/<commit1>..<commit2>
附加至您的 GitHub 存放庫 URL,以瀏覽至比較頁面。 比較頁面包含顯示每個不同檔案差異的對比視圖。 如需有關 GitHub 中提交比較的詳細資訊,請參閱 比較提交 。
Visual Studio 2022 提供 Git 版本控制體驗,方法是使用 Git 功能表、Git 變更 ,以及透過 方案總管 中的 操作功能表。 Visual Studio 2019 16.8 版也提供 Team Explorer Git 使用者介面。 如需詳細資訊,請參閱 Visual Studio 2019 - Team Explorer 索引標籤。
Visual Studio 可讓您比較相同分支中相同檔案的兩個版本,但不支持比較跨分支的檔案版本。
在 [方案總管] 中,選取檔案,然後從檔案的作功能表中選擇 [Git > 檢視歷程記錄] ,以開啟所選檔案的 [Git 歷程記錄] 索引卷標。
在 [Git 歷程記錄 ] 索引標籤中,從提交的功能表中選擇 [與上一個比較 ] 以開啟 [差異 ] 索引標籤,比較所選提交與前一個提交。
或者,選擇兩個提交,然後從任一提交的操作功能表中選擇 [比較 ],以開啟兩個選取提交的 差異 標籤。
[差異 ] 索引標籤會顯示新的、已刪除或修改的檔案行。
git diff 命令可以比較不同分支中、不同提交中同一檔案的不同版本。
git log 命令可以幫助您找出包含您想比較的檔案版本的提交。
使用 git log
並指定一個檔案,以列出變更該檔案的提交:
git log <file>
根據預設,命令輸出會從最新分支中的最近認可開始,然後遵循每個認可元數據中的父連結,逐一查看上階認可(不論分支為何)。
以下是命令的輸出範例 git log index.html
:
commit bbc3b679197b659544a6f8070c79fb535b496613
Date: Thu Jun 30 13:42:50 2021 -0400
update landing page
commit e5402fe710c25eca1b96a4e238eee9c01ed41c6a
Date: Thu Jun 30 13:42:23 2021 -0400
initial commit
使用 git diff
並指定一個檔案和兩個提交,以查看提交檔案版本的差異。
git diff <commit1> <commit2> <file>
以下是命令的輸出範例 git diff bbc3b67 e5402fe index.html
:
- <link rel="stylesheet" href="app.cs"/>
+ <link rel="stylesheet" href="fabrikam.cs"/>
輸出顯示已刪除一行,並新增一行。
限制 Git 記錄輸出
若要限制 ] git log
的提交,您可以依照作者、日期、訊息、變更內容等條件進行篩選。 例如:
git log --author=frank@fabrikam.com index.html
只會列出指定作者的提交。
git log --since="2022-5-1"
只會列出在指定日期之後創建的提交。
git log --before="yesterday"
只會列出在指定相對日期之前創建的提交。
git log --grep="css change"
只會列出訊息中包含指定文字的提交記錄。
git log -S"myVariable"
只會列出引進或移除指定字串的提交。
git log -G"myVar.*"
只列出引入或移除指定正則表達式字串的提交。
git log -3
只列出最近三次提交。
您有數個 格式 認可清單的選項。 例如:
git log --abbrev-commit
列出使用縮寫的 ID(SHA-1 校驗和)的提交。
git log --oneline
會以單行縮寫格式列出每個提交。
git log --patch index.html
列出每個提交及變更的差異比較。
還原檔案
您可以從 Git 歷史記錄中還原特定版本的檔案,即使該檔案在後續的提交中已被編輯、刪除或重新命名。 還原舊版本的檔案不會因此產生新的提交。 若要將還原的檔案版本更新到您的分支,您必須提交變更。
Azure DevOps 專案網站可讓您還原特定認可所做的所有變更,但不支援還原認可中具體檔案的變更。
Visual Studio 可讓您比較相同分支中相同檔案的兩個版本,但不支持比較跨分支的檔案版本。
在 [方案總管] 中,選取檔案,然後從檔案的作功能表中選擇 [Git > 檢視歷程記錄] ,以開啟所選檔案的 [Git 歷程記錄] 索引卷標。
在 [Git 歷程記錄 ] 索引標籤中,從認可的內容功能表中選擇 [與上一個 比較],以開啟 [差異 ] 索引標籤,來比較選取的認可和先前的認可。
或者,選取兩個提交,然後在任一提交的上下文選單中選擇 [比較 ],開啟 差異 索引標籤,來比較兩個選取的提交。
[差異 ] 索引標籤會顯示新的、已刪除或修改的檔案行。
Visual Studio 2019 16.8 版和更新版本提供 Git 版本控制體驗,同時維護 Team Explorer Git 使用者介面。 若要使用 Team Explorer ,請從功能表欄取消核取 [工具] >[ >預覽功能] >[新增 Git 用戶體驗]。
在 [方案總管] 中,選取一個檔案並從檔案的內容功能表中選擇 [Git > 檢視歷程記錄] ,以開啟所選檔案的 [Git 歷程記錄 ] 索引標籤。
在 [Git 歷史記錄 ] 頁籤中,選取提交,然後從提交的快顯功能表中選擇 [檢視提交詳細資料] ,以開啟 [提交詳細資料] 視圖。
在 [提交詳細資訊] 檢視中,選取檔案,然後從檔案的功能表中選擇 [開啟 ],以在新索引卷標中開啟檔案的先前版本。
從功能表列選擇 [[檔案] > [另存新檔] ,以儲存還原的檔案版本。
您可以使用 git checkout 或 git show 命令,從 Git 歷程記錄中還原特定版本的檔案。
如果您指定檔案和提交版本,git checkout 會將檔案恢復到先前提交版本的狀態:
git checkout <commit> <file>
例如,git checkout 85435fac src/app.ts
會將 src/app.ts
檔案還原為提交 85435fac
中的版本。
git show 顯示先前認可的檔案版本內容,您可以將其輸出至一個檔案:
git show <commit>:<file> > <output file>
例如,git show 85435fac:src/app.ts > /archive/oldapp.ts
會將 app.ts
在認可 85435fac
中的內容寫入 /archive/oldapp.ts
。
比較分支
您可以比較任何本機或遠端分支,以檢閱 合併 或 變基 所帶來的變更。 分支比較可讓您檢查合併衝突,並查看其他人變更如何影響您的工作。
Visual Studio 2019 和舊版不支援分支比較,因此如果您使用其中一個版本,您可以在 Git 命令行上比較分支 或使用 網頁瀏覽器 —如果您的存放庫裝載在 Azure Repos 或 GitHub 中。 Visual Studio 2022 支援分支比較,如 比較分支 中所述。
從網頁瀏覽器開啟 Azure DevOps 組織的小組專案。 在 [Repos > 分支 ] 檢視中,選取任一分支的省略號,然後選擇 [比較分支 ] 以開啟 [分支比較 ] 檢視。
在 [分支比較] 檢視中,選擇您要比較的兩個分支。 請選擇 [檔案] 索引標籤,以查看每個已變更檔案中新、已刪除或已修改行的差異檢視。
備註
GitHub 支援分支比較。 若要比較兩個分支,請將 /compare/<branch1>...<branch2>
附加至您的 GitHub 存放庫 URL,以流覽至比較頁面。 比較頁面包含每個不同檔案的差異檢視。 如需 GitHub 中分支比較的詳細資訊,請參閱 比較分支 。
若要比較分支與最新分支,請在存放庫 分支 窗格的分支上單擊滑鼠右鍵,然後選取 [比較] 選項。 作選單會指定目前和目標分支的名稱:
Visual Studio 2019 不支援分支比較。 不過,如果您的存放庫位於 Azure Repos 或 GitHub,您可以在 Git 命令列上比較分支 ,或者使用 網頁瀏覽器 。
小提示
您可以從 Team Explorer Home 檢視存取入口網站,方法是選擇 [入口網站] 。
若要比較任兩個本機或遠端分支,您可以使用指定分支名稱的 Git diff
命令:
git diff <branch1> <branch2>
Git 會比較一個分支末端的提交與另一個分支末端的提交。 差異輸出會顯示兩個分支中每個檔案之間的刪除和新增內容。
以下是命令的輸出範例 git diff users/frank/feature origin/main
,它會比較本機分支與遠端分支:
index 36843b8..03afc4b 100644
--- a/tsapp/index.html
+++ b/tsapp/index.html
@@ -4,7 +4,7 @@
<head>
<meta charset="utf-8" />
<title>TypeScript HTML App</title>
- <link rel="stylesheet" href="fabrikam-test.css" type="text/css" />
+ <link rel="stylesheet" href="fabrikam.css" type="text/css" />
<script src="app.js"></script>
</head>
...
--- a/tsapp/app.ts
+++ b/tsapp/app.ts
constructor(element: HTMLElement) {
this.element = element;
- this.element.innerHTML += "The time is: ";
+ this.element.innerHTML += "The time is now: ";
this.span = document.createElement('span');
this.element.appendChild(this.span);
this.span.innerText = new Date().toUTCString();
若要縮小與特定檔案的比較範圍,請在 diff
命令中指定 檔案:
git diff <branch1> <branch2> <file>
例如,git diff users/frank/feature origin/main index.html
只會為 index.html
檔案產生差異。
後續步驟
相關文章