Git에 대해 알아보자

WinG·2023년 11월 26일
0

Git

목록 보기
1/1

들어가며 🏃

아래 내용은 코딩애플의 git 강의를 듣고 요약 정리한 내용이다.
첨부된 사진들은 코딩애플 강좌에서 사용된 사진임을 밝힙니다:)

Git 명령어 정리

git add & commit & push


git add : 변경된 파일들을 staging 영역에 추가하는 명령어
git commit : staging 영역에 있는 파일들의 변경 내용을 저장소에 영구적으로 기록하는 명령어
git push : 로컬 저장소의 변경 내용을 원격 저장소로 전송하는 데 사용하는 명령어

git branch

branch는 프로젝트 복사본이라고 생각하면 편하다.
git branch 브랜치 이름 : 브랜치 생성
git switch 브랜치 이름 : 브랜치 이동

원래는 checkout 명령어를 사용하였는데 해당 명령어가 수행하는 기능이 많아 핵심 기능을 구분하여 switchbranch라는 독립적인 명령어를 만들었지만 여전히 checkout 명령어 사용가능

git checkout -b 브랜치 이름 : 브랜치를 만들고 해당 브랜치로 이동
git checkout 브랜치 이름 : 브랜치 이동
git branch -d 브랜치 이름 : 브랜치 삭제
git branch -D 브랜치 이름 : 병합하지 않은 브랜치 삭제

git merge

각각의 브랜치가 같은 파일의 같은 줄을 수정할 경우 merge conflict가 발생
1. 3-way merge

git switch main
git merge 브랜치명

merge의 가장 기본적인 방식이다. 2개의 branch를 합쳐 자동으로 새로운 commit을 생성한다.

  1. fast-forward merge
    기준에 되는 브랜치에 commit이 없을 경우 자동으로 아래와 같이 동작한다.
  2. rebase & merge
git switch 새로운브랜치
git rebase main

git switch main
git merge 새로운브랜치

rebase: 브랜치의 시작점을 다른 commit으로 옮겨주는 행위
rebase & merge 방식은 rebase를 이용하여 신규 브랜치를 최근 commit으로 옮긴 후 fast-forward merge하는 방법이다.

  1. squash & merge
git switch main
git merge --squash 브랜치명
git commit -m '메세지'

새로운 브랜치에 있었던 commit들이 main 브랜치로 옮겨짐

Github로 협업하기

타인과 협업하기

  1. 원격 저장소 복제
    git clone 저장소 주소
  2. collaborators에 팀원의 github ID 추가
    팀원 깃헙 아이디를 등록해야지 git push가 가능하다
    -> 하지만 팀원에 의해 원격 저장소가 새롭게 update가 되면 push가 불가능한 상황이 발생한다.
    해결책
    git pull 원격저장소 주소 브랜치명 명령어를 사용한다.
    git pull은 git fetch와 git merge의 기능을 합친 것으로 원격 저장소에서 변경된 내용을 로컬 저장소로 가져오는 작업을 수행한다.
    참고사항
    git remote add origin 원격 저장소 주소 명령어를 입력하면 주소 url 대신 origin이라는 변수로 대체 가능하다

브랜치로 협업하기

협업을 하는 팀원이 많아지면 위의 방식에는 많은 불편함이 생긴다. 따라서 브랜치를 만들어서 개발하고 merge하는 방식을 주로 사용한다. (우테코 미션에서도 해당 방식을 이용한 과제 제출 방식이었다)
pull request : 쉽게 merge request라고 생각하면 된다. 다른 개발자에게 코드 변경 사항을 리뷰하고 병합하기 위해 사용한다.

Git flow 전략

Git flow 전략은 협업시 브랜치 관리 전략 중 하나이다. 각각의 브랜치들을 간단하게 설명하면 아래와 같다.
1. main branch : 원본 코드
2. develop branch : 신기능 개발
3. feature branch : develop 브랜치의 기능 개발 브랜치
4. test branch : 테스트 브랜치
5. hotfix branch : 버그 수정

profile
공부하는 감자😎

0개의 댓글