Table of Contents |
---|
1. Git 프로세스 개요
...
2. Git 아키텍처 개요
...
3. 소스 가져오기 : git clone
소스를 clone하고 해당 디렉토리로 이동한다.
...
Code Block |
---|
ADO-git-handson# git clone https://zerobig-devops4demo@dev.azure.com/zerobig-devops4demo/202408_AzureDevOps_Git_Demo/_git/202408_AzureDevOps_Git_Demo 20240808_git_handson Cloning into '20240808_git_handson'... Password for 'https://zerobig-devops4demo@dev.azure.com': warning: You appear to have cloned an empty repository. ADO-git-handson# cd 20240808_git_handson/ ADO-git-handson# ls -rlht total 0 ADO-git-handson# |
4. git 명령 맛보기 : add/commit/push 실행하기
파일을 생성하고 커밋 후 리모트로 푸시한다.
Code Block |
---|
vi README.md git status git add . git commit -m "First Commit" git status git push |
...
Code Block |
---|
ADO-git-handson# git log commit 18c1fe6382799469b6e433d6269021dddd77a760 (HEAD -> master, origin/master) Author: Zerobig <zerobig.kim@gmail.com> Date: Thu Aug 8 10:35:48 2024 +0900 First Commit ADO-git-handson# ADO-git-handson# ADO-git-handson# git log --oneline 18c1fe6 (HEAD -> master, origin/master) First Commit ADO-git-handson# |
5. 새로운 브랜치 생성하여 작업하기
현재 브랜치를 확인하고 새로운 브랜치를 생성하여 작업을 준비한다.
...
Info |
---|
HEAD 포인터 HEAD는 현재 브랜치를 가리키는 포인터이며, 브랜치는 브랜치에 담긴 커밋 중 가장 마지막 커밋을 가리킨다. 지금의 HEAD가 가리키는 커밋은 바로 다음 커밋의 부모가 된다. 단순하게 생각하면 HEAD는 *현재 브랜치 마지막 커밋의 스냅샷*이다. |
6. Pull Request 수행하기
Azure Repo > Branches로 이동하여 Create a pull request를 선택한다.
...
Info |
---|
참고 현재 시나리오에서는 간단히 하기 위해서 본인이 직접 Pull Request를 요청하고 처리하지만 실제로는 권한 있는 검토자를 지정하고 해당 검토자를 통해 코드 검토 및 확인을 받아야 한다. Pull Request를 요청하게 되면 Reviewer에게 요청이 전달되며 다음과 같이 Files 탭에서 변경사항을 확인하고 관련 Comment를 남길 수 있다. |
7. Brach 전략 수립하기
Git 브랜치 전략 채택
현재 master 브랜치 내의 코드는 쉽게 접근하여 코드 변경을 수행할 수 있는 상태이므로 이에 대한 보완이 필요하다. 소위 “Git 브랜치 전략”업데이트 할 수 있는 보안적으로 취약한 상태이다.
...
이러한 개념을 확장하고 모순을 피하는 전략을 통해 팀은 일관되고 따르기 쉬운 버전 제어 워크플로를 얻을 수 있다.
Git 브랜치 전략 구성
Azure Repo > files로 이동하여 master 브랜치에서 colors.txt를 선택하고 Edit을 선택한다.
...
이제 구성된 환경을 토대로 코드 변경 및 Pull Request를 통한 master 브랜치로의 병합을 시도해 보겠다.
Git 브랜치 전략 구성 증
소스 현행화
터미널로 이동하여 다음 명령을 통해 feature 브랜치로의 소스를 현행화 한다.
...
Code Block |
---|
ADO-git-handson# cd 20240808_git_handson/ ADO-git-handson# git branch feat-1-colors * master ADO-git-handson# git checkout feat-1-colors Switched to branch 'feat-1-colors' Your branch is up to date with 'origin/feat-1-colors'. ADO-git-handson# git fetch --dry-run Password for 'https://zerobig-devops4demo@dev.azure.com': remote: Azure Repos remote: Found 3 objects to send. (0 ms) Unpacking objects: 100% (3/3), 295 bytes | 5.00 KiB/s, done. From https://dev.azure.com/zerobig-devops4demo/202408_AzureDevOps_Git_Demo/_git/202408_AzureDevOps_Git_Demo 3e53445..28bab0f master -> origin/master ADO-git-handson# git pull origin master Password for 'https://zerobig-devops4demo@dev.azure.com': From https://dev.azure.com/zerobig-devops4demo/202408_AzureDevOps_Git_Demo/_git/202408_AzureDevOps_Git_Demo * branch master -> FETCH_HEAD Updating b5ecbfd..28bab0f Fast-forward colors.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) ADO-git-handson# cat colors.txt Red Green Blue Pink ADO-git-handson# git branch * feat-1-colors master ADO-git-handson# ADO-git-handson# git log --oneline --graph * 28bab0f (HEAD -> feat-1-colors, origin/master) Updated colors.txt * 3e53445 (master) Merged PR 57: Add colors.txt |\ | * b5ecbfd (origin/feat-1-colors) Add colors.txt |/ * 18c1fe6 First Commit ADO-git-handson# |
소스 수정 및 commit, push
colors.txt 파일을 열어 Yellow를 추가하고 저장한 후 git add, commit 및 push를 수행한다.
...
Code Block |
---|
ADO-git-handson# vi colors.txt ADO-git-handson# cat colors.txt Red Green Blue Pink Yellow ADO-git-handson# git add . ADO-git-handson# git status On branch feat-1-colors Your branch is ahead of 'origin/feat-1-colors' by 2 commits. (use "git push" to publish your local commits) Changes to be committed: (use "git restore --staged <file>..." to unstage) modified: colors.txt ADO-git-handson# git commit -m "Update colors.txt adding color 'Yello'" [feat-1-colors dc46381] Update colors.txt adding color 'Yello' 1 file changed, 2 insertions(+), 1 deletion(-) ADO-git-handson# git push Password for 'https://zerobig-devops4demo@dev.azure.com': Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 8 threads Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 326 bytes | 21.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 remote: Analyzing objects... (3/3) (6 ms) remote: Validating commits... (1/1) done (0 ms) remote: Storing packfile... done (29 ms) remote: Storing index... done (55 ms) To https://dev.azure.com/zerobig-devops4demo/202408_AzureDevOps_Git_Demo/_git/202408_AzureDevOps_Git_Demo b5ecbfd..dc46381 feat-1-colors -> feat-1-colors ADO-git-handson# |
Pull Request 작성
리모트 리포지토리를 새로고침하여 푸시 결과를 확인한다.
...