Bitbucket Cloud에서 코드 리뷰에 대해 알아보기
목표
리포지토리를 만들고 풀리퀘스트에 검토자를 추가하여 코드 공동 작업을 시작합니다.
고지 사항: 이 자습서의 다음 섹션에서는 Bitbucket Cloud에서 코드를 공동 작업할 수 있도록 풀리퀘스트에 검토자(또는 팀원)를 추가하는 단계를 간략하게 설명합니다. 팀원과 함께 작업하지 않거나 지금 검토자를 추가할 필요가 없다면 다음 자습서로 넘어가도 됩니다: Bitbucket Cloud에서의 브랜칭에 대해 자세히 알아보세요.
미션 브리핑
지금까지 혼자서 리포지토리에서 코드 작업을 했습니다. 다른 사람에게 이 코드를 검토받고 피드백을 받고 싶으면 어떻게 해야 할까요? 풀리퀘스트에 검토자를 추가하면 검토자가 같은 공간에 있든 지구 반대편에 있든 상관없이 바로 코드를 검토할 수 있습니다.
시간
15분
대상 그룹
- Bitbucket Cloud를 사용해 본 경험이 조금 있습니다. 아니라면 입문자 자습서 중 하나를 시도해 보세요.
- Bitbucket Cloud와 함께 Git GUI를 사용하는 것을 좋아합니다
브랜치 및 풀리퀘스트 소개
여러 Bitbucket 사용자가 있는 팀에서 작업할 때는 메인 코드베이스와는 별도로 자체 코드 집합에서 작업하고 싶을 것입니다. 이럴 때는 브랜치를 사용하면 됩니다. 브랜치는 리포지토리의 독립적인 개발 라인을 나타냅니다. 완전히 새로운 작업 디렉터리, 스테이징 영역 및 프로젝트 기록이라고 생각하세요. 브랜치를 만든 후에는 해당 브랜치에서 작업하고 코드를 커밋하며, Bitbucket에서 업데이트를 풀해 브랜치를 최신 상태로 유지한 다음, 모든 작업을 Bitbucket으로 푸시합니다.
Bitbucket의 브랜치에 코드 변경 사항이 있으면 풀리퀘스트를 만들 수 있고 거기서 코드 검토가 이루어집니다. 팀원들이 코드에 피드백과 질문 등의 댓글을 추가하고 결국은 (부디) 풀리퀘스트를 승인할 것입니다. 충분한 승인을 받으면 풀리퀘스트를 병합해서 브랜치를 메인 코드에 병합합니다.
Git 리포지토리 만들기
Bitbucket 우주 정거장에 방금 도착했으니, 오리엔테이션 절차를 밟을 시간입니다. 이를 위해 환영 패키지를 업데이트하고 승인을 받아야 합니다.
1. 전역 사이드바에서 + 를 클릭하고 만들기에서 리포지토리를 선택합니다.
2. 만든 팀이 리포지토리 소유자인지 확인합니다.
3. 프로젝트 이름 및 리포지토리 이름 에 원하는 이름을 입력합니다. 특별한 아이디어가 없다면 각각 웰컴 패키지 및 첫인상을 입력해도 좋습니다.
4. 추가 정보를 포함하시겠습니까?에서 예 옵션 중 하나를 선택합니다.
5. 버전 제어 시스템에서 만들려는 리포지토리 유형에 맞는 옵션을 선택합니다. 확실하지 않으면 설정을 그대로 유지하세요.
6. 리포지토리 만들기 를 클릭하면 브랜드의 소스 보기인 새 리포지토리로 이동합니다.
7. 소스에서 > 파일 추가를 선택합니다.
8. 파일 이름을 survey.html
으로 지정한 다음, 이 코드를 복사하여 주 텍스트 영역에 붙여넣습니다.
솔루션 보기
Bitbucket Cloud에서 Git에 대해 알아보기
관련 자료
Bitbucket Cloud로 브랜칭 알아보기
\<\!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style media="screen" type="text/css">
body {
margin: auto;
width: 700px;
color: #FFFFFF;
font-family: Arial, sans-serif;
background-color: #172B4D;
}
body>h1 {
margin: 50px;
font-size: 50px;
text-align: center;
color: #0052CC;
}
</style>
</head>
<body>
<h1>Team up in space</h1>
<p>
Welcome to the team! You've made it this far so we know that you've got the potential to do great things. Because you're going to be collaborating with other awesome people, anything you add needs to be code reviewed and approved. That's just how a team works! You should have already created a branch and checked it out locally. If you haven't, go back to the tutorial and do that now. We'll be here.
</p>
<p>
Because you're on your own branch, you can go crazy. Spice up this file any way you like. Add more files to this repository if you see fit. If want to take it slow and are just here to learn about pull requests, you can use this opportunity to fill out our short questionaire.
</p>
<br>
<p>
<b>Question 1</b>: Have you used pull requests before?
</p>
<p>
<b>Answer 1</b>: **** Your answer here **** </p>
<p>
<b>Question 2</b>: Why do you want to learn about code review?
</p>
<p>
<b>Answer 2</b>: **** Your answer here **** </p>
<p>
<b>Question 3</b>: Who do you plan to work with on Bitbucket? </p>
<p>
<b>Answer 3</b>: **** Your answer here **** </p>
</body>
</html>
9. 커밋 을 클릭한 다음 대화 상자에서 다시 커밋 을 클릭합니다.
이제 리포지토리가 꽤 근사해 보이네요. 기분이 내키면 한 번 둘러보세요.
복제하고 새 브랜치에서 변경하기
병합하기 전에 코드를 검토하고 승인할 검토자를 추가해야 한다는 사실을 알고 계시다면, 브랜치를 만들기 전에 이미 리포지토리를 복제하셨을 거라고 생각합니다. 따라서 브랜치 설정에 앞서 이 작업부터 살펴보겠습니다.
명령줄을 사용하는 경우
1단계. 리포지토리를 로컬 시스템에 복제
1. 리포지토리 오른쪽 상단에 있는 복제 버튼을 클릭합니다. Bitbucket에 이 리포지토리 복제 대화 상자가 표시됩니다. 기본적으로 복제 대화 상자에서는 설정에 따라 프로토콜 이 HTTPS 또는 SSH로 설정되어 있습니다. 따라서 기본 프로토콜을 변경 할 필요가 없습니다.
2. 복제 명령을 복사합니다.
3. 터미널 창에서 리포지토리를 복제하려는 로컬 디렉터리로 변경합니다.
$ cd ~/<path_to_directory>
4. Bitbucket에서 복사한 명령을 붙여 넣습니다. 예를 들면 다음과 같습니다:
$ git clone https://breezy@bitbucket.org/powerstars/first-impressions.git
Cloning into 'first-impressions'...
Password for 'https://breezycloud@bitbucket.org':
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 6 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (6/6), done.
자세한 내용은 복제 비디오에서 어떻게 하는지 확인해 보세요.
2단계. 브랜치를 만들고 로컬로 풀하기
리포지토리를 모두 설정했으니 이제 재미있는 부분을 살펴볼 차례입니다. 로컬에서 또는 Bitbucket을 통해 브랜치를 만들 수 있습니다. 이 자습서의 목적에 맞게 Bitbucket으로 브랜치를 하나 만들어 보겠습니다.
1. 왼쪽 탐색에서 브랜치 를 클릭합니다. 이미 브랜치가 하나 있는 게 보입니다—기본 브랜치인 메인 브랜치
입니다.
2. 오른쪽 상단의 브랜치 만들기 를 클릭합니다.
3. 브랜치를 만든 후 로컬 시스템에서 브랜치를 체크아웃해야 합니다. Bitbucket은 명령줄에 복사하여 붙여넣을 수 있도록 다음과 비슷한 가져오기 및 체크아웃 명령을 제공합니다.
$ git fetch && git checkout my-updates
Password for 'https://breezycloud@bitbucket.org':
From https://bitbucket.org/planetbreezycloud/first-impressions
* [new branch] my-updates -> origin/my-updates
Branch 'my-updates' set up to track remote branch 'my-updates' from 'origin'.
Switched to a new branch 'my-updates'
보시다시피, 로컬에서 새 브랜치로 전환하여 별도의 코드를 작업하고 푸시할 수 있습니다.
3단계. 브랜치 변경
이제 리포지토리를 변경할 차례입니다. 파일에 언급된 것처럼, 원하는 대로 창의적으로 갈 수도 있고 간단하게 갈 수도 있습니다. CSS를 변경하고, 파일을 더 추가합니다. 공상과학 소설을 써도 좋고 아니면 그저 질문에 답변해도 괜찮습니다.
1. survey.html
파일(또는 사용자가 지정한 이름)을 텍스트 편집기로 엽니다.
2. 크든 작든 파일을 변경한 다음 파일을 저장하고 닫습니다.
3. 변경을 하지 않았다면 터미널 창에서는 계속해서 리포지토리 디렉터리에 있어야 합니다. git status
로 리포지토리 상태를 표시합니다. 수정한 survey.html
파일이 보입니다. 다른 파일을 추가하거나 수정한 경우 그 파일도 볼 수 있습니다.
$ git status
On branch my-updates
Your branch is up-to-date with 'origin/my-updates'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: survey.html
no changes added to commit (use "git add" and/or "git commit -a")
4. git add:
를 사용하여 로컬로 변경 사항을 추가합니다
$ git add survey.html
5. git commit -m "your commit message"
를 사용하여 로컬로 변경 사항을 커밋합니다:
$ git commit -m "Answered questions"
[my-updates 7506040] Answered questions
1 file changed, 3 insertions(+), 3 deletions(-)
6. Bitbucket 브랜치에 변경 사항을 푸시하려면 git push origin
을 입력하고 비밀번호를 입력하여 변경 사항 푸시를 마칩니다.
$ git push origin my-updates
Password for 'https://breezycloud@bitbucket.org':
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 350 bytes | 350.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
To https://bitbucket.org/planetbreezycloud/first-impressions.git
454ccaf..7506040 my-updates -> my-updates
Branch main set up to track remote branch main from origin.
7. Bitbucket에서 리포지토리의 소스 페이지를 클릭합니다. 드롭다운에 두 브랜치가 모두 보입니다. my-updates 에 커밋한 모든 기타 커밋도 브랜치에 표시됩니다.
Sourcetree를 사용하는 경우
1단계. 리포지토리를 로컬 시스템에 복제
실제로 작업을 시작할 수 있도록 리포지토리를 로컬 시스템으로 가져옵니다.
1. 리포지토리에서 전역 사이드바의 + 를 클릭하고 Get to work(작업 실행)에서 Clone this repository(이 리포지토리 복제)를 선택합니다.
2. Sourcetree에서 복제 버튼을 클릭합니다.
3. 새로 복제 창에서 대상 경로 를
로 업데이트합니다.
4. 복제 버튼을 클릭합니다.
어떻게 하는지 보려면 여기 비디오의 리포지토리 복제 부분을 확인하세요.
2단계. 브랜치를 만들고 로컬로 풀하기
리포지토리를 모두 설정했으니 이제 재미있는 부분을 살펴볼 차례입니다. 브랜치는 Bitbucket만의 개념이 아니기 때문에 로컬에서도 브랜치를 만들 수 있습니다. 그러나 이 자습서의 목적에 맞게 Bitbucket으로 브랜치를 하나 만들어 보겠습니다.
1. 왼쪽 탐색에서 브랜치 를 클릭합니다. 이미 브랜치가 하나 있는 게 보입니다 —메인 브랜치입니다.
2. 오른쪽 상단의 브랜치 만들기 를 클릭합니다.
3. 브랜치 이름 을 입력하고 만들기를 클릭합니다. 브랜치 이름을 어떻게 지어야 할지 모르겠으면 my-updates 같은 이름으로 지정하세요.
4. 브랜치를 만든 후 로컬 시스템에서 브랜치를 체크아웃해야 합니다. 그러려면 Sourcetree에서 체크아웃 버튼을 클릭합니다.
Sourcetree의 기존 체크아웃 대화 상자에서 체크아웃을 클릭합니다.
이제 Bitbucket에 브랜치가 있고 로컬 시스템에 체크아웃되어 있으므로, 별도의 코드 줄을 작업하고 푸시할 수 있습니다.
3단계. 브랜치 변경
이제 리포지토리를 변경할 차례입니다. 파일에 언급된 것처럼, 원하는 대로 창의적으로 갈 수도 있고 간단하게 갈 수도 있습니다. CSS를 변경하고, 파일을 더 추가합니다. 공상과학 소설을 써도 좋고 아니면 그저 질문에 답변해도 괜찮습니다.
1. Sourcetree의 리포지토리에서 찾기에 표시 버튼을 클릭합니다.
2. survey.html
파일(또는 사용자가 지정한 이름)을 텍스트 편집기로 엽니다.
3. 크든 작든 파일을 변경한 다음 파일을 저장하고 닫습니다.
4. Sourcetree를 열고 리포지토리에 커밋되지 않은 변경 사항이 있는지 확인합니다.
5. (Git에만 해당) 스테이징 영역에 파일을 추가합니다:
1. 커밋되지 않은 변경 사항 줄을 선택합니다.
2. 스테이징되지 않은 파일 목록에서 survey.html 파일(및 커밋되지 않은 변경 사항이 있는 다른 모든 파일) 옆에 체크 표시를 합니다.
3. 스테이지를 확인하십니까? 대화 상자에서 확인을 클릭합니다.
6. 파일을 커밋하려면 상단의 커밋 버튼을 클릭합니다.
7. 제공된 공간에 답변된 질문과 같은 커밋 메시지를 입력합니다.
8. 메시지 상자 아래 커밋 버튼을 클릭합니다. 보기로 다시 전환하면 파일이 커밋되었지만 Bitbucket 리포지토리에 푸시되지 않은 것을 볼 수 있습니다.
9. Sourcetree에서 커밋된 변경 내용을 푸시하려면 푸시 버튼을 클릭합니다.
10. 나타나는 대화 상자에서 확인 을 클릭하여 커밋이 있는 브랜치를 Bitbucket으로 푸시합니다.
11. Bitbucket에서 리포지토리의 소스 페이지를 클릭합니다. 드롭다운에 두 브랜치가 모두 보입니다. my-updates 에 커밋한 모든 기타 커밋도 브랜치에 표시됩니다.
풀리퀘스트를 만들어 변경 사항을 병합
병합하기 전에 코드를 확인하고 승인할 검토자를 추가하려면, 그다음으로 풀리퀘스트를 만들어야 합니다. 풀리퀘스트는 코드 검토를 위한 장소일 뿐만 아니라, 변경 사항을 원본 리포지토리(diff라고도 함)와 비교하여 보여주고 준비가 되면 손쉽게 코드를 병합할 수 있도록 도와줍니다.
1단계. 풀리퀘스트 만들기
풀리퀘스트를 만들 브랜치가 필요합니다. 다행히 이미 브랜치가 하나 있습니다.
1. 리포지토리에서 전역 사이드바의 + 를 클릭합니다. 그런 다음, Get to work(작업 실행) 에서 Create a pull request(풀리퀘스트 만들기) 를 클릭합니다.
Bitbucket에 요청 양식이 표시됩니다.
2. 양식을 작성합니다.
1. 이미 마지막 커밋 메시지인 자동 제목이 있습니다.
2. 원한다면 설명 을 추가합니다.
(선택 사항 - 검토자 추가) 병합하기 전에 코드를 검토 및/또는 승인할 사람이 필요하면 검토자 필드에 추가합니다. 아래 풀리퀘스트 예시에서 Breezy Cloud가 검토자로 추가된 것을 확인할 수 있습니다.
풀리퀘스트에 검토자를 추가하려면 먼저 그룹에 사용자를 추가하여 리포지토리에 대한 액세스 권한을 부여해야 합니다. 자세한 내용 및 자세한 단계는 사용자 및 그룹에 리포지토리 액세스 권한 부여를 참조하세요. 참고: 언제든지 풀리퀘스트를 만든 다음 나중에 검토자를 추가할 수 있습니다.
완료되면 양식이 다음과 비슷하게 표시됩니다:
3. 풀리퀘스트 만들기를 클릭합니다.
2단계. 풀리퀘스트 병합
잠깐만요, 서두르지 마세요! 상단에 있는 Merge(병합) 버튼을 보셨을 텐데요. 그 버튼을 클릭하기 전에 변경 사항에 대한 승인이 날 때까지 기다려야 합니다. 팀원들이 받는 이메일 알림과 더불어 Your Wokr(내 업무) 대시보드의 Pull requests to review(검토할 풀리퀘스트)에 풀리퀘스트가 표시됩니다.
풀리퀘스트에서 검토자는 Approve(승인) 버튼을 클릭하기 전에 diff를 보고 댓글을 추가하여 토론을 시작할 수 있습니다.
풀리퀘스트가 승인되면 이메일 알림을 받게 됩니다. 필요한 승인을 모두 받으면(이 경우에는 단 하나!) 병합할 수 있습니다. 풀리퀘스트에서 Merge(병합)를 클릭합니다. 그게 전부입니다! 해당 브랜치가 메인 브랜치와 병합된 모습을 확인하고 싶으면 Commits(커밋)를 클릭해서 커밋 트리를 보면 됩니다.
이 문서 공유
다음 토픽
여러분께 도움을 드릴 자료를 추천합니다.
이러한 리소스에 책갈피를 지정하여 DevOps 팀의 유형에 대해 알아보거나 Atlassian에서 DevOps에 대한 지속적인 업데이트를 확인하세요.