개발일기

#2 Git에 대하여(git diff, git stash, git reset, git revert, branch) 본문

오늘의 공부일기/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. 많은 버전, 요구사항들을 보다 편리하게 수정할 수 있다.

브랜치로 버전의 분기를 관리하는 방법:

  • 브랜치를 나눈다.
  • 각자의 브랜치에서 작업한다.
  • (필요할 경우) 나눈 브랜치를 합친다.

master 브랜치는 가장 기본적인, 최초의 브랜치. master 브랜치에는 커밋이 4개, foo 브랜치에는 5개, bar 브랜치에는 6개가 쌓여있다.

 

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. 다시 커밋한다.

충돌은 이 대처법만 기억하자..!!!