設定 Git 存放庫設定和原則
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
有數種方式可以使用分支和存放庫設定和原則來自定義您的 Azure Repos Git 存放庫。 本文討論存放庫層級的設定和原則。
存放庫設定和原則會為專案或組織或個別存放庫的所有 Git 存放庫設定全域選項。
本文討論伺服器端存放庫設定和原則。 若要瞭解用戶端 Git 喜好設定,請參閱 Visual Studio 中的 Git 喜好設定和設定。
分支原則涵蓋分支特定控件。
分支原則包括需要提取要求、成功建置或程式代碼檢閱等選項,才能將變更合併至分支。 如需詳細資訊,請參閱 分支原則和設定。
存放庫和分支安全性許可權可控制使用者指派。
這些許可權可控制誰可以讀取、寫入、參與提取要求,並採取其他特定動作。 如需詳細資訊,請參閱 設定存放庫的許可權。
所有存放庫和分支設定和原則的摘要
您可以設定專案中所有存放庫、個別存放庫和存放庫分支的設定和原則。 在瀏覽器中,您會透過 [項目設定>存放庫] 設定所有這些設定和原則。
注意
您可以使用 Azure CLI 的 az repos policy 來設定數個分支設定和原則。
下表摘要說明您可以針對 Git 存放庫和分支啟用和設定的設定和原則。
所有存放庫設定
下表摘要說明您可以在專案或組織中啟用和設定所有新 Git 存放庫的設定。
設定
Default
說明
關閉
使用您指定的預設分支名稱,初始化新的存放庫。 您可以隨時變更特定存放庫的預設分支。 如果您未啟用此功能,存放庫會使用名為 main
的預設分支初始化。
在
讓使用者管理所有新存放庫中所建立分支的許可權。
存放庫設定
下表摘要說明您可以為每個個別 Git 存放庫啟用或設定的設定。
設定
Default
說明
在
允許使用者從存放庫建立分支。
在
自動為提交訊息中提及的工作專案建立連結。
在
允許在提交註解中提及以關閉工作專案。 需要 Azure DevOps Server 2020.1 更新或更新版本。
開啟
請記住使用者喜好設定,以使用提取要求完成工作專案。
開啟/在...之上
允許使用者管理他們建立之分支的許可權
在
為存放庫啟用 嚴格投票模式 ,這需要 參與 對提取要求進行投票的許可權。
在
停用對存放庫的存取,包括組建和提取要求,但請以警告讓存放庫保持可探索。
存放庫原則或選項
下表摘要說明您可以針對所有或個別存放庫設定的原則或選項。 針對 [所有存放庫 ] 設定的原則會為稍後新增的個別存放庫設定預設值。
原則 或 選項
Default
說明
關閉
使用不符合指定模式的認可作者電子郵件封鎖推播。 此設定需要 Azure DevOps Server 2020.1 或更新版本。
關閉
禁止推送引進符合指定模式的檔案路徑。 此設定需要 Azure DevOps Server 2020.1 或更新版本。
關閉
藉由禁止在檔案、資料夾、分支和標籤上更改名稱大小寫的推送,以避免區分大小寫衝突。
關閉
阻止推送導入包含平台保留字元或不兼容字元的檔案、資料夾或分支名稱。
關閉
封鎖推送操作,引入超過指定長度的路徑。
關閉
封鎖包含大於所選限制之新檔案或更新檔案的推播。
分支政策
下表摘要說明您可以定義以自訂分支的政策。 如需設定這些設定的詳細資訊,請參閱 使用分支原則改善程式碼品質。 當您在分支上設定任何原則時,會自動強制執行下列原則:
- 需要提取要求才能更新分支。
- 無法刪除分支。
注意
分支政策會根據拉取請求的目標分支應用於這些拉取請求。 分支原則不應該設定在將於提取要求後刪除的暫時分支上。 將分支原則新增至暫存分支會導致自動刪除分支失敗。
原則
Default
說明
關閉
在提取要求上,需要指定數目的檢閱者核准。
關閉
檢查提取要求上是否有連結的工作專案,以鼓勵可追蹤性。
關閉
檢查是否已解決提取要求的所有批注。
關閉
藉由限制提取要求完成時可用的合併類型來控制分支歷程記錄。
關閉
新增、啟用或停用一或多個原則,藉由預先合併和建置提取要求變更來驗證程序代碼。
關閉
新增、啟用或停用一或多個原則,以要求其他服務張貼成功狀態以完成提取要求。
關閉
新增、啟用或停用一或多個策略,以指定程式碼檢閱者,當拉取要求變更特定程式碼區域時,自動包含。
必要條件
類別 | 需求 |
---|---|
專案存取 | 專案的成員。 |
許可 | - 在私人項目中檢視程式碼:至少 基本 權限。 - 複製或貢獻私人專案中的程式碼:作為 貢獻者 安全群組的成員或在專案中具有相應的許可權。 - 設定分支或存放庫許可權:管理分支或存放庫的許可權 許可權。 - 變更預設分支:編輯原則 存放庫的許可權。 - 匯入存放庫:專案管理員成員 安全組或 Git 專案層級 建立存放庫 許可權設定為 允許。 如需詳細資訊,請參閱 設定 Git 存放庫許可權。 |
服務 | 啟用 Repos。 |
工具 | 選擇性。 使用 az repos 命令:Azure DevOps CLI。 |
注意
在公用專案中,具有 項目關係人 存取權的使用者具有 Azure Repos 的完整存取權,包括檢視、複製及參與程式代碼。
檢視和編輯設定和原則
您可以為整個組織或項目的所有存放庫,或針對個別存放庫設定設定 。 您可以針對所有存放庫、個別存放庫或跨存放庫的指定分支進行原則設定。 如需設定分支原則的相關信息,請參閱 分支原則。
注意
最好是在專案層級或個別存放庫設定存放庫設定,但不能同時設定這兩者。 如果您在多個層級進行設定,系統將會採用最嚴格的設定。 僅在一個層級進行設定可減少混淆和 Git 效能問題。
若要透過入口網站設定存放庫設定和原則,請從網頁瀏覽器開啟 [項目設定>存放庫]。
若要檢視或修改所有 Git 存放庫的設定或原則,請開啟 [所有存放庫] 頁面,然後選擇 [設定] 或 [原則]。
若要設定特定存放庫的設定和原則,請選取 [存放庫] 索引卷標,選擇存放庫,然後選擇 [設定] 或 [原則] 索引卷標。
下列螢幕快照顯示已選取的 [ 設定] 索引標籤。 您可以為所有 Git 存放庫或個別存放庫定義這些設定。
下列螢幕快照顯示選取了 [政策] 索引標籤。 您可以為所有 Git 存放庫或個別存放庫定義這些原則。
默認分支名稱
您可以在組織或專案層級設定預設存放庫分支名稱。 組織層級設定會針對組織中所有專案的所有新存放庫生效。 專案層級設定會影響專案中的所有新存放庫,並取代組織層級上設定的任何名稱。
您可以:
- 選擇初始化存放庫時要使用的任何合法分支名稱。
- 隨時變更預設名稱,以影響所有未來的存放庫。
- 隨時變更任何特定存放庫的預設分支名稱。
如果您未啟用預設分支名稱功能,存放庫會使用 Azure Repos 預設分支名稱 main
初始化。
若要在組織層級設定預設分支名稱:
- 在 Azure DevOps 組織頁面上,選取 左下方的 [組織設定 ],然後在左側導覽中選取 [ 存放庫 ]。
- 在 [所有存放庫] 頁面上,將新存放庫的預設分支名稱設定為 [開啟],然後輸入預設分支名稱。
若要在項目層級設定預設分支名稱:
- 在 Azure DevOps 項目頁面上,選取 左下方的 [項目設定 ],然後選取左側導覽中的 [ 存放庫 ]。
- 在 [所有存放庫] 頁面的 [設定] 索引標籤上,將新存放庫的預設分支名稱設定為 [開啟],然後輸入預設分支名稱。
注意
新存放庫設定的預設分支名稱需要 Azure DevOps Server 2020.1 或更新版本。
分支許可權管理
您可以設定所有 Git 存放庫或個別存放庫的許可權管理設定,來控制誰可以管理存放庫分支的許可權。 如果您在 [所有存放庫] 層級啟用 [允許使用者管理其建立之分支的許可權] 設定,則所有新的專案存放庫都會設定為讓使用者管理其建立分支的許可權。
若要管理此設定:
- 在 Azure DevOps 項目頁面上,選取 左下方的 [項目設定 ],然後選取左側導覽中的 [ 存放庫 ]。
- 在 [所有存放庫] 頁面的 [設定] 索引標籤上,將 [允許使用者管理其建立之分支的許可權] 設定為 [開啟] 或 [關閉]。
若要啟用或停用個別存放庫的這項設定:
- 選取 [項目設定>存放庫],然後選取存放庫。
- 在 [設定] 索引標籤上的 <存放庫名稱> 頁面,將 許可權管理 設定為 開啟 或 關閉。
Gravatar 圖片
此設定可啟用或停用企業外部使用者使用 Gravatar 影像 的功能。
Gravatar 圖示 是您組織的層級設定。
- 在 Azure DevOps 組織頁面上,選取 左下方的 [組織設定 ],然後在左側導覽中選取 [ 存放庫 ]。
- 在 [所有存放庫] 頁面上,將 Gravatar 影像設定為 [開啟] 或 [關閉]。
Gravatar 圖片是適用於所有存放庫的專案層級設定。
- 在 Azure DevOps 項目頁面上,選取 左下方的 [項目設定 ],然後選取左側導覽中的 [ 存放庫 ]。
- 在 [所有存放庫] 頁面的 [設定] 索引標籤上,將 Gravatar 影像設定為 [開啟] 或 [關閉]。
啟用分叉
此存放庫設定可控制使用者是否可以建立新的伺服器端 分支。 停用此設定並不會移除現有的分叉。
- 從 [項目設定] 中,選取 左側導覽中的 [存放庫 ]。
- 在 [所有存放庫] 頁面的 [存放庫] 索引標籤上,選取存放庫。
- 在
[存放庫名稱 ] 頁面的 設定 索引標籤上,將分叉 設定為開啟 或關閉 。
工作項目連結設定
這些儲存庫設定用於管理工作項目的連結。
- 選取 [項目設定>存放庫],然後選取存放庫。
- 在 [
設定 ] 索引標籤上的 [存放庫名稱 ] 頁面中,將設定開啟 或關閉 。
提交提及連結
啟用後,提交訊息中含有 #
並緊接著有效的工作項目 ID 時,會自動將該提交連結至相應的工作項目。 如果存放庫先前使用不同的帳戶或服務,請停用此設定。 這些存放庫中的認可訊息可能包含提及與目前帳戶中工作專案標識碼不符的內容 #
。
認可提及的工作專案解決方案
啟用此設定,以在連結的提取要求完成時自動完成工作專案。 此設定也允許在提取要求認可訊息中指定其他工作項目轉換狀態。 如需詳細資訊,請參閱使用拉取請求自動完成工作專案。
工作項目轉換喜好設定
根據預設,在提取要求完成期間完成連結工作項目的選項會記住每個用戶的最後選擇。 想要防止使用者在其拉取請求中完成工作項目的團隊可以停用此設定。 然後,用戶必須選擇是否要在每次完成合併請求時參與完成工作項目。
嚴格投票模式設定
在某些情況下,不屬於存放庫參與者的使用者可以提交提取要求,並根據原則進行合併。 若要避免這種可能性,請啟用嚴格投票模式,將對存放庫提取要求進行投票所需的許可權變更為Contribute。 如果您依賴 Azure Repos 中的使用者分支,建議您啟用此設定。
- 選取 [項目設定>存放庫],然後選取存放庫。
- 在 [<存放庫名稱>] 頁面的 [設定] 索引標籤上,將「嚴格投票模式」設定為「開啟」或「關閉」。
停用存放庫設定
啟用此設定會停用存放庫的存取權,包括組建和提取要求,但會使用警告讓存放庫保持可探索。
- 選取 [項目設定>存放庫],然後選取存放庫。
- 在 <存放庫名稱>頁面的 停用存放庫 下的 [設定] 索引標籤上,將 [停用存放庫] 設定為 開啟 或 關閉。
可搜尋的分支設定
根據預設,檔案中的程式代碼搜尋僅適用於預設分支。 您最多可以新增五個分支來搜尋。
重要
若要在存放庫中搜尋程式代碼,您必須安裝 Marketplace 程式代碼搜尋 延伸模組。 如果您在 [存放庫設定] 索引標籤中看不到 [可搜尋的分支],請確定您已安裝擴充功能。
若要新增用於程式碼搜尋的分支:
- 選取 [項目設定>存放庫],然後選取存放庫。
- 在
頁面的存放庫名稱 設定 索引標籤上,選取中的 [可搜尋的分支]。 - 選取要包含在搜尋中的分支,然後選取 [ 新增分支]。
跨存放庫分支原則
您可以在專案的所有存放庫上設定特定分支名稱或預設分支上的原則。 例如,您可能會要求每個專案存放庫的 main
分支中所有的拉取請求至少需要兩位檢閱者。
若要設定原則來保護項目間的特定或預設分支名稱:
從 [項目設定] 中,選取 左側導覽中的 [存放庫 ]。
在 [所有存放庫] 頁面上,選取 [政策] 索引標籤。
請選取頁面底部分支原則中的加號+。
在 [新增分支保護] 畫面上,選取 [保護每個存放庫的預設分支],或 [保護符合指定模式的目前和未來分支]。
如果您選取第二個選項,請輸入要保護的分支名稱。 資訊訊息可讓您知道有多少最新分支受到影響。 請記住,分支名稱(或您輸入的模式)區分大小寫。 分支即使尚未存在,也可以保護分支名稱。
選擇 建立。
在 針對<分支名稱>的跨存放庫原則頁面上,設定您要用於受保護分支的原則。 如需分支原則的詳細資訊,請參閱 分支原則。
提交作者電子郵件驗證政策
此原則會封鎖電子郵件位址不符合特定模式的認可作者提交至存放庫的操作。
選取 [項目設定>存放庫],如果您想要只設定該存放庫,請選取存放庫。
在 所有存放庫 或 <存放庫名稱> 頁面的 原則 索引標籤上,於 存放庫原則 底下,將 認可作者電子郵件驗證 設定為 [開啟] 或 [關閉]。
如果您開啟原則,請指定要符合的電子郵件地址或位址。
您可以指定確切的電子郵件地址或使用通配符。 使用
;
做為多個電子郵件模式的分隔符。 前面加上!
的電子郵件模式會排除。 順序很重要。
檔案路徑驗證原則
您可以設定一項原則,防止符合特定模式的檔案路徑提交至儲存庫。
選取 [項目設定>存放庫],如果您想要只設定該存放庫,請選取存放庫。
在 所有存放庫 的索引標籤頁面或 <存放庫名稱> 頁面,於 存放庫原則 底下,將 檔案路徑驗證 設定為 開啟 或 關閉。
如果您開啟原則,請指定要封鎖的路徑。
您可以指定確切的路徑和通配符。 確切路徑開頭為
/
。 您也可以使用;
做為分隔符來指定多個路徑。 前面加上!
的路徑會排除。 順序很重要。
案例強制執行原則
Git 會區分大小寫,這表示名為 Foo.txt 的 檔案與稱為 foo.txt 的檔案不同。 不過,Windows 和 macOS 預設為不區分大小寫的文件系統,這表示 Foo.txt 和 foo.txt 的名稱相同。 如果在不區分大小寫的系統中,有人推送僅在字母大小寫上不同的檔案、資料夾、分支或標籤,此差異可能會導致問題。 如需詳細資訊,請參閱 Git 跨平臺相容性。
如果您的大部分參與者都位於 Windows 或 macOS 上,最好啟用 案例強制執行 原則。 案例強制執行會將伺服器從其預設區分大小寫模式切換為適合 Windows 和 macOS 的不區分大小寫模式,其中File.txt和file.txt被視為相同檔案。 這個設定會影響檔案、資料夾、分支和標記。
此設定可防止參與者引入僅限案例的差異。 此設定會封鎖在檔案、資料夾、分支和標籤上變更名稱大小寫的推送操作,以避免區分大小寫的衝突。 用戶必須重寫其未推送的歷程記錄來修正問題,然後再試一次推送。
此設定不會修正已包含僅因大小寫不同之檔案或資料的存放庫。 在啟用政策之前,最好先修正這類問題。 重新命名檔案和資料夾,或重新建立 分支 和 標籤 ,以使用不衝突的名稱。
若要設定案例強制執行原則:
- 選取 [項目設定>存放庫],如果您想要只設定該存放庫,請選取存放庫。
- 在 所有存放庫 或 <存放庫名稱> 頁面的 原則 索引標籤底下,於 存放庫原則 中,將 案例強制執行 設定為 開啟 或 關閉。
保留名稱原則
並非所有的檔名都允許在三個主要OS檔系統上:Windows、macOS和Linux。 對共用儲存庫的提交可能包含一或多個平台上無效的檔案或資料夾名稱。 如果在這些平臺上擷取並取出無效的檔案或資料夾,工作目錄可能會損毀。 如需詳細資訊,請參閱 Git 跨平臺相容性。
您可以啟用或停用原則,以限制檔案和資料夾名稱。 [ 保留名稱 ] 設定會封鎖推送至存放庫,其中包含所有平臺上無效的檔案或資料夾名稱。 若要查看哪些名稱無效,請參閱 Git 跨平臺相容性。
若要設定保留名稱原則:
- 選取 [項目設定>存放庫],如果您想要只設定該存放庫,請選取存放庫。
- 在 [所有存放庫] 或 [存放庫名稱] 頁面的 [原則] 索引標籤中,在 [存放庫原則] 底下,設定 [保留名稱] 為 [開啟] 或 [關閉]。
路徑長度上限原則
並非所有路徑長度都允許在三個主要 OS 檔案系統上:Windows、macOS 和 Linux。 對共用存放庫的提交可能包含檔案或目錄,而其路徑長度在一個或多個平台上可能無效。 如果這些檔案或目錄在無效的平臺上擷取並取出,工作目錄可能會損毀。 如需詳細資訊,請參閱 Git 跨平臺相容性。
[ 路徑長度上限] 設定會封鎖推送,其中包含任何平臺上路徑長度無效的檔案或目錄。 若要查看哪些路徑長度無效,請參閱 Git 跨平臺相容性。 當您啟用此設定時,預設的最大值為 248
,因為所有三個主要平臺都支援最大長度為100%。
您可以修改路徑值上限。 例如,如果您組織中只有 macOS 或 Linux 開發人員,您可以選擇將長度上限設定為這兩個平臺上所支援的值。 1016
您也可以選擇設定較低的路徑值,以強制執行組織的目錄命名慣例。
若要設定路徑長度上限原則:
- 選取 [項目設定>存放庫],如果您想要只設定該存放庫,請選取存放庫。
- 在 [所有存放庫] 或 [存放庫名稱] 頁面的 [原則] 索引標籤中,於 [存放庫原則] 之下,將 [路徑長度上限] 設定為 [開啟] 或 [關閉]。
- 如果您開啟設定,請輸入路徑長度上限。
檔案大小上限原則
簽入 Git 的大型檔案會無限期地保留在存放庫中,增加複製時間和磁碟使用量。 如需管理大型檔案的指引,請參閱 在 Git 中管理和儲存大型檔案。
[檔案大小上限] 原則設定會封鎖特定大小的檔案進入存放庫。 如果推送包含大於此設定中所設定限制的新或更新檔案,則會封鎖推送。 用戶必須重寫其未推送的歷程記錄,才能移除大型檔案,然後再試一次推送。
若要設定 檔案大小 上限原則:
- 選取 [項目設定>存放庫],如果您想要只設定該存放庫,請選取存放庫。
- 在 [所有存放庫] 頁面的 [原則] 索引標籤上,於 [存放庫原則] 下,將 [檔案大小上限] 設定為 [開啟] 或 [關閉]。
- 如果您開啟設定,請選取檔案大小上限。