Git (1) 설치 ~ Merge 전략

Boseong Choi·2023년 3월 23일
0

Git

목록 보기
1/2
post-thumbnail

01 설치법

Git windows 다운로드 후 설치.

  • VS Code 에디터 사용 시, use visual studio code as git's default editor 체크
  • 초기 브랜치 이름을 main 으로 변경 (깃허브 기본 브랜치가 main인데 프로젝트마다 main/master 다르면 은근히 귀찮음)

02 초기 세팅

Git을 처음 사용하는 컴퓨터라면 이름과 이메일을 세팅해야한다. 만약 세팅안하고 clone같은 명령어 입력하면 fatal: could not read Username for 'https://github.com': No such file or directory 라는 오류가 발생할 수 있다. 내용 그대로 이름과 이메일을 설정하지 않아서 생기는 문제.

git config --global user.email "email@email.com"
git nfig --global user.name "myname"

터미널을 열고 위와 같이 사용자 정보를 입력해주면 된다.

Git의 3가지 영역

Git 사용법

git add, commit, diff, branch 설명은 생략.

브랜치 이동

  • 특정 브랜치로 이동 시 git checkout 또는 git switch
  • git switch 는 2.2.3 버전에 소개된 기능으로 새로운 branch로 전환할 때나 기존 branch에서 새로운 작업을 시작할 때 사용된다.
  • git switch는 branch를 전환하는 명령어로서 더 직관적이고 안전한 명령어이며, git checkout은 branch 이외의 다양한 작업을 수행할 수 있으므로 조금 더 복잡한 명령어.

Merge

  • Fast-Forward Merge
    Merge 대상(master/main)에 변경 이력이 없는 상태에서 Feature의 변경 이력을 병합하는 경우를 말한다. 즉, 기준(master/main)이 되는 브랜치에 신규 커밋이 없으면 자동으로 Fast-Forward Merge 발생.

text

  • 3-way Merge
    머지 대상에도 커밋 이력이 있고, 신규 브랜치에도 커밋 이력이 있을 때 두 브랜치의 코드를 합쳐서 새로운 커밋을 생성한다.

text

Rebase

3-way merge의 경우 히스토리가 자세하게 남기 때문에 브랜치의 개수가 많거나 Merge 횟수가 많아질수록 기록 확인이 정말 힘들어지므로 rebase 후 merge 하는 경우가 있다.

text

rebase가 동작하면 신규 브랜치의 시작점을 main 브랜치의 최근 commit으로 옮겨진다. 이후 Merge하면 Fast-Forward Merge가 된다.

Push된 history를 rebase 하지 않도록 주의한다. 이 경우 history를 기반으로 작업하고있는 개발자들에게 영향을 주게된다.

git switch develop
git rebase main

git switch main
git merge develop

Squash & Merge

Rebase 말고도 Squash & Merge를 사용하는 경우도 있다.

git switch main
git merge --squash develop
git commit -m 'commit message'

3-way Merge 처럼 히스토리들이 하나의 선으로 이어져있는 것이 아닌, 변경사항 들이 main 브랜치로 이동하게 된다. (이 과정에서 merge 완료된 브랜치의 commit은 출력 X)

profile
Frontend Developer

0개의 댓글

관련 채용 정보