아래 내용은 코딩애플의 git 강의를 듣고 요약 정리한 내용이다.
첨부된 사진들은 코딩애플 강좌에서 사용된 사진임을 밝힙니다:)
git add : 변경된 파일들을 staging 영역에 추가하는 명령어
git commit : staging 영역에 있는 파일들의 변경 내용을 저장소에 영구적으로 기록하는 명령어
git push : 로컬 저장소의 변경 내용을 원격 저장소로 전송하는 데 사용하는 명령어
branch는 프로젝트 복사본이라고 생각하면 편하다.
git branch 브랜치 이름
: 브랜치 생성
git switch 브랜치 이름
: 브랜치 이동
원래는 checkout
명령어를 사용하였는데 해당 명령어가 수행하는 기능이 많아 핵심 기능을 구분하여 switch
와 branch
라는 독립적인 명령어를 만들었지만 여전히 checkout
명령어 사용가능
git checkout -b 브랜치 이름
: 브랜치를 만들고 해당 브랜치로 이동
git checkout 브랜치 이름
: 브랜치 이동
git branch -d 브랜치 이름
: 브랜치 삭제
git branch -D 브랜치 이름
: 병합하지 않은 브랜치 삭제
각각의 브랜치가 같은 파일의 같은 줄을 수정할 경우 merge conflict가 발생
1. 3-way merge
git switch main
git merge 브랜치명
merge의 가장 기본적인 방식이다. 2개의 branch를 합쳐 자동으로 새로운 commit을 생성한다.
git switch 새로운브랜치
git rebase main
git switch main
git merge 새로운브랜치
rebase: 브랜치의 시작점을 다른 commit으로 옮겨주는 행위
rebase & merge 방식은 rebase를 이용하여 신규 브랜치를 최근 commit으로 옮긴 후 fast-forward merge하는 방법이다.
git switch main
git merge --squash 브랜치명
git commit -m '메세지'
새로운 브랜치에 있었던 commit들이 main 브랜치로 옮겨짐
git clone 저장소 주소
git pull 원격저장소 주소 브랜치명
명령어를 사용한다.git remote add origin 원격 저장소 주소
명령어를 입력하면 주소 url 대신 origin이라는 변수로 대체 가능하다협업을 하는 팀원이 많아지면 위의 방식에는 많은 불편함이 생긴다. 따라서 브랜치를 만들어서 개발하고 merge하는 방식을 주로 사용한다. (우테코 미션에서도 해당 방식을 이용한 과제 제출 방식이었다)
pull request
: 쉽게 merge request라고 생각하면 된다. 다른 개발자에게 코드 변경 사항을 리뷰하고 병합하기 위해 사용한다.
Git flow 전략은 협업시 브랜치 관리 전략 중 하나이다. 각각의 브랜치들을 간단하게 설명하면 아래와 같다.
1. main branch : 원본 코드
2. develop branch : 신기능 개발
3. feature branch : develop 브랜치의 기능 개발 브랜치
4. test branch : 테스트 브랜치
5. hotfix branch : 버그 수정