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개의 댓글