티스토리 뷰

반응형

해당 글은 Hyperledger Fabric 페이지의 게시글을 번역 및 정리한 자료입니다.

원본 사이트 : http://hyperledger-fabric.readthedocs.io/en/release/Gerrit/best-practices.html

이 문서는 Gerrit를보다 효과적으로 사용하는 데 도움이되는 몇 가지 모범 사례를 제공합니다. 콘텐츠를 쉽게 제출할 수있는 방법을 보여주기위한 것입니다. 권장 사례를 사용하여 문제 해결 시간을 줄이고 커뮤니티 참여를 향상 시키십시오.


Browsing the Git Tree(Git 트리 찾아보기)

Visit Gerrit then select Projects --> List --> SELECT-PROJECT --> Branches. Select the branch that interests you, click on gitweb located on the right-hand side. Now, gitweb loads your selection on the Git web interface and redirects appropriately.

Gerrit를 방문한 다음 Projects --> List --> SELECT-PROJECT --> Branches를 선택하십시오. 관심있는 지점을 선택하고 오른쪽에있는 gitweb을 클릭하십시오. 이제, gitweb은 Git 웹 인터페이스에서 선택한 것을로드하고 적절히 리디렉션합니다.


Watching a Project(프로젝트 보기)

Gerrit를 방문한 다음 오른쪽 상단에있는 Settings을 선택하십시오. Watched Projects를 선택한 다음 관심있는 프로젝트를 추가하십시오.


Commit Messages(커밋 메시지)

Gerit은 Git commit 메시지 형식을 따른다. 머리글이 맨 아래에 있고 서로 사이에 빈 줄이 들어 있지 않은지 확인하십시오. 다음 예는 커밋 메시지에서 예상되는 형식과 내용을 보여줍니다.

짧은 줄 (50 자 이하) 한 줄 설명.

이유 (동기 부여), 변경된 사항 및 테스트 방법을 참조하여 변경된 사항을 정교하게 요약합니다. 72 자 / 줄로 텍스트를 줄 바꿈하여 코드 변경 사항과 일관되게 유지되도록 만든 설명서의 변경 사항도 확인하십시오.

  • Jira : FAB-100
  • 변경 ID : LONGHEXHASH
  • 서명 한 사람 : 귀하의 이름 your.email@example.org
  • AnotherExampleHeader : 다른 값의 예

Gerrit 서버는 한 번 사용하는 Change-Id를 자동 생성하기위한 사전 커밋 (precommit hook)을 제공합니다.

추천 읽을 자료 : Git Commit 메시지 작성 방법


Avoid Pushing Untested Work to a Gerrit Server(테스트되지 않은 작업을 Gerrit Server로 푸시 피하기)

테스트되지 않은 작업을 Gerrit로 푸시하지 않기

변경 사항을 Gerrit로 보내기 전에 작업을 적어도 세 번 확인하십시오. 게시하는 정보에 유의하십시오.


Keeping Track of Changes(변경 사항 추적)

  • Gerrit가 이메일을 보내도록 설정합니다.
  • 개발자가 당신을 리뷰어로 추가하거나 특정 패치 세트에 대해 의견을 제시하면 Gerrit가 변경 사항을 이메일 배포 목록에 추가합니다.
  • Gerrit의 리뷰 인터페이스에서 변경 사항을 열면 해당 변경 사항을 신속하게 따라 할 수 있습니다.
  • Gerrit의 Gerrit 프로젝트 섹션에서 프로젝트를보고 새 변경 사항, 새 패치 세트, 모든 설명 및 제출 된 변경 사항을 선택하십시오.

항상 작업중인 프로젝트를 추적하십시오. 또한 피드백 / 설명 메일 링리스트를보고 다른 사람들이 배우는 것을 도울 수 있습니다.


Topic branches(주제 브런치)

주제 브런치는 논리적으로 그룹화 된 종속 커밋 세트를 커밋하기 위해 푸시하는 임시 분기입니다.

TopicName에서 주제로 검토하기 위해 REMOTE/master 트리에서 Gerrit로 변경 사항을 푸시하려면 다음 명령을 예로 사용하십시오.

$ git push REMOTE HEAD:refs/for/master/TopicName

주제는 리뷰에 표시됩니다 : abbr : UIOpen Changes List. 주제 분기는 내용이 병합 될 때 마스터 트리에서 사라집니다.


Creating a Cover Letter for a Topic(주제에 대한 커버레터 작성)

표지 말을 기록부에 표시 할 것인지 여부를 결정할 수 있습니다.

  1. 내역에 표시되는 커버 레터를 만들려면 다음 명령을 사용하십시오.
    git commit --allow-empty
    
    커밋 메시지를 편집하면이 메시지가 커버 레터가됩니다. 사용 된 명령은 소스 트리에있는 파일을 변경하지 않습니다.
  2. 기록에 나타나지 않는 안내문을 작성하려면 다음 단계를 따르십시오.
    • 빈 커밋을 커밋 리스트의 마지막에 넣어 rebase하지 않고. 무시 될 수 있게 한다.
    • 이제 커밋을 추가하십시오.
      git commit ...
      git commit ...
      git commit ...
      
    • 마지막으로, 커밋을 주제 분기로 푸시하십시오. 다음 명령은 예제입니다. git push REMOTE HEAD:refs/for/master/TopicName 이미 커밋을했지만 커버 레터를 설정하려면 커버 레터에 빈 커밋을 작성하고 커밋을 이동하여 목록의 마지막 커밋이되도록합니다. 다음 명령을 예제로 사용하십시오.
      git rebase -i HEAD ~ # 커밋
      
      이동하기 전에 커밋의 주석을 제거하십시오. #Commits는 커밋과 새 커버 레터의 합계입니다.

Finding Available Topics(사용 가능한 주제 찾기)

$ ssh -p 29418 gerrit.hyperledger.org gerrit query \ status:open project:fabric branch:master \
| grep topic: | sort -u
  • gerrit.hyperledger.org 프로젝트가 호스팅되는 현재 URL입니다.
  • status 주제의 현재 상태 (열림, 합병, 취소됨, 초안, 병합 충돌)를 나타냅니다.
  • 프로젝트 프로젝트의 현재 이름 (이 경우에는 fabric)을 나타냅니다.
  • branch이 브랜치에서 토픽이 검색된다.
  • topic 특정 주제의 이름으로 공백으로두면 모두 포함 할 수 있습니다.
  • sort 찾은 주제를이 경우 update (-u)로 정렬합니다.

Downloading or Checking Out a Change(다운로드 또는 변경을 체크 아웃)

검토 UI에서 오른쪽 상단 모서리의 다운로드 링크는 명령 및 하이퍼 링크 목록을 제공하여 체크 아웃하거나 diff 또는 파일을 다운로드합니다.

git review 플러그인을 사용하는 것이 좋습니다. git review를 설치하는 단계는이 문서의 범위를 벗어납니다. 설치 과정에 대해서는 git review 문서를 참조하십시오.

Git을 사용하여 특정 변경 사항을 확인하려면 다음 명령을 사용하십시오.

git review -d CHANGEID

Git-review가 설치되어 있지 않으면 다음 명령이 동일한 작업을 수행합니다.

git fetch REMOTE refs/changes/NN/CHANGEIDNN/VERSION \ && git checkout FETCH_HEAD

예를 들어, 변경 2464의 네 번째 버전에서 NN은 처음 두 자리 (24)입니다.

git fetch REMOTE refs/changes/24/2464/4 \ && git checkout FETCH_HEAD


Using Draft Branches(Draft 분기 사용)

변경 사항을 게시하기 전에 초안 분기를 사용하여 특정 검토자를 추가 할 수 있습니다. Draft Branches는 refs/drafts/master/TopicName으로 푸시됩니다.

다음 명령은 로컬 분기가 작성되도록합니다. 

git checkout -b BRANCHNAME

다음 명령은 변경 사항을 TopicName 아래의 초안 분기로 푸시합니다.:

git push REMOTE HEAD:refs/drafts/master/TopicName


Using Sandbox Branches(샌드 박스 분기 사용)

자체 분기를 만들어 기능을 개발할 수 있습니다. 브랜치는 refs/sandbox/USERNAME/BRANCHNAME 위치로 푸시됩니다.

이 명령은 Gerrit의 서버에서 분기를 만들도록합니다.

git checkout -b sandbox/USERNAME/BRANCHNAME
git push --set-upstream REMOTE HEAD:refs/heads/sandbox/USERNAME/BRANCHNAME

일반적으로 콘텐츠를 만드는 프로세스는 다음과 같습니다.

  • 코드를 개발하고,
  • 정보를 작은 커밋으로 나누고,
  • 변경 사항 제출,
  • 피드백을 적용하고,
  • rebase.

다음 명령은 검토없이 강제로 푸시됩니다.

git push REMOTE sandbox/USERNAME/BRANCHNAME

검토를 통해 강제로 밀어 낼 수도 있습니다.

git push REMOTE HEAD:ref/for/sandbox/USERNAME/BRANCHNAME


Updating the Version of a Change(변경 버전 업데이트)

검토 과정에서 변경 사항을 업데이트하라는 메시지가 표시 될 수 있습니다. 동일한 변경 사항의 여러 버전을 제출할 수 있습니다. 변경의 각 버전을 패치 세트라고합니다.

할당 된 Change-Id는 항상 유지하십시오. 예를 들어, 주제 분기로 제출 된 커밋 목록 c0 ... c7이 있습니다.

git log REMOTE/master..master

c0
...
c7

git push REMOTE HEAD:refs/for/master/SOMETOPIC

reviewers의 피드백을 받으면 수정해야하는 c3c4의 변경 사항이 있습니다. 수정 사항에서 리베이스가 필요한 경우 리베이스 (rebase)는 커밋 ID를 변경합니다. 자세한 정보는 리베이닝 섹션을 참조하십시오. 그러나 동일한 Change-Id를 유지하고 변경 사항을 다시 푸시해야합니다.

git push REMOTE HEAD:refs/for/master/SOMETOPIC

이 새로운 푸시는 패치 개정을 작성하고 로컬 히스토리가 지워집니다. 그러나 각 변경 사항에 대해 review UI 섹션의 Gerrit에서 변경 내역에 계속 액세스 할 수 있습니다.

새 버전을 만들 때 더 많은 커밋을 추가 할 수도 있습니다.


Rebasing(리베이스)

Rebase는 일반적으로 Gerrit에 변경 사항을 적용하기 전에 마지막 단계입니다. 이렇게하면 필요한 변경 ID를 만들 수 있습니다. 변경 ID는 동일하게 유지되어야합니다.

  • squash : 두 개 이상의 커밋을 하나의 커밋으로 혼합합니다.
  • reword : 커밋 메시지를 변경합니다.
  • edit : 커밋 내용을 변경합니다.
  • reorder : 커밋의 순서를 바꿀 수 있습니다.
  • rebase : 커밋을 마스터 위에 겹쳐 씁니다.

Rebasing During a Pull(Pull 도중 리베이스)

마스터에 리베이스를 보내기 전에 히스토리가 연속 된 순서를 가지는지 확인하십시오.

예를 들어, REMOTE/master에는 a0에서 a4까지의 커밋 목록이 있습니다. 그런 다음 변경 사항 c0 ... c7a4 위에 있습니다. 그러므로:

git log --oneline REMOTE/master..master

a0
a1
a2
a3
a4
c0
c1
...
c7

REMOTE/master가 커밋 a5, a6 및 a7을받는 경우. 다음과 같이 리베이스를 가져옵니다.

git pull --rebase REMOTE master

그러면 a5-a7이 풀리고 c0-c7이 다시 적용됩니다.

$ git log --oneline REMOTE/master..master
a0
...
a7
c0
c1
...
c7


Getting Better Logs from Git(Git에서 더 나은 로그 얻기)

보다 나은 로그를 생성하기 위해 Git의 설정을 변경하려면 다음 명령을 사용하십시오 :

git config log.abbrevCommit true

위의 명령은 커밋의 해시를 줄이기 위해 로그를 설정합니다.

git config log.abbrev 5

위의 명령은 약어 길이를 해시의 마지막 5 자로 설정합니다.

git config format.pretty oneline

위의 명령은 작성자 행 앞에 불필요한 행이 삽입되지 않도록 합니다.

현재 Git 사용자에 대해 이러한 구성 변경을 수행하려면 다음과 같이 --global 에 config 경로 옵션을 추가해야합니다.

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함