使用版本控制管理您的管道專案
您可以使用版本控制來管理管道專案的開發,並追蹤變更。
使用版本控制時,您可以在設計期間提交專案的版本。這可讓您查看專案兩個版本之間的變更。您也可以使用分支策略來開發您的資料專案。這可讓您在每個工作區或分支中處理專案的獨立版本。工作區可由多位使用者共用。然後,您可以將工作區的變更合併到主要分支,以部署到生產環境。
GitHub 被用作版本控制的提供者。實作遵循共用存放庫模型。
-
不支援 GitHub Enterprise Cloud 和 GitHub Enterprise Server。
-
如需有關共用存放庫模型的詳細資訊,請參閱 關於協作開發模型。
-
如需有關 Git 和 GitHub 的詳細資訊,請參閱 關於 GitHub 和 Git。
-
GitHub 安全性考量
Qlik Talend Cloud 支援 HTTPS 安全性通訊協定和個人存取權杖 (PAT),這是 GitHub 的預設驗證模式。如需詳細資訊,請參閱 關於 GitHub 的驗證。
開始使用
-
在 GitHub 中建立一個使用者,讓租用戶可以用來存取 GitHub。管理員可能已經為您建立了此使用者。
該使用者必須具有下列範圍:
-
repo
-
read:org
-
read:user
-
read:project
-
-
您需要對計畫變更的存放庫具有寫入存取權。
-
您必須建立 GitHub 個人存取權杖 (傳統)。不支援細部個人存取權杖。
如需詳細資訊,請參閱 GitHub 文件:管理您的個人存取權杖。
-
在 GitHub 設定中,組織是必填項目。
-
您需要在專案所在的空間中具有「可編輯」角色,才能執行版本控制動作。
-
在開始使用版本控制之前,您必須設定組態,以使用您建立的 GitHub 使用者連線至 GitHub。
-
設定好與 GitHub 的連線後,您就可以將專案連線至存放庫。
設定 GitHub 的組態
所有想要使用版本控制的使用者都必須設定組態,以使用 GitHub 使用者帳戶連線至 GitHub。
GitHub 連線

您可以在 管道專案 中或在您的使用者設定檔設定中設定 GitHub。請確定您已根據 開始使用 進行準備。
若要在 管道專案 中設定 GitHub:
-
按一下
,然後按一下 GitHub 組態。 -
使用您的組織和 開始使用 中描述的 GitHub 個人存取權杖設定驗證。
-
按一下 確定。
您現在可以將專案連線至存放庫。
將專案連線至存放庫
在開始使用版本控制之前,您必須將專案與存放庫連線。請確定您已設定與 GitHub 的連線。
將專案連線至版本控制。

-
在 管道專案 中,按一下專案上的 ...,然後選取 連線至版本控制。
-
選取要與專案建立關聯的存放庫。
-
新增基礎目錄路徑。
如果您想要連線至 GitHub 中的現有專案,則必須使用相同的路徑。
-
您可以選擇在連線後提交專案並將專案推送至遠端存放庫。輸入提交訊息。
如果您不提交並推送,系統將在工作區中建立主要分支,但不會在遠端存放庫中建立。
-
按一下 連線。
專案現在已連線至選取的存放庫。這會顯示在專案卡片底部,包含
、存放庫名稱和目前分支。
當您開啟專案時,標題列現在將包含具有版本控制選項的 GitHub 功能表。專案名稱也會附加目前分支的名稱。
使用版本控制開發專案
您可以使用不同的方法來使用版本控制:
-
直接在主要分支上工作。這主要適用於想要追蹤變更的專案單一開發人員,但也可以由同步工作的一組開發人員使用。
-
使用分支策略工作,讓多位開發人員可以做出貢獻。您也可以建立分支,以將新功能或變更彼此隔離。
單一開發人員專案的簡化工作流程
您可以直接在專案的主要分支上工作。這種方法較簡單且包含較少的操作,但仍可讓您追蹤變更。如果有多位開發人員,他們需要小心保持同步。
當您對專案進行了想要套用的變更時,只需執行 提交並推送 即可。
多開發人員專案的工作流程
如果有多位開發人員在處理專案,或者如果您想要隔離變更,則可以使用此工作流程。這涉及建立一個可以與其他使用者共用的開發分支。透過此工作流程,開發人員可以追蹤彼此的變更,並決定何時將變更合併到主要分支。
具有版本控制的多開發人員專案工作流程

-
建立新分支
從主要分支建立新的開發分支。您可以與更多使用者共用該分支。
-
開發
在專案中進行所有必要的變更。
資訊備註資料庫結構描述和連線不會在版本控制中維護。 -
套用遠端變更
將另一個分支的遠端變更套用至您的工作區,以確保您掌握另一個分支的最新變更。這有助於避免或減輕衝突的變更。
如果您有兩個包含可能衝突變更的分支,因應措施是:
-
將變更提交至兩個工作區。
-
將兩個分支合併至 main。
-
再次套用遠端變更。
-
-
提交並推送
將您的變更提交並推送至開發分支。所有物件都將被推送,因此在提交之前驗證您的專案是個好主意。
-
建立提取要求並合併
當您準備好開發時,就可以將工作區的變更合併到主要分支。
您可以在專案版本控制中建立提取要求,但合併必須在 GitHub 中執行,您也可以在其中設定核准。如需詳細資訊,請參閱 GitHub 提取要求文件
建立新分支
-
在專案中,按一下 GitHub 並選取 建立新分支。
專案必須連線至版本控制。您也必須具有專案目標連線所在空間的權限。
-
選取從主要分支建立分支。
-
輸入分支的名稱。
-
在 所有結構描述的分支前置詞 中設定要新增至專案中所有結構描述的前置詞。這可讓所有結構描述具有唯一名稱,以避免命名衝突。
-
按一下 建立
系統會從 main 建立新分支,並從存放庫簽出。該分支包含專案的新版本,所有工作都處於「新增」狀態。也就是說,它們尚未準備好,且不包含任何資料。
套用遠端變更
您可以將遠端存放庫的變更套用至您的工作區。這可能是 Qlik Cloud 整合版本控制外部建立的變更,例如在 GitHub 中或由其他工具建立。這有助於您在想要將變更提交並推送至分支時避免衝突。
-
在專案中,按一下 GitHub 並選取 套用遠端變更。
如果找到變更,將顯示 將遠端變更套用至工作區 對話方塊。
-
您現在可以選取要套用變更的工作並檢查變更。對於每個變更,您可以選取要使用的版本:遠端版本或工作區中的版本。
針對專案和匯入專案之間不同的對應連線進行任何必要的變更。
例如,匯入的專案可能使用名為 SQL1 的來源連線,而此專案使用名為 SQL2 的類似連線。在這種情況下,請在 設定原始版本中新增工作的連線 中,將匯入的連線對應至 SQL2。
如果變更包含跨專案來源,且參考的專案處於版本控制之下,則每個跨專案來源都會提供 分支 選取器。選取要使用的分支。如果參考的專案未處於版本控制之下,則不會顯示分支選取器。
資訊備註選取要對應的連線時,您可以建立新的資料庫連線,但不能建立 SaaS 應用程式連線。 -
按一下 套用遠端變更
如果變更包含新的資料工作,您必須新增來源連線和目標連線。
提交並推送
您可以將變更提交並推送至分支。由於未套用至工作區的遠端變更可能會被覆寫,因此您應該在提交和推送之前執行 套用遠端變更。
-
在專案中,按一下 GitHub 並選取 提交並推送。
如果找到變更,將顯示 提交並推送 對話方塊。
-
新增可協助您追蹤變更內容的提交訊息。
-
按一下 提交並推送
建立提取要求
建立提取要求 (PR),以將工作區的變更合併到主要分支。
-
在專案中,按一下專案上的 GitHub,然後選取 建立提取要求。
將顯示 建立提取要求 對話方塊。
-
新增提取要求的標題和說明。
您也可以選擇在建立後於 GitHub 中開啟提取要求。
-
按一下 建立提取要求。
您現在可以為提取要求設定核准,並在 GitHub 中執行合併。
刪除分支
當您將變更合併到主要分支後,就可以刪除分支。
-
在專案中,按一下要刪除的分支,然後選取 刪除分支。
您也可以選擇在版本控制中刪除遠端分支。
如果有未提交的變更,您將需要確認在刪除分支時將會遺失這些變更。
移除專案的版本控制
您可以中斷專案與版本控制的連線。如果有現有分支,則必須先將其刪除,然後才能中斷專案的連線。
-
在 管道專案 中,按一下要中斷連線之專案上的 ...,然後選取 中斷與 GitHub 的連線。
從版本控制匯入專案
您可以從版本控制匯入專案,例如,如果您想要檢閱另一位開發人員的專案或在專案上進行協作。從版本控制匯入專案也可以與其他空間或租用戶共用專案。您可以與相同租用戶或另一個租用戶上的不同空間共用專案的版本。當您想要建立兩個環境 (例如一個用於開發,一個用於生產) 時,這非常有用。"
匯入專案之前
在開始匯入專案之前:
-
如果您要匯入至新的租用戶或空間,請建立您需要的所有新連線。
-
如果專案使用租用戶或空間上尚不存在的 SaaS 應用程式連線,您必須在開始匯入之前建立連線並產生中繼資料。
-
如果您要匯入跨專案管道,則必須先匯入上游專案。
匯入專案
如果專案使用來自其他專案的工作,您必須對應專案和工作,除非空間和專案的名稱相同。
-
在 資料整合 > 專案 中,按一下 建立新項目,然後選取 從版本控制匯入專案。
-
選取存放庫,然後選取分支。
視需要選取基礎目錄路徑,然後按一下 顯示專案。
從清單中選取要匯入的專案。
按一下 下一步。
-
設定新專案的 專案屬性。
您必須在 空間 中選取要將專案新增至哪個空間。
在 資料平台 中,您可以變更專案的資料平台,以及與資料平台的連線。
如果您從另一個租用戶匯入專案,或者如果您在上一個步驟中變更了資料平台,則必須變更 連線。
您可以變更與預備區域的連線。如果您從另一個租用戶匯入專案,或者在某些情況下,如果您在上一個步驟中變更了資料平台,則需要執行此操作。
按一下 下一步。
-
設定新專案的 預設專案設定。
您可以在 所有結構描述的前置詞 中,為專案中建立的資料結構描述新增前置詞。當匯入的專案與匯出的專案位於相同的雲端資料倉庫時,這非常有用。
您也可以在 資料庫名稱 中設定預設名稱。對於 Snowflake 專案,您可以設定預設的 資料倉庫名稱,對於 Databricks 專案,您可以設定預設的 目錄名稱。您可以將專案預設名稱用於所有工作類型,或將名稱設定為預設值,或為每種工作類型設定自訂名稱。
按一下 下一步。
-
設定 連線和工作設定。
您可以取代匯入的來源連線或跨專案來源。如果您從另一個租用戶匯入專案,則需要執行此操作。
將跨專案來源對應至處於版本控制之下的專案時,會提供 分支 選取器。選取要使用的參考專案分支。如果參考的專案未處於版本控制之下,則不會顯示分支選取器。如果跨專案來源對應至非主要分支,則分支名稱會顯示在專案名稱旁邊的括號中。
在 選用工作設定 中,您也可以變更在原始專案中被覆寫的工作設定。
-
準備就緒後,按一下 匯入。
專案已新增至 資料整合 首頁。
處理從版本控制匯入的專案
您的工作方式與一般版本控制專案相同,但有一些差異:
-
您只能切換至主要分支,或切換至從版本控制匯入的另一個分支。
-
如果您從分支匯入,主要分支將會是空的。
-
刪除專案不會刪除遠端版本。
安全性考量
請確定您在 Qlik Talend Data Integration 和 GitHub 之間維護同步的安全性組態。
-
在 Qlik Talend Data Integration 中,權限是根據可能包含多個專案的空間。在 GitHub 中,權限是根據可能也包含多個專案的存放庫。最佳做法是將它們對齊,並將一個空間中的所有專案連線至同一個存放庫。
-
請記住,Qlik Talend Data Integration 和 GitHub 對使用者使用不同的權限和角色。
最佳做法
以下是使用版本控制處理專案時的一些一般最佳做法。
-
新增描述 GitHub 中存放庫的 README 檔案。如需詳細資訊,請參閱 關於 README。
如果您從空的存放庫開始,Qlik Talend Cloud 版本控制將會自動新增一個空的 README.md 檔案。
-
一般而言,您應該讓 Qlik Talend Cloud 版本控制管理 GitHub 存放庫。
-
僅提交有效且經過測試可執行的專案。
如果您新增包含尚未準備或轉換的登陸或已註冊資料工作的專案,則尚未包含來源欄。來源欄會在準備和轉換工作時新增。
-
當您為複寫專案建立分支時,您應該注意分支預設使用相同的目標。這表示在分支中執行工作可能會覆寫主要版本的資料。為避免資料遺失,請變更分支中的目標設定,使其不與主要版本衝突。
-
當您建立分支時,可能會有尚未套用至工作區的遠端變更。除非您想要捨棄遠端變更,否則請在建立分支之前或之後套用遠端變更。
-
在兩個不同的分支中對同一個資料集進行變更,可能會導致難以解決的合併衝突,並導致重新建立資料集。
資訊備註將資料集新增至工作時,它會取得一個內部識別碼。內部識別碼用於允許在管道中進行無縫重新命名和其他中繼資料作業。在個別專案或分支中建立相同的資料集時,內部識別碼將會不同,這可能會在合併兩個分支時導致衝突。這可能會導致準備程序捨棄並重新建立資料集,即使它具有相同的名稱。
在分支中工作
您可以建立專案、進行設計,並在準備就緒時,使用 MAIN 分支將其部署到生產環境。MAIN 上的版本對應於您的生產管道。在第一次部署之後,您絕對不應該直接編輯 MAIN 分支。
每當開發人員想要在專案中進行新變更 (例如新增功能或修正錯誤) 時,都需要建立新分支。
開發人員可以根據其開發需求建立任意數量的分支
-
為分支使用結構描述前置詞,以避免在進行變更時發生資料庫衝突。
-
在分支中,開發人員可以進行任意數量的變更,並根據需要多次提交和推送。建議將每個變更隔離在獨立的個別提交中。例如,如果您對轉換工作進行變更,而該變更也會影響資料超市,請確保在單一提交中包含這兩個變更
-
所有團隊成員應隨時使用 套用遠端變更,以確保其 MAIN 是最新的,尤其是在提交其變更之前。
當開發人員在分支中完成工作時,他們可以建立提取要求以進行同儕審查。
經過其他團隊成員的審查和核准後,您可以將提取要求與 GitHub 中的 MAIN 版本合併。
最後,在專案中使用 套用遠端變更,將核准的分支變更提取回 MAIN 分支 (生產環境)。
在空間中工作
對於較大且關鍵的部署,建議使用專用的開發和生產空間來隔離變更並確保管道完整性。在每個空間中為來源和目標使用專用的資料連線。
-
生產
MAIN 分支反映了生產環境中的內容。這表示專案只有一個 MAIN 版本。
生產環境隔離在專用的資料空間中,例如 PROD。專用連線會指派給生產空間。
不會直接在生產空間/MAIN 分支中進行任何變更。所有變更都是在具有專用連線的其他空間中,使用分支進行的。
您可以重複使用 GitHub 中現有專案的 MAIN 版本。建立一個與 GitHub 中現有專案同名的空專案。這會擷取 MAIN 分支上最新可用的版本以開始編輯。
使用者建立新分支、進行變更、建立提取要求、合併,然後提取回 MAIN/生產環境。
-
開發
開發人員可以將其變更隔離在專用的資料空間中,例如 DEV。專用連線會指派給 DEV 空間。
變更是使用分支隔離的,通常每位開發人員一個分支。建立分支時使用結構描述前置詞,以避免在進行變更時發生資料庫衝突。
-
審查 / 品質驗收
審查者被授予存取開發空間和連線的權限,以:
-
在 Qlik Talend Cloud 中開啟並測試專案分支。
-
核准提取要求以繼續在 GitHub 中合併。
-
在可以將核准的變更提取回 MAIN/生產環境時通知團隊成員。
-
將核准的變更部署回 MAIN/生產空間時,您必須將連線重新指派給生產空間連線。
限制
-
以 Qlik Cloud (QVD) 為目標的專案不支援版本控制。
-
如果有分支,則無法中斷連線或刪除使用版本控制的專案。必須先刪除分支,然後才能中斷連線或刪除專案。
-
無法重新命名使用版本控制的專案。
-
當您刪除租用戶時,儲存在 GitHub 版本控制中的物件將不會被刪除。您需要手動刪除這些物件。
-
如果存放庫被許多專案使用,或包含許多未儲存在 Qlik Talend Data Integration 中的檔案,效能可能會降低。
-
資料庫結構描述和連線不會在版本控制中維護。
-
不支援 GitHub 細部個人存取權杖。
-
每個存放庫中只有一個專案可以使用一個分支 (主要分支除外),即使兩個專案位於同一個存放庫中也是如此。
-
無法從使用不同目標平台的專案套用遠端變更。例如,如果您將變更提交至 Snowflake 上的專案,則無法將變更套用至 Databricks 專案。