IT-Program/git

1. Git, Git-Flow 발표자료 만들기

Parque Aki 2022. 6. 29. 14:57

#Git

형상관리 도구   

1. 시간, 장소 등 상관없이 사용이 가능하다.
2. 브랜치라는 이력을 이용하여 관리할 수 있다.
    - 이력끼리는 쉽게 병합이 가능하다.
    - 이력을 통하여 서로 각기 다른 버전의 파일을 저장소에 보관할 수 있다.
3. 분산형 관리를 지원한다.
    - 저장소의 정보가 손실되더라도 로컬에서의 정보는 손실되지 않는다.
- - -
# 작업흐름
![git working flow](img/git-working-flow.png)

git을 이용하는 작업흐름으로 로컬에서 총 3가지의 작업흐름을 가지게 된다.  
1. working directory (unstaged) : 로컬
   - git add 명령어를 이용하여 로컬에서 변경된 파일을 준비영역으로 이동시킬 수 있다.
2. index (staged) : 준비영역
   - git commit 명령어를 이용하여 준비영역에서 최종 확정본으로 이동시킬 수 있다.
3. head : 최종 확정본  

작업흐름을 변경하고 싶은경우 git reset 명령어를 이용하여 현재 작업흐름을 변경할 수 있다.
1. soft
   - index (staged)로 되돌린다.
2. mixed
   - working directory (unstaged)로 되돌린다.
3. hard
   - working directory (unstaged)로 되돌리며, 해당 정보 자체를 삭제한다.
- - -
# 원격 저장소
![git repo](img/remote-repo.png)   
    
네트워크상에 존재하는 Git 저장소로 네트워크 환경이 구축이 될 경우 아래와 같이 처리할 수 있다.
1. remote 명령어를 이용하여 원격 저장소를 확인 및 추가등록할 수 있다.
2. push 명령어를 이용하여 해당 브랜치의 최종 확정본을 원격저장소로 반영 할 수 있다.
3. fetch 명령어를 이용하여 원격 저장소 내용을 해당 브랜치로 받아볼 수 있다.
4. pull 명령어를 이용하여 원격 저장소와 해당 브랜치를 반영 할 수 있다.
- - -
# 병합
선택한 브랜치를 병합시킨다.  

![git merge rebase](img/git-merge-rebase.png)  
 - 단 병합하는 과정에서 새로운 커밋이 생길 수 있기에 클린한 트리를 위해서는 상황에 맞게 병합 혹은 리베이스를 실행해야 한다.

- - -
# Git-Flow
소프트웨어의 소스코드를 관리하고 출시하기 위한 브랜치 관리 전략이며 브랜치는 5가지 형태를 이용한다.
- - -
1. master
   - 제품으로 출시될 수 있는 브랜치
2. develop
   - 다음 출시 버전을 개발하는 브랜치
3. feature
   - 기능을 개발하는 브랜치
4. release
   - 이번 출시 버전을 준비하는 브랜치
5. hotfix
   - 출시 버전에서 발생한 버그를 수정 하는 브랜치