使用揀選來複製變更
本文內容
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Visual Studio 2019 |Visual Studio 2022
Git 櫻桃選擇 會將變更從一或多個來源分支 認可 複製到目標分支。 不同於 合併 或 重新基底 ,櫻桃選擇可讓您選取特定的來源分支認可。 針對您挑選的每個來源分支認可,Git 會在目標分支上建立對應的認可。
您可以挑選來處理這些常見的工作:
將特定功能從一個分支部署到另一個分支。
複製您在錯誤分支上認可的工作。
在多個分支上套用錯誤修正。
如需 Git 工作流程的概觀,請參閱 Azure Repos Git 教學課程 。
挑選認可
Azure Repos
Azure Repos 為切入挑選提供有限的支援,而且只為了建立提取要求,在目標分支上套用 Hotfix。 如需詳細資訊,請參閱 改善 Azure DevOps 櫻桃挑選 。
Azure Repos 中提取要求功能表中的 [櫻桃選擇 ] 選項會執行下列動作:
從提取要求的目標分支建立新的主題分支。
櫻桃挑選 從提取要求的來源分支到新主題分支的所有 變更。
提示您建立新的提取要求,以將新主題分支合併至另一個目標分支。
如需逐步教學課程,請參閱 使用櫻桃挑選 建立新的提取要求。
GitHub
GitHub Web 介面不支援切入挑選,但 GitHub Desktop 則支援。 如需如何在 GitHub Desktop 中挑選櫻桃的逐步指引,請參閱 挑選認可 。
Visual Studio 2022 提供 Git 版本控制體驗,方法是使用 Git 功能表、Git 變更 ,以及透過 方案總管 中的 操作功能表。 Visual Studio 2019 16.8 版也提供 Team Explorer Git 使用者介面。 如需詳細資訊,請參閱 Visual Studio 2019 - Team Explorer 索引標籤。
選擇 [Git > 管理分支 ] 以開啟 [Git 存放庫 ] 視窗。
在 [ Git 存放庫 ] 視窗中,以滑鼠右鍵按兩下目標分支,然後選擇 [ 簽出 ]。
在 [ 分支 ] 檢視中,以滑鼠右鍵按兩下來源分支,然後選擇 [檢視歷程記錄 ] 以開啟認可 歷程記錄 索引標籤。
在 [ 歷程記錄] 索引卷標中,以滑鼠右鍵按下您想要挑選的認可,然後選擇 [ 櫻桃挑選 ]。 Visual Studio 一次不支持挑選多個認可,因此您必須針對您想要挑選的每個認可重複此步驟。
Visual Studio 會建立新的目標分支認可,其中包含從櫻桃挑選的認可所做的變更。 如果櫻桃挑選作業未順利完成,Visual Studio 會通知您。
Visual Studio 2019 16.8 版和更新版本提供 Git 版本控制體驗,同時維護 Team Explorer Git 使用者介面。 若要使用Team Explorer ,請從功能表列取消核取 [工具> 選項 >預覽功能 >] [新增 Git 使用者體驗]。 您可以從任一接換使用 Git 功能。
在 [Team Explorer] 中,選取 [ 首頁 ] 按鈕,然後選擇 [ 分支 ]。
在 [ 分支 ] 檢視中,以滑鼠右鍵按兩下目標分支,然後選擇 [ 簽出 ]。
在 [ 分支 ] 檢視中,以滑鼠右鍵按兩下來源分支,然後選擇 [檢視歷程記錄 ] 以開啟認可 歷程記錄 索引標籤。
在 [ 歷程記錄] 索引卷標中,以滑鼠右鍵按下您想要挑選的認可,然後選擇 [ 櫻桃挑選 ]。 Visual Studio 一次不支持挑選多個認可,因此您必須針對您想要挑選的每個認可重複此步驟。
Visual Studio 會建立新的目標分支認可,其中包含從櫻桃挑選的認可所做的變更。 如果櫻桃挑選作業未順利完成,Visual Studio 會通知您。
git log
使用 命令來列出來源分支認可。 旗 --oneline
標會縮寫認可資訊。
git log --oneline <source branch>
Git 會先列出最新的認可。 每個認可標識碼都是可唯一識別認可的部分 SHA-1 哈希。 例如:
e745d06 (HEAD -> add-network-controller) Add a test initialization class
a89f48e (origin/add-network-controller) Add fiber optic transceiver test
31da50b Add network switch test
e74baa2 (origin/main, origin/HEAD, test-fiber-optic-transmitter, main) Add readme content
0c14391 Add readme file
32e3946 Add project files.
記下您要挑選的認可標識碼。
如果尚未取出,請查看目標分支。
git checkout <target branch>
認可 、隱藏或捨棄任何未認可的變更。
若要挑選單一認可:
git cherry-pick <commit ID>
若要挑選多個認可,請以空格分隔認可標識符。 認可會依您輸入的順序套用:
git cherry-pick <commit1 ID> <commit2 ID> <commit3 ID>
若要挑選包含的認可範圍,請使用^..
點範圍表示法 :
git cherry-pick <oldest-commit ID>^..<newest-commit ID>
當您挑選多個認可時,預設的櫻桃選擇命令會建立對應的新目標分支認可序列。 若要告知 Git 暫存且不認可目標分支變更,請使用 -n
旗標:
git cherry-pick -n <commit1 ID> <commit2 ID>
然後,您可以手動建立單一認可,以包含櫻桃挑選作業的所有變更。
Git 會在櫻桃挑選作業期間發生合併衝突時通知您。 您可以 解決衝突 ,然後執行 git cherry-pick --continue
,或執行 git cherry-pick --abort
以復原櫻桃挑選作業。
下一步
相關文章