日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

通過 git-repo 提交代碼評審

本文主要幫助您熟悉如何使用git-repo工具高效地提交代碼進行評審,從而提高團隊協(xié)作效率。

單倉庫代碼評審

大多數(shù)用戶參與的項目是一個代碼倉。對于單倉庫操作, git-repo 提供了如下命令擴展:

  • git peer-review 或git pr:創(chuàng)建代碼評審。

  • git abandon:清理當前完成評審發(fā)起的分支。

  • git download:下載評審的代碼到本地。

git peer-review

git-repo 針對常用的單倉庫的工作區(qū),提供了快捷的創(chuàng)建代碼評審的命令:git peer-review。該命令可以簡寫為 git pr 或者 git review。

1. 創(chuàng)建代碼評審

使用 git peer-review 命令創(chuàng)建代碼評審的步驟如下:

1.1 克隆遠程倉庫到工作區(qū)

克隆遠程倉庫到本地工作區(qū),例如克隆本git-repo網(wǎng)站的倉庫。 (如果工作區(qū)中已經(jīng)存在該倉庫,則忽略此步驟。)

$ git clone gi**@codeup.aliyun.com:codeup/codeup.git

切換到本地倉庫的工作區(qū):

$ cd codeup

1.2 創(chuàng)建特性分支

在本地工作區(qū)中創(chuàng)建新的工作分支。這個步驟不是必須的,使用當前分支(如 master 分支)也可以。但是如果需要在一個工作區(qū)目錄切換不同特性的開發(fā),則創(chuàng)建分支是需要的,否則多個特性的代碼可能混在同一個代碼評審任務中,或相互覆蓋。

$ git checkout -b topic1 origin/master

上面命令的兩個參數(shù)要重點說明一下:

  • 參數(shù) -b topic1 設定了新的工作分支的名稱。

  • 最后的 origin/master 參數(shù),則是為了將新建分支和上游的master分支建立關聯(lián)。這個參數(shù)很重要,如果忘了添加該參數(shù),則在用 git peer-review 創(chuàng)建代碼評審時,會提示補救措施。

1.3 工作區(qū)內(nèi)開發(fā)和提交

在工作區(qū)中進行代碼開發(fā)工作,使用標準的 Git 命令進行提交。

1.4 發(fā)起代碼評審

當完成本地開發(fā)后,需要將代碼推送到上游倉庫,并創(chuàng)建代碼評審時,執(zhí)行如下命令:

$ git pr

該命令的參數(shù)有很多,可以設置代碼評審需要的各項參數(shù),例如:

  • 指定評審者和關注者。多個用戶郵箱之間可以用(半角)逗號分開。

$ git pr --reviewers ja**@gmail.com,ro**@gmail.com --cc car**@gmail.com
  • 設定代碼評審處于草稿狀態(tài),可以發(fā)表評審意見,但是不能合入。

$ git pr --draft

如果希望退出草稿狀態(tài),可以在“合并請求”詳情內(nèi),點擊標題進行編輯,刪除標題的”WIP“前綴后,保存即可退出草稿狀態(tài)。如果當前分支相比遠程分支沒有新提交,則不會創(chuàng)建代碼評審,顯示提示信息如下:

$ git pr
    NOTE: no branches ready for upload

如果已經(jīng)發(fā)起過一次代碼評審,且之后沒有代碼改動,也不會執(zhí)行。

顯示的提示信息如下:

$ git pr
    NOTE: no change in project . (branch topic1) since last upload
    NOTE: no branches ready for upload

如果本地分支未跟蹤某一個遠程分支,則 git peer-review 命令不知道該向哪個遠程分支發(fā)起代碼評審。必須設置本地分支和遠程分支的跟蹤,才可以發(fā)起代碼評審。命令報錯信息如下:

$ git pr
    FATAL: upload failed: cannot find tracking branch
    Please run command "git branch -u <upstream>" to track a remote branch. E.g.:
        git branch -u origin/master

參照提示信息中的命令,建立工作區(qū)本地分支和遠程分支的跟蹤關系。

1.5 代碼評審的編輯界面

輸入 git pr 命令后,會打開一個編輯器,內(nèi)容是此次代碼評審的各項可定制的參數(shù),內(nèi)容如下:

##############################################################################
    # Step 1: Input your options for code review
    #
    # Note: Input your options below the comments and keep the comments unchanged
    ##############################################################################
    # [Title]       : one line message below as the title of code review
    # [Description] : multiple lines of text as the description of code review
    # [Issue]       : multiple lines of issue IDs for cross references(暫未支持,僅占位)
    # [Reviewer]    : multiple lines of user names as the reviewers for code review
    # [Cc]          : multiple lines of user names as the watchers for code review(暫未支持,僅占位)
    # [Draft]       : a boolean (yes/no, or true/false) to turn on/off draft mode
    # [Private]     : a boolean (yes/no, or true/false) to turn on/off private mode(暫未支持,僅占位)
    ##############################################################################
    # Step 2: Select project and branches for upload
    #
    # Note: Uncomment the branches to upload, and not touch the project lines
    ##############################################################################
    #
    # project ./:
       branch topic1 ( 3 commit(s)) to remote branch master:
    #         03c01e211122b49fe05f48e08fd3e1dd1c52e57e
    #         ec78989440697fbc13bfbd3ea082fe9b3fc5f2d7
    #         4e599aa284ed64ba12ba1b5b06fbbd3199846434

其中以字符 "#" 開始的行是注釋,不要改動注釋行,因為 git-repo 要根據(jù)注釋行的內(nèi)容判斷用戶輸入內(nèi)容用于更改哪項代碼評審的參數(shù)設置。 例如:

  • 在 "# [Title]" 行的下面添加的內(nèi)容,成為代碼評審的標題。默認用提交說明的標題作為代碼評審標題。

  • 在 "# [Description]" 行的下面添加的內(nèi)容,成為代碼評審的詳細描述。默認用提交說明的內(nèi)容作為代碼評審的詳細描述。

  • 在 "# [Reviewer]" 行的下面添加代碼評審者在云效已綁定的主郵箱,一個一行,或者用逗號分隔。

  • 在 "# [Draft]" 行的下面如果輸入yes,則表明要創(chuàng)建一個草稿模式的代碼評審。

  • 在最下面的 "Step 2" 區(qū)域,顯示當前項目將要上傳到遠程倉庫的分支和提交列表。檢查提交列表,如果不想創(chuàng)建此次代碼評審,則將 "branch ..." 的行注釋掉,或者刪掉,則此次創(chuàng)建代碼評審的任務終止。

  • [Issue] [Cc] [Private] 當前未支持。

保存內(nèi)容,退出編輯器,則開始向服務端推送代碼,并開始代碼評審的創(chuàng)建。

編輯的內(nèi)容會以模板的方式保存,以便在下一次執(zhí)行 git peer-review 時復用。

1.6 完成代碼評審的創(chuàng)建

git peer-review命令執(zhí)行完畢后,顯示代碼評審創(chuàng)建成功的消息,示例如下:

remote: +-----------------------------------------------------------------------------+
    remote: | Merge Request #888 was created or updated.                              |
    remote: | View merge request at URL:                                                  |
    remote: | https://codeup.aliyun.com/codeup/codeup/merge_request/888 |
    remote: +-----------------------------------------------------------------------------+
    To ssh://codeup.aliyun.com/codeup/codeup.git
     * [new branch]      topic1 -> refs/for/master/master

注意到提示信息中包含創(chuàng)建成功的代碼評審的 URL 地址,通過瀏覽器訪問該地址,顯示創(chuàng)建好的代碼評審。

1.7 服務器端倉庫的變化

通過命令行工具在服務器端創(chuàng)建代碼評審,服務端不會創(chuàng)建新的分支,但是為了方便用戶遠程下載評審代碼,倉庫中生成了一個特殊的引用。

例如上面創(chuàng)建的第 888 號代碼評審,會創(chuàng)建包含該評審 ID 號的,名為 refs/merge-requests/888/head 的特殊引用。下載該待評審的代碼,可以使用如下命令:

$ git fetch origin refs/merge-requests/888/head
      From codeup.aliyun.com:codeup/codeup
       * branch            refs/merge-requests/1452262/head -> FETCH_HEAD

檢出相關代碼:

$ git checkout FETCH_HEAD

2. 評審作者重新發(fā)送,刷新代碼評審

代碼評審很少一蹴而就,針對評審者的意見,開發(fā)者(評審任務的創(chuàng)建者)往往需要重新上傳代碼刷新代碼評審。對于Codeup上創(chuàng)建的代碼評審任務,重復執(zhí)行 git peer-review 命令即可。

  1. 開發(fā)者首先在本地工作區(qū)修改代碼。

  2. 執(zhí)行如下命令,向遠程倉庫推送并刷新代碼評審任務:

$ git pr

3. 下載和更新代碼評審

除了代碼評審的作者,評審者們也可以對評審進行更新,讓一個代碼評審的相關人員可以協(xié)同工作,提升效率。

例如,一個用戶作為上面創(chuàng)建的第 888 號代碼評審的review,可以通過下面的命令將代碼評審下載到本地:

$ git clone gi*@codeup.aliyun.com:codeup/codeup.git
$ cd codeup
$ git download 888

評審下載成功后,HEAD會自動切換到代碼評審的最新提交版本(作為detached引用),如果希望在一個分支下工作,可以執(zhí)行。

$ git checkout -b topic1

review可以正常工作,提交代碼后執(zhí)行以下命令對第 888 號代碼評審進行更新。

$ git pr --change 888

4. 命令行創(chuàng)建和更新代碼評審的授權(quán)

git-repo針對集中式評審設計了新的授權(quán)模型:

  • 對于創(chuàng)建評審操作,用戶只要擁有倉庫的讀取權(quán)限,就能向倉庫發(fā)起代碼評審,實現(xiàn)了倉庫的人人可寫。

  • 對于更新評審操作,用戶需要為評審的author或reviewer,方可對評審進行更新。

5. 第三方應用覆蓋了別名命令

OpenStack 社區(qū)的代碼評審工具名為 git-review,如果系統(tǒng)中安裝了 OpenStack 社區(qū)的 git-review 工具,則執(zhí)行 git-repo 注冊的別名命令 git-review 在運行時被覆蓋。

執(zhí)行 git repo 命令,如果發(fā)現(xiàn)存在別名命令被覆蓋的情況,會顯示警告信息。

$ git repo
    WARNING: you cannot use the git-repo alias command 'git-review', it is overrided by '/usr/local/bin/git-review' installed
    ... ...

遇到這種情況,請使用其它未占用的別名命令,如:git pr