오늘의 공부일기/Git 공부일기
#2 Git에 대하여(git diff, git stash, git reset, git revert, branch)
츄98
2023. 4. 11. 02:19
오늘은,
작업내역을 비교하거나 임시저장, 작업 되돌리기, 브랜치 관리하는 방법을 살펴보자.
1. 작업내역 비교하기

2. 작업 되돌리기
revert : 버전을 되돌려 새로운 버전을 만든다.

reset : 버전을 완전히 되돌리기 - soft, mixed, hard
더보기
참고하기 :)
- 하나의 버전이 만들어지는 과정
1. 작업 디렉터리에서 변경사항 생성하기
2. 스테이지로 추가하기
3. 저장소로 커밋하기
- soft reset : 커밋만 되돌리기. 여전히 스테이지에는 남아있는 상태
- mixed reset : 스테이지까지 되돌리기. 작업디렉터리에 변경사항이 남아있는 상태
- hard reset : 작업 디렉터리까지 되돌리기. 즉 완전한 reset..!




3. 작업 임시저장하기

4. 브랜치 관리하기
브랜치: 버전을 여러 개의 흐름으로 관리하는 방법. 다른 말로는, 버전의 분기
브랜치를 사용하는 이유
1. 합리적인 협업:
서로의 작업과 전혀 관련 없는 부분, 같은 코드를 다르게 수정한 부분을 브랜치를 사용하면 보다 쉽게 알 수 있고, 코드를 합치다 생기는 실수를 줄일 수 있다.
2. 많은 버전, 요구사항들을 보다 편리하게 수정할 수 있다.
브랜치로 버전의 분기를 관리하는 방법:
- 브랜치를 나눈다.
- 각자의 브랜치에서 작업한다.
- (필요할 경우) 나눈 브랜치를 합친다.


4-1. 브랜치의 이름
막 짓는 것이 아니다..! 특징 또는 기능에 따라서 이름을 정한다.
예를 들어,
메뉴 기능 추가를 위한 브랜치라면, feature/menu 브랜치
버전 릴리스를 위한 브랜치라면, release 브랜치
로그인 기능을 수정하기 위한 브랜치라면, fix/ login 브랜치 또는 hotfix/ login 브랜치
4-2. 특정 브랜치에서 작업하기
- HEAD
- 현재 작업 중인 브랜치의 커밋을 가리킨다.
- 현재 작업 중인 브랜치의 최신 커밋
- Checkout
- 특정 브랜치에서 작업할 수 있도록 작업 환경을 바꾸는 것
- Head 의 위치를 특정 브랜치의 최신 커밋으로 옮김
4-3. 브랜치 합치기(merge)
기준이 되는 브랜치, 합칠 곳(보통 master branch)로 checkout하기..!
빨리감기 병합: master 브랜치는 가만히 있고, 마치 빨리감기하듯 브랜치 내용이 업데이트되는 병합 기법

빨리감기 병합이 아닌 경우는? 두 브랜치를 병합한 새로운 커밋이 생성된다.

4-4. 충돌 해결하기
충돌은 같은 내용을 다르게 수정했을 때 발생한다.

충돌 대처법
1. 충돌을 해결한다.
(어떤 브랜치의 내용을 반영할지 직접 선별한다. => 반영할 내용만 빼고 지우기)
2. 다시 커밋한다.
충돌은 이 대처법만 기억하자..!!!