与 Git 共享代码

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

使用 Git 存储库时,在 Azure DevOps 中与他人共享代码。

先决条件

类别 要求
项目访问权限 项目成员.
Git 命令行工具 以下 Git 命令行工具之一:
- Git for Windows 和 Git Credential Manager
- Git for macOS 或 Git for Linux。 对于 macOS 和 Linux,建议配置 SSH 身份验证

1.将存储库克隆到计算机

若要使用 Git 存储库,请将其克隆到你的计算机上,这将创建一个完整的存储库本地副本。 代码可能位于以下几个位置之一。

  1. 完成以下适用于你场景的步骤:

  2. 从 Web 浏览器,打开组织的团队项目,然后选择“存储库”>“文件”

    突出显示“存储库和文件”的项目的屏幕截图。

  3. 选择“克隆”。

    屏幕截图显示了存储库文件中突出显示的“克隆”按钮。

  4. 复制 URL。

    屏幕截图显示了用于复制 URL 的突出显示的复制图标。

  5. 打开 Git 命令窗口(适用于 Windows 的 Git 上的 Git Bash)。 转到要将存储库中的代码存储在计算机上的文件夹,运行 git clone,然后运行上一步中从克隆 URL复制的路径。 请参阅以下示例:

    git clone https://FabrikamFiber01@dev.azure.com/FabrikamFiber01/FabrikamFiber01-01/_git/FabrikamFiber01-01
    

    Git 会将代码的副本(包括存储库中的所有提交分支)下载到新文件夹中供你使用。

  6. 将目录切换到克隆的存储库。

    cd fabrikam-web
    

    保持此命令窗口打开,以便在分支中工作。

2. 在分支中工作

Git 分支会将你的更改与项目中正在完成的其他工作分离开来。 建议使用 Git 工作流,这可为你处理的每个功能或修补程序使用一个新的分支。 在我们的示例中,我们使用分支 users/jamal/feature1

  1. 使用 branch 命令创建分支。

    git branch users/jamal/feature1
    

    此命令在 Git 中为新分支创建一个引用。 它还创建了一个指向父提交的指针,这样当你向分支添加提交时,Git 就可以保存更改的历史记录。

    如果你正在使用先前克隆的存储库,请确保在创建新分支之前签出了正确的分支 (git checkout main) 并确保它是最新的 (git pull origin main)。

  2. 使用 checkout 切换到该分支。

    git checkout users/jamal/feature1
    

    Git 将根据签出分支上的最新提交来更改计算机上的文件。

    提示

    从命令行创建分支时,该分支基于当前签出的分支。 克隆存储库时,会签出默认分支(通常为 main)。由于你进行了克隆,本地 main 副本具有最新更改。

    git checkout main
    git pull origin main
    git branch users/jamal/feature1
    git checkout users/jamal/feature1
    

    可以将前一个示例中的前三个命令替换为以下命令,该命令将基于最新的 main 分支创建一个名为 users/jamal/feature1 的新分支。

    git pull origin main:users/jamal/feature1
    

    切换回上一部分使用的 Git Bash 窗口。 运行以下命令,以基于主分支创建和签出新分支。

    git pull origin main:users/jamal/feature1
    git checkout feature1
    

3. 使用代码

在以下步骤中,我们对计算机上的文件进行更改,在本地提交更改,然后将提交推送到存储在服务器上的存储库。

  1. 浏览到计算机上要在其中克隆存储库的文件夹,然后在选择的编辑器中打开 README.md 文件,并进行一些更改。 然后,保存并关闭该文件。

  2. 在 Git 命令窗口中,通过输入以下命令转到 contoso-demo 目录:

    cd contoso-demo
    
  3. 通过在 Git 命令窗口中输入以下命令来提交更改:

    git add .
    git commit -m "My first commit"
    

    git add . 命令暂存任何新的或更改的文件,git commit -m 使用指定的提交消息创建提交。

    在提交之前检查你正在处理哪个分支,以免将更改提交到错误的分支。 Git 始终将新提交添加到当前本地分支。

  4. 将更改推送到服务器上的 Git 存储库。 在 Git 命令窗口中输入以下命令:

    git push origin users/jamal/feature1
    

现在,你的代码在名为 users/jamal/feature1 的分支中共享到远程存储库。 若要将工作分支中的代码合并到 main 分支中,请使用拉取请求。

4. 将更改与拉取请求合并

拉取请求将对代码的评审和合并组合到一个协作过程中。 当你在分支中修复 bug 或新功能后,请创建一个新的拉取请求。 将团队成员添加到拉取请求中,以便他们可对你所作的更改进行评审和投票。 使用拉取请求评审正在进行的工作,及早获取更改反馈。 所有者可随时放弃拉取请求,因此不保证会合并更改。

以下示例演示创建和完成拉取请求的基本步骤。

  1. 在 Web 浏览器中打开你组织的团队项目,然后选择“存储库”>“文件”。 如果你在获取克隆 URL 后保持浏览器打开,只需切换回它即可。

  2. 在“文件”窗口的右上角选择“创建拉取请求”。 如果你没有看到类似“你刚才更新了 users/jamal/feature1”的消息,请刷新浏览器。

    创建拉取请求

    新的拉取请求配置为将分支合并到默认分支,在本示例中为 main。 标题和说明预先填充了你的提交消息。

    新建拉取请求

    你可以向拉取请求添加审阅者链接工作项

    可以在“新建拉取请求”窗口的底部查看拉取请求中包含的文件。

    拉取请求中的文件

  3. 选择“创建”

    从“概述”选项卡查看拉取请求的详细信息。还可以从其他选项卡查看拉取请求中更改的文件、更新和提交。

  4. 选择“完成”,以开始完成拉取请求的过程。

    拉取请求

  5. 选择“完成合并”,以完成拉取请求,并将代码合并到 main 分支中。

    完成拉取请求

    注意

    此示例显示创建和完成拉取请求的基本步骤。 有关详细信息,请参阅创建、查看和管理拉取请求

更改现已合并到 main 分支中,你的 users/jamal/feature1 分支将在远程存储库中删除。

查看历史记录

  1. 切换回 Web 门户,在“代码”页中选择“历史记录”以查看新提交。

    Web 门户的屏幕截图,其中突出显示了“历史记录”

  2. 切换到“文件”选项卡,选择自述文件以查看更改。

    自述文件屏幕截图

清理

若要删除分支的本地副本,请切换回 Git Bash 命令提示符并运行以下命令:

git checkout main
git pull origin main
git branch -d users/jamal/feature1

此操作完成以下任务:

  • git checkout main 命令会将你切换到 main 分支。
  • git pull origin main 命令将向下拉取主分支中最新版本的代码,包括更改和 users/jamal/feature1 被合并的事实。
  • git branch -d users/jamal/feature1 命令将删除该分支的本地副本。

后续步骤