快速入门:使用 Git 编写代码

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

在本快速入门中,了解如何与他人共享代码。 在Azure DevOps中创建新的组织和项目后,可以使用 Git 开始编码。

若要使用 Git 存储库,请将其克隆到计算机。 克隆存储库会创建存储库的完整本地副本,供你使用。 克隆还会下载存储库中的所有 提交分支 ,并设置与服务器上的存储库的命名关系。 使用此关系与现有存储库交互,推送和拉取更改以与团队共享代码。

安装 Git 命令行工具

安装以下 Git 命令行工具之一:

获取代码

若要获取源代码的副本,请克隆包含代码的 Git 存储库。 克隆会同时创建源代码的本地副本,以便可以使用它。 克隆还会创建所有版本控制信息,以便 Git 可以管理源代码。

如果刚开始Azure Repos,代码可能位于以下几个位置之一:

我刚刚在Azure DevOps创建了我的组织,所以我没有任何代码

如果刚刚注册了Azure DevOps Services,则默认情况下,你有一个名为的项目MyFirstProject和一个名为 MyFirstProjectGit 存储库的项目。 如果要在该存储库中工作,可以 克隆它 ,然后将代码添加到该存储库。

若要创建新的存储库,请按照 在项目中创建新的 Git 存储库中的步骤操作。 然后, 克隆 新存储库并在那里添加代码。

代码位于我的 (或组织的) Azure Repos Git 存储库中

如果代码位于 (或组织的) Azure 存储库中,则可以将 Git 存储库克隆到本地计算机,然后通过跳转到 “克隆存储库”来开始使用它。

代码位于另一个 Git 存储库中

如果代码位于另一个 Git 存储库中,例如GitHub存储库或其他 Azure 存储库实例,则可以将其导入到新的或现有的空 Git 存储库中。 按照 导入 Git 存储库中的步骤操作。 然后,返回到本文并跳转到 克隆存储库

代码位于我的本地计算机上,尚不在版本控制中

如果代码尚未在版本控制中,则有几个选项:

  • 创建新的存储库,并在其中添加代码。 若要创建新存储库并向其添加代码,请按照 项目中的“创建新 Git 存储库”中的步骤操作。 然后,返回到本文,然后跳到 克隆存储库
  • 将代码添加到现有存储库。 若要将代码添加到现有存储库,请跳到 克隆存储库

克隆存储库后,我们将介绍如何将现有代码添加到存储库。

将存储库克隆到计算机

若要使用 Git 存储库,请将其克隆到计算机。 克隆存储库会创建存储库的完整本地副本,供你使用。 克隆还会下载存储库中的所有 提交分支 ,并设置与服务器上的存储库的命名关系。 使用此关系与现有存储库交互,推送和拉取更改以与团队共享代码。

  1. 在 Web 浏览器中,打开组织的团队项目,然后选择Repos>Files。 如果没有团队项目, 请立即创建一个项目

    Screenshot of project with Repos and Files highlighted.

  2. 选择“代码”窗口右上角的 “克隆 ”并复制 URL。

    Screenshot of project with Copy icon highlighted.

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

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

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

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

    cd fabrikam-web
    

    使此命令窗口保持打开状态,因为你将在以下步骤中使用它。

  1. 在 Web 浏览器中,打开组织的项目,然后选择 “代码”。 如果没有项目, 请立即创建一个项目

  2. 选择“代码”窗口右上角的 “克隆 ”,然后复制 URL。

    Screenshot of project in web browser, with Copy icon highlighted.

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

    git clone https://contoso-ltd.visualstudio.com/MyFirstProject/_git/contoso-demo
    

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

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

    cd contoso-demo
    

    使命令窗口保持打开状态, (在以下步骤) 使用它。

在分支中工作

Git 分支 将更改与项目中正在完成的其他工作隔离开来。 建议的 Git 工作流 使用新分支来处理每个功能或修复。

使用 branch 命令创建分支。 此命令在 Git 中为新分支创建引用。 它还会创建指向父提交的指针,以便 Git 可以在向分支添加提交时保留更改的历史记录。

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

使用命令在本地 checkout 分支之间切换。 Git 将更改计算机上的文件,以匹配签出分支上的最新提交。

在此步骤中,我们将创建一个工作分支,并更改该分支中的计算机上的文件。

branch使用命令创建分支并checkout切换到该分支。 在以下示例中,将命名 users/jamal/feature1新分支。

git branch users/jamal/feature1
git checkout users/jamal/feature1

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

如果使用的是以前克隆的存储库,请确保已签出正确的分支 () git checkout main ,并在创建新分支之前 () 最新 git pull origin 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

浏览到本地计算机上的存储库位置,对其中一个文件进行编辑,并将其保存。 如果要将代码从本地计算机添加到存储库,可以通过将其复制到克隆存储库的文件夹来在此处添加它。

使用代码

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

  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 指定的提交消息创建提交。

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

    git push origin users/jamal/feature1
    

Your code is now shared to the remote repository, in a branch named users/jamal/feature1. 若要将工作分支中的代码合并到 main 分支中,请使用拉取请求。

使用拉取请求查看和合并更改

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

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

  1. 在 Web 浏览器中,打开组织的团队项目,然后选择Repos>Files。 如果在获取克隆 URL 后保持浏览器打开状态,只需切换回浏览器即可。

    Repos files

  2. 选择“文件”窗口右上角的“创建拉取请求”。 如果目前未看到用户 /jamal/feature1 等消息,请刷新浏览器。

    Create a pull request

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

    New pull request

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

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

    Files in the pull request

    选择 “创建” 以创建拉取请求。

  4. 可以从 “概述 ”选项卡查看拉取请求的详细信息。还可以从其他选项卡查看拉取请求中更改的文件、更新和提交。 选择 “完成 ”以开始完成拉取请求的过程。

    Pull request

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

    Complete pull request

注意

此示例演示创建和完成拉取请求的基本步骤。 若要了解有关拉取请求的详细信息,包括投票和审阅、批注、自动完成等,请参阅 “创建”、“查看和管理拉取请求”。

  1. 在 Web 浏览器中,打开组织的团队项目,然后选择 “代码 ”页。 如果没有团队项目, 请立即创建一个项目

  2. 选择“代码”页右上角的“克隆”并复制“克隆 URL”。

    Retrieve the clone URL

  3. 打开 Git 命令窗口(例如 Git 上的 Git Bash for Windows),并浏览到要从存储在计算机上的存储库中的代码的文件夹。 运行 git clone 后跟上一部分中从 克隆 URL 复制的路径,如以下示例所示。

    git clone https://dev.azure.com/contoso-ltd/MyFirstProject/_git/contoso-demo
    

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

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

    cd fabrikam-web
    

    使此命令窗口保持打开状态,因为你将在以下步骤中使用它。

更改现在合并到 main 分支中,并在 users/jamal/feature1 远程存储库上删除分支。 若要删除分支的本地副本,请切换回 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 命令删除该分支的本地副本。

现在,你已准备好创建新的分支,编写一些代码,然后再次执行此操作。

查看历史记录

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

    Screenshot of web portal, with History highlighted

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

    Screenshot of README file

  1. 切换回 Web 门户,然后从“代码”选项卡中选择“历史记录”以查看新提交。 将显示两个提交:第一个提交,其中自述文件和 .gitignore 在创建存储库时添加,以及刚刚提交的提交。

    View commit history

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

    View changed file

后续步骤