소프트웨어 개발 프로세스 각 단계에서 변경점을 체계적으로 추적하고 관리하는 일련의 모든 활동요구사항은 항상 변화되므로 소스코드도 함께 변화하므로 형상관리가 중요형상관리를 통해 리스크를 최소화하고 소프트웨어의 품질을 확보할 수 있다.SW 개발 모든 단계에서 발생하는 산출
원격 저장소(Remote Repository)원격 서버에 있는 저장소로컬 저장소(Local Repository)개발자 각각의 본인 PC작업 디렉토리PC에서 현재 작업 중에 있는 디렉토리Git Bash에서 Command를 통해 작업하는 공간Git에서 관리는 하지만, 추적
$ git config --global user.name "이름"$ git config --global user.email "이메일주소" $ git config --global --list$ git config --global core.editor vimvi ~/.gi
$ cd ~/gittest$ mkdir my_project$ cd my_projectgittest 폴더로 이동하고, my_project 저장소 생성 후 이동$ ls -la현재 위치 폴더 하위에 어떤 디렉토리 or 파일이 있는지 보여줌$ git initGit의 가장 핵심
Clone 하기로컬저장소 생성 -> 초기화(git init) -> 원격저장소 연결(git remote add)$ git status현재 폴더 내 상태를 확인한다. 아무것도 안했을 때 아래 결과가 나온다.On branch masterNo commits yetnothing
스테이징 영역에 의미있는 변경점들이 쌓이면 최종적으로 Commit을 통해 저장한다.커밋의 단위는?회사마다, 조직마다, 개인마다 다르다기능 1개, 이슈 1개, 파일 1개, 스프린트 주기마다 등커밋의 단위가 너무 크면 다른 개발자들이 변경점을 확인하는 게 쉽지 않고 충돌이
$ git add TestService.java스테이징 영역에 추가$ git commit -m "Commit 2 for TestService" 인라인으로 커밋 생성$ git log -u커밋 내용과 함께 변경점을 보여줌.$ git log -u 'commit ID'$ gi
본래의 소스코드로부터 파생된 독립적인 잡업공간최신 커밋을 가리키는 일종의 포인터이다.$ cd ~/gittest$ mkdir branch-test$ git initGit은 기본적으로 master브랜치를 생성한다.현재 작업중인 브랜치를 확인하는 명령어$ git branch
브랜치는 목적에 따라 분기할 수 있다.브랜치 분기 전략은 조직에 따라 달라진다master 브랜치로부터 feature-login 브랜치를 생성하고 싶을 때$ git branch feature-login
특정 시점의 소스코드 정보프로젝트 진행 중 의미있는 시점의 커밋을 태깅한 것버전명과 같은 태그명만 남기는 태그Git 데이터베이스에 태그를 만든 사람의 이름, 이메일, 태그 생성날짜, 태그 메시지 등을 저장한 태그Lightweight 태그 생성$ git tad 태그명An
아래 브랜치를 활용하여 변경점을 관리한다.masterdevelopfeaturereleasehotfix실제 고객에게 릴리즈되는 브랜치모든 변경사항은 결국 master로 최종 반영되어야 함.실제 개발의 중심이 되는 브랜치모든 기능 추가, 버그 수정 후 고객에게 배포 가능한