GIT : 비슷하지만 다른 옵션들

운동하는 개발자·2022년 8월 18일
0
post-thumbnail

Overview

git을 사용하다 보면 clonefork, forkbranch 등 분명 비슷한 기능을 하지만 다른 기능들이 있다. 조금은 햇갈릴 수 있는 기능들을 알아보기 위해 글을 작성하였다.

1. Clone과 Fork

  • clone, fork 모두 git storage에서 복사기능을 수행하는 공통점이 있다.

Clone

  1. git에서 수행 된다.
  2. PC(local)로 storage가 복사가 된다.
  3. upstreamPush를 한다.

Fork

  1. github 사이트에서 수행 된다
  2. 본인 계정으로 storage가 복사가 된다.
  3. upstreamPR(PULL REQUEST)를 한다.

2. Fork와 Branch

  • fork, Branch는 협업 시 코드의 추가/수정이 다른 사람들에게 영향이 가지 않도록 하는 공통점이 있다.

Fork

  1. 여러 원격저장소를 만들어 분기를 한다.
  2. 원본저장소에서 commit이력을 확인할 수 없다.
  3. 원본저장소에 영향을 미치지 않아 자유로운 수정이 가능하다.
  4. fork의 이력을 확인하기 위해선 원격저장소를 추가해야한다.

Branch

  1. 원본저장소에서 분기를 나눈다.
  2. 원본저장소에서 commit이력을 확인할 수 있다.
  3. 다수의 branch가 만들어지면 관리가 어렵다.

3. Pull과 Fetch

  • 작업 시 변경된 내용을 확인/가져오는 기능을 하는 명령어이다.

Pull

  1. 원격저장소에 있는 변경사항들을 로컬저장소로 가져와 합치는 명령어

Fetch

  1. 원격저장소에 있는 변경사항들만 확인하는 명령어

4. Push/PR/Patch

  • 작업된 내용을 storage에 올리는 명령어라는 공통점이 있다.

Push

  1. 기본작업 방식으로 commit 후 저장소에 변경된 내용을 올리는 명령어이다.

PR(Pull Request)

  1. fork를 받은 원격저장소에서 변경된 사항을 원본저장소에 올리기위해서는 원본저장소를 관리하는 자에게 변경내용에 대한 확인이 필요하다. 이 과정을 PR이라고 한다.

Patch

  1. 원본저장소의 commitpush는 권한이 있는사람만 변경된 내용을 저장소에 반영을 할 수 있다.
  2. 이러한 권한이 없는경우 PR을 하지 않고 Patch를 하여 patch 파일을 보내 변경된 사항을 확인 및 적용할 수 있다.
    (patch 파일의 변경사항을 확인하는 명령어 : git am)

4. Merge와 Rebase

  • branch로 분기된 저장소의 코드를 합친다는 의미를 가진 명령어이다.

Merge

  1. branch로 나뉜 gitflow가 그대로 남는다.
  2. 프로젝트의 전체 기록을 보존하고 공용 커밋을 다시 는 위험을 피하고 싶을때 적용

Rebase

  1. branch로 나뉜 gitflow가 한 줄로 깔끔하게 정리가 된다.
  2. 불필요한 병합 커밋 없이 명확한 선형 히스토리를 선호하는 경우 적용
profile
강인한 체력이 최고의 무기다.

0개의 댓글