git 기본

roon2020·2021년 5월 28일
0

기본 개념

로컬 저장소, 원격 저장소

소스트리를 기준으로,

  • 브랜치명이 가리키는 것 : 로컬 저장소의 버전
  • origin/브랜치명이 가리키는 것 : 원격 저장소의 버전

아래 예시에서는 develop 브랜치가 로컬과 원격에서 동일한 지점을 가리키고 있습니다.

add, commit

  • add :하나의 버전을 만들기 위해 변경사항을 선택하는 것
  • commit : add로 선택한 변경사항을 하나로 묶어 버전으로 만든 것

다른 표현

  • add : stage에 올리는 것
  • commit : stage에 올라가 있는 것들의 스냅샷을 찍어 하나의 버전으로 만드는 것.

브랜치

브랜치 만들기

두 브랜치를 합치기

개념

merge : 두 브랜치를 합치는 것
merge의 종류 : merge commit,fast-forward,conflict
checkout 브랜치 : 해당 브랜치로 이동하는 명령

merge commit

두 브랜치의 내용이 서로 충돌되지 않고, 합쳐지는 것입니다.
새로운 상태가 만들어지므로 새롭게 저장합니다.

conflict

두 브랜치의 내용이 동일한 부분이 서로 다를 때 충돌(conflict)가 발생
합니다.

fast-forward

merge 처럼 새로운 상태가 만들어지지 않고,충돌도 일어나지 않은 경우입니다. 한 브랜치가 다른 브랜치의 내용을 완전히 포함하면 fast forward( 빨리 감기)로 합칩니다. 새로 상태를 만들어줄 필요가 없습니다.

사용

[master] 브랜치 기준으로 [develop] 브랜치를 병합한다고 가정하면,

checkout master 하고 병합할 커밋에 우클릭 후 병합

충돌 해결

  • master 브랜치에 바로 병합하지 말고, 기능 브랜치에 일단 병합
  • 충돌은 파일의 동일한 부분을 다르게 작성했을 때 발생
  • 수동으로 충돌난 부분을 해결하고 다시 커밋,푸시하면 ok

Pull request

pull request : 협력자에게 브랜치 병합을 요청을 위해 보내는 메시지

브랜치에 변경 사항이 있으면 아래처럼 표시

compare & pull request : pull request를 보내려면 클릭

create pull request를 클릭.

merge pull request -> confirm merge

소스트리에서 fetch하기.

fetch : 소스트리의 업데이트된 그래프를 갱신

checkout master를 한 뒤 pull을 해줘서 origin과 맞춰주기

release

  • release : 프로그램 출시

  • tag : 릴리즈의 버전.( v1.0.0과 같은)

    tag로 버전을 명시해서 release하면 다운로드 가능하게 됨.

브랜치 전략

github flow 방식

github flow

git flow 방식

gitflow 간단 실습
gitflow 좋은 설명

생활 코딩 git flow model

profile
keep in positive mindset. I've got this.

0개의 댓글