[Git/GitHub] 6. 사용하기

AY·2023년 12월 12일

Git/GitHub

목록 보기
6/7

Clone

로컬에서 작업하기 위해 remote repository를 복제해 내 PC에 local repository로 저장하는 것

소스트리를 이용해 Clone하기.

  1. Github 원격 저장소에서 SSH 주소 복사
  2. URL에서 복제 선택
  3. 복사한 SSH 주소 입력, 복사할 폴더 설정, 이름 설정
  4. Clone 완료!





Add, Commit, Push, Pull

Add

변경된 파일 중 Repository에 올릴 파일들을 등록한다.

working directory에서 staging area로 올림

Commit

Add로 등록된 파일들을 한 덩어리로 만들고 메시지 추가해 로컬 저장소에 올린다.

staging area에서 local repository에 반영됨.

Push

Commit되어 로컬 저장소에서 변경이 된 파일들을 원격 저장소로 전달한다.

local repository에서 remote repository로 전달됨.

push 완료 후 없던 origin(원격 저장소를 의미)이 생김

Pull

원격 저장소의 변경 사항을 로컬 저장소로 가져옴과 동시에 내 작업 소스에 합친다.

원격 저장소에서 내 로컬 저장소로 가져오는 것 = Fetch

그 로컬 저장소에서 내 작업 폴더로 가져오는 것 = Merge

Pull = Fetch + Merge

  • Fetch: 원격 저장소의 소스를 로컬 저장소로 받아와 일치시킴.
    • 내 작업 소스에는 반영하지 않음
  • Merge: Fetch해온 로컬 저장소의 소스를 내 작업 소스에 합친다.
    • 합칠 때 같은 부분의 소스가 다를 경우 충돌이 발생

Pull 하는 상황은 언제 발생할까?

  • 원격 저장소는 여러 프로젝트의 개발 인원들이 동시에 사용.
  • 다른 개발자가 변경 상태를 Push해 원격 저장소에 반영한다면 내 입장에서는 원격 저장소에 변경 상황이 발생한 것.




Branch

나무가지를 의미. 기존에 만들어 놓은 버전(main)에서 복사해 새로운 가지를 만들어 다른 방향으로 작업을 이어 나가는 것을 말한다.

분업을 위해 사용.

Branch 생성

브랜치 이름 작성 후 생성. 새 브랜치 체크아웃 박스 클릭하기.

Merge

각각의 브랜치에서 작업이 완료된 후 통합 브랜치(main)로 모아 합치는 작업

  • Merge할 커밋 시점을 선택해 Merge하는 것도 가능!




Conflict 해결

Conflict 발생

  • Branch를 merge할 때 발생할 수 있다.
  • 같은 파일의 같은 부분을 수정한 브랜치들을 merge할 때 발생

merge 시 충돌이 일어나면?

메인 브랜치의 소스와 다른 브랜치의 소스 중 하나를 선택하도록 함.

** 다른 작업자가 작업한 브랜치를 머지할 땐 해당 작업자와 충분히 논의할 것.




Fork 복제

Fork

다른 사람의 원격 저장소에서 어떤 부분을 수정하거나 추가 기능을 넣고 싶을 때 해당 원격 저장소를 내 원격 저장소에 그대로 복제하는 것, 전문용어로 “포크뜬다”라고 한다.

사용법

  • 다른 계정으로 깃허브 접속
  • 원하는 레포지토리에 깃허브 페이지 접속 후 Fork 버튼 클릭




Pull Request

다른 사람에게 내 브랜치를 merge 해달라고 하는 요청.

어떤 부분을 어떻게 수정했는가, 피드백을 요청하는 부분은 정확히 어떤 파일의 어느 부분인지 기입할 것.

사례: 한 원격 저장소에서 내 브랜치를 merge 하기 전 피드백을 요청

사례2: Fork 뜬 저장소에서 원본 저장소에 개발 완료 후 원본 저장소에 Merge를 요청

profile
FE 개발자

0개의 댓글