티스토리 뷰
25 Visual Studio Code와 Azure DevOps에서 Git으로 버전 제어하기 2편
zerobig-k8s 2020. 3. 30. 07:49<참조> https://azuredevopslabs.com/labs/azuredevops/git/
이전 글 Visual Studio Code와 Azure DevOps에서 Git으로 버전 제어하기 1편에 이어 실습4~7까지의 내용을 마저 정리한다. |
실습 4: 이력 검토하기
Git은 각 커밋에 저장된 부모 참조 정보를 사용하여 개발에 대한 전체 이력을 관리한다. 이 커밋 이력을 검토하여 용이하게 파일 변경시기를 확인하고 터미널을 사용하거나 사용 가능한 많은 Visual Studio Code 확장 중 하나를 사용하여 코드 버전 간 차이를 확인할 수 있다. Azure DevOps 포털을 사용하여 변경 사항을 검토 할 수도 있다.
Git의 Branches and Merges 기능은 풀 요청(Pull Request)을 통해 작동하므로 개발 커밋 이력이 반드시 연대순으로 표시되는 것은 아니다. 이력을 사용하여 버전을 비교할 때 두 시점 사이의 파일 변경 대신 두 커밋 사이의 파일 변경을 고려한다. 마스터 브랜치 파일에 대한 최근 변경 사항은 2주 전에 기능 브랜치에서 생성된 커밋에서 나왔지만 어제 병합되었을 수도 있다.
과제 1: 파일 비교하기
1. Source Control 탭에서 CartItem.cs을 선택한다.
2. 이루어진 변경 사항을 쉽게 찾을 수 있도록 비교보기가 열린다. 이 경우에는 한 개의 주석 뿐이다.
3. Ctrl+Shift+P를 눌러 Command Palette를 연다.
4. "Team"을 입력하고 사용 가능한 경우 Team: View History를 선택한다. 이는 새로운 브라우저 탭에서 이 파일의 history 탭으로 바로 이동할 수 있는 Azure Repos 확장 기능의 하나이다.
5. Category.cs의 이력에 대해 주목하자. 새로 생성된 탭을 닫으면 이전의 Commits 탭으로 돌아간다.
6. Commits 보기에서 아래로 스크롤하여 일부 소스 브랜치 및 병합을 찾는다. 이는 소스가 언제 어떻게 변경되었는지 시각화 할 수 있는 편리한 방법을 제공한다.
7. Merged PR 27의 드롭다운에서 Browse Files을 선택한다.
8. 이 보기는 해당 커밋에서 소스 상태를 탐색하여 해당 파일을 검토하고 다운로드 할 수 있는 기능을 제공한다.
실습 5: 브랜치 작업하기
웹의 Branches 보기에서 Azure DevOps Git 리포지토리의 작업을 관리 할 수 있다. 또한 가장 관심있는 브랜치를 추적하도록 보기를 사용자 정의하여 팀이 변경한 사항을 파악할 수 있다.
브랜치에 변경 사항을 커밋해도 다른 브랜치에는 영향을 미치지 않으며 변경 내용을 기본 프로젝트에 병합하지 않고도 다른 브랜치와 브랜치를 공유 할 수 있다. 또한 새로운 브랜치를 생성하여 기능 또는 버그 수정에 대한 변경 사항을 마스터 브랜치 및 기타 작업에서 분리할 수도 있다. 브랜치가 경량이므로 브랜치 간 전환이 빠르고 쉽다. Git은 브랜치로 작업 할 때 소스의 여러 복사본을 만들지 않고 커밋에 저장된 이력 정보를 사용하여 브랜치에서 작업을 시작할 때 파일을 다시 만든다. Git 워크 플로우는 기능 및 버그픽스 관리를 위한 브랜치를 생성하고 사용해야 한다. 코드 공유 및 PR을 통해 코드를 검토하는 등의 나머지 Git 워크 플로우는 모두 브랜치를 통해 작업한다. 브랜치에서 작업을 분리하면 현재 브랜치를 변경하여 작업중인 내용을 매우 간단하게 변경할 수 있다.
과제 1: 로컬 리포지토리에 새로운 브랜치 생성하기
1. Visual Studio Code로 돌아간다.
2. 왼쪽 하단에서 master 브랜치를 클릭한다.
3. Create new branch from….를 선택한다.
4. 새 브랜치의 이름을 "dev"로 입력하고 Enter를 누른다.
5. 참조 브랜치로 master를 선택한다.
6. 이제 해당 브랜치에서 작업을 하게 되었다.
과제 2: 브랜치 작업하기
Git은 작업중인 브랜치를 추적하고 브랜치를 체크아웃 할 때 파일이 지점의 최신 커밋과 일치하는지 확인한다. 브랜치를 사용하면 동일한 로컬 Git 리포지토리에서 여러 버전의 소스 코드를 동시에 사용할 수 있다. Visual Studio Code를 사용하여 브랜치를 게시, 체크 아웃 및 삭제할 수 있다.
1. 브랜치 옆에 있는 Publish changes 버튼을 클릭한다.
2. Azure DevOps 브라우저 탭에서 Branches를 선택한다.
3. 새로 push된 dev 브랜치가 표시되어야 한다. Delete branch 버튼을 클릭하여 삭제한다. 삭제에 대해 확인한다.
4. Visual Studio Code로 돌아간다.
5. dev 브랜치를 클릭한다.
6. 두 가지 dev 브랜치가 나열되어 있다. 로컬(dev) 브랜치는 서버 브랜치를 삭제할 때 삭제되지 않기 때문에 리스트에 존재한다. 서버 (origin/dev)는 정리(prune)되지 않았기 때문에 존재한다. master 브랜치를 선택하여 체크아웃 한다.
7. Ctrl+Shift+P를 눌러 Command Palette를 연다.
8. “Git: Delete” 라고 타이핑하여 Git: Delete Branch가 표시되면 선택한다.
9. 삭제할 로컬 브랜치는 하나뿐이므로 그것을 선택한다.
10. master 브랜치를 클릭한다.
11. 로컬 dev 브랜치는 사라졌지만 리모트 origin/dev는 여전히 표시된다.
12. Ctrl+Shift+P를 눌러 Command Palette를 연다.
13. “Git: Fetch”를 타이핑 하여 Git: Fetch (Prune)가 표시되면 선택한다. 이 명령은 로컬 스냅 샷에서 원본 브랜치를 업데이트하고 더 이상 존재하지 않는 브랜치는 삭제한다.
14. 화면 맨 아래에서 Output 창을 선택하여 이러한 작업이 정확하게 어떠한 작업을 수행하는 것인지 확인할 수 있다.
15. 출력 콘솔에 Git 로그가 표시되지 않으면 소스로 Git을 선택해야 할 수도 있다.
16. master 브랜치를 클릭한다.
17. origin/dev 브랜치가 더 이상 목록에 없어야 한다.
실습 6: Azure DevOps에서 브랜치 관리하기
Visual Studio Code에서 사용할 수 있는 모든 기능과 더불어 Azure DevOps 포털에서도 리포지토리를 관리 할 수 있다.
과제 1: 새로운 브랜치 생성하기
1. Azure DevOps 브라우저 탭으로 전환한다.
2. Repos | Branches로 이동하여 New branch를 클릭한다.
3. 새 브랜치의 "release" 이름을 입력한다. Work items to link 드롭 다운을 사용하여 이 새 브랜치에 연결할 하나 이상의 작업 항목을 선택한다. Create를 클릭하여 생성한다.
4. 브랜치가 생성된 후에는, 리스트 상에서 사용가능하게 된다.
5. Visual Studio Code로 돌아간다.
6. Ctrl+Shift+P를 눌러 Command Palette를 연다.
7. “Git: Fetch”를 타이핑 하여 Git: Fetch가 표시되면 선택한다. 이 명령은 로컬 스냅 샷에서 원본 브랜치를 업데이트 해준다.
8. master 브랜치를 클릭한다.
9. origin/release를 선택한다. 그러면 "release"라는 새로운 로컬 브랜치가 생성되고 체크아웃 된다.
과제 2: 브랜치 삭제하기
<주의> 다음 핸즈온에서 연결되어 실습이 이루어지므로 본 과제 2는 내용만 검토하고 실행하지 않는다. |
1. Azure DevOps로 돌아가서 release 브랜치 컨텍스트 메뉴에서 Delete branch버튼을 클릭하여 삭제한다.
과제 3: 브랜치 잠그기
잠금은 중요한 병합과 충돌할 수 있는 새로운 변경을 방지하거나 브랜치를 읽기 전용 상태로 만드는데 이상적이다. 또는 브랜치의 변경 사항이 병합되기 전에 검토되도록 하려면 잠금 대신 브랜치 정책 및 풀 요청을 사용할 수 있다.
잠금은 리포지토리 복제나 브랜치에서 수행한 업데이트를 로컬 리포지토리로 가져 오는 것을 방지하지 않는다. 브랜치를 잠그면 그 이유를 팀과 공유하고 브랜치가 잠금 해제된 후 해당 브랜치에서 뭘 작업해야 하는지에 대해 알고 있는지 확인한다.
1. master 컨텍스트 메뉴에서 Lock을 선택한다.
2. 해당 브랜치는 이제 잠기게 된다.
3. 이제 동일한 프로세스를 사용하여 해당 브랜치를 Unlock 한다.
과제 4: 릴리즈에 태킹하기
1. 딱히 그리 보이지 않을 수도 있으나 프로덕트 팀은 이 버전의 사이트가 v1.1에 꼭 필요한 것으로 결정했다. 이를 표시하려면 Tags 탭으로 이동한다.
2. New Tag를 클릭한다.
3, name을 “v1.1”로, Description을 “Great release!” 로 입력하고 Create를 클릭한다.
4. 이번 릴리즈에서 프로젝트에 태그를 지정했다. 다양한 이유로 커밋에 태그를 지정할 수 있으며 Azure DevOps는 권한을 관리할 뿐만 아니라 이를 편집 및 삭제하는 유연성을 제공한다.
실습 7: Azure DevOps에서 브랜치 관리하기
팀 프로젝트에서 Git 리포지토리를 만들어 프로젝트의 소스 코드를 관리 할 수 있다. 각 Git 리포지토리에는 프로젝트의 다른 작업과 분리할 수 있는 고유한 퍼미션 및 브랜치가 있다.
과제 1: Azure DevOps에서 새로운 리포지토리 생성하기
1. 프로젝트 Add 드롭 다운에서 New repository를 선택한다.
2. Repository name을 "New Repo"로 설정한다. README.md라는 파일을 작성하는 옵션도 있다. 이것은 누군가 브라우저에서 리포지토리를 탐색 할 때 렌더링되는 기본 마크 다운 파일이다. 또한 .gitignore 파일을 사용하여 저장소를 사전 구성 할 수 있다. 이 파일은 이름 지정 패턴 및/또는 경로를 기반으로 소스 제어에서 무시할 파일을 지정한다. 작성중인 프로젝트 유형에 따라 무시할 공통 패턴 및 경로를 포함하는 여러 템플릿이 있다. Create를 클릭한다.
3. 됐다. 레포지토리가 준비되었다. 이제 Visual Studio 또는 선택한 도구를 사용하여 복제 할 수 있다.
과제 2: Git 리포지토리 삭제 및 이름 변경하기
1. 때로는 레포지토리의 이름을 바꾸거나 삭제해야 할 때도 있다. Project settings을 연다.
3. New Repo 컨텍스트 메뉴에서 Delete repository를 선택한다. 또는 여기에서 이름을 바꿀 수 있다.
4. “New Repo”라고 이름을 입력하고 레포지토리를 확인하고 Delete를 클릭한다.
'Azure와 함께 하는 DevOps' 카테고리의 다른 글
27. Visual Studio Code 및 GitHub에서 Git으로 버전 제어하기 (0) | 2020.04.13 |
---|---|
26. Visual Studio Code 및 Azure DevOps로 풀 요청(Pull Request) 작업하기 (0) | 2020.04.06 |
24 Visual Studio Code와 Azure DevOps에서 Git으로 버전 제어하기 1편 (0) | 2020.03.23 |
23 전달 계획으로 팀간 프로젝트 일정 관리하기 (0) | 2020.03.16 |
22 Azure 보드를 사용한 Agile 플래닝과 포트폴리오 관리 2편 (0) | 2020.03.09 |