檢閱歷程記錄
本文內容
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 輕鬆控制版本。
比較檔案版本
當您想要了解發生特定檔案變更的方式和時間時,您可能需要比較不同認可的不同檔案版本,可能在不同的分支中。
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.*"
只會列出引進或移除指定之 regex 字串的認可。
git log -3
只會列出最後三個認可。
您有數 個認可清單的格式 選項。 例如:
git log --abbrev-commit
使用縮寫標識碼列出認可 (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 結帳 或 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
會將認可中 85435fac
的內容app.ts
寫入 。/archive/oldapp.ts
比較分支
您可以比較任何本機或遠端分支,以檢閱合併或重新基底 所產生的 變更。 分支比較可讓您檢查合併衝突,並查看其他人變更如何影響您的工作。
Visual Studio 2019 和舊版不支援分支比較,因此如果您使用其中一個版本,則可以比較 Git 命令行上的 分支或使用網頁瀏覽器 ,如果您的存放庫裝載在 Azure Repos 或 GitHub 中。 Visual Studio 2022 支援分支比較,如比較分支中所述 。
從網頁瀏覽器開啟 Azure DevOps 組織的小組專案。 在 [ 存放庫 > 分支 ] 檢視中,選取任何分支的省略號,然後選擇 [比較分支 ] 以開啟 [ 分支比較 ] 檢視。
在 [ 分支比較] 檢視中,選擇您要比較 的兩個分支。 針對每個已變更檔案中新、已刪除或修改過的行,選取 [檔案 ] 索引標籤。
注意
GitHub 支援分支比較。 若要比較兩個分支,請將 附加 /compare/<branch1>...<branch2>
至您的 GitHub 存放庫 URL,以瀏覽至比較頁面。 比較頁面包含每個不同檔案的差異檢視。 如需 GitHub 中分支比較的詳細資訊,請參閱 比較分支 。
若要比較分支與最新分支,請在存放庫的 [分支] 窗格中以滑鼠右鍵按兩下分支 ,然後選取 [比較] 選項。 操作選單會指定目前和目標分支的名稱:
Visual Studio 2019 不支援分支比較。 不過,您可以比較 Git 命令行上的 分支或使用網頁瀏覽器 ,如果您的存放庫裝載在 Azure Repos 或 GitHub 中。
提示
您可以選擇入口網站,從 [Team Explorer 首頁 ] 檢視 存取入口網站 。
若要比較任兩個本機或遠端分支,您可以使用指定分支名稱的 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
檔案產生差異。
下一步
相關文章