1. Clone

1) 정의

로컬에서 작업하기 위해 Remote Repository를 복제해 내 pc의 Local Repository로 저장
소스파일, 변경이력, 설정을 복제하여 내 pc에 저장**(Local Repository를 생성)**

2) clone 방법

  1. ssh 방식 : ssh key를 github에 미리 등록하여 클론할 컴퓨터가 원격저장소의 프로젝트에 접근할 권한이 있는지 체크
  2. https 방식 : 보안상의 문제로 권장하지는 않음3. Clone하기소스트리를 이용한 clone
  3. github 원격저장소에서 ssh주소 복사
  4. 소스트리에 url에서 복제를 선택
  5. 복사한 ssh 주소입력, 복사할 폴더 설정, 이름설정(Local repositiry의 이름)
  6. clone 완료 → .git 폴더까지 생성됨

2. Add, Commit, Push, Pull

1) Add

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

  • 내 pc(working directory)에서 올리고 싶은 파일을 staging area에 등록
    git add

2) Commit

  • Add로 등록된 파일들을 한 덩어리로 묶고, 메시지를 추가해 Local 저장소에 업로드

3) push

  • commit되어 로컬 저장소에서 변경이 된 파일들을 원격저장소로 올리는 단계
  • push이전까지는 내pc에서만 진행됨
  • origin : 원격저장소

4) pull

  • 원격저장소의 변경사항을 로컬 저장소로 가져오고 내 작업소스에 합침
  • fetch(원격저장소의 로컬저장소로) + merge(로컬저장소에서 내작업파일로 합치는 것)
    • fetch : 원격 저장소의 소스를 로컬 저장소로 받아옴(내 작업 소스에는 반영되지 않음)
    • merge: fetch해온 로컬 저장소의 소르를 내 작업 소스에 합침

3. Branch

새로운 가지를 만들어 다른방향으로 작업을 이어나가는 것

  • 브랜치 생성 : 브랜치 이름 작성 후 생성(feature1)
  • 새 브랜치 체크아웃 : 브랜치를 생성한 후 현재 작업 소스를 해당 브랜치의 상태로 변경
    • 생성 직후에는 변경사항이 없어 브랜치는 로컬 저장소에만 반영되어있음
  • main 브랜치에 커밋 & 푸시
    • feature1 브랜치는 가만이 있고 main 브랜치만 뻗어나감
    • main 브랜치는 원격 저장소에까지 반영됨
  • feature1 브랜치에 커밋 & 푸시
    • feature1 브랜치와 main 브랜치가 서로 다른 방향으로 뻗어나감
    • 원격저장소에 feature1 브랜치 생성됨

4. Merge

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

  • 기준이 되는 브랜치(main)로 체크아웃
  • merge 대상 브랜치(featrue)에서 merge 진행

5. Conflict

Branch를 Merge 할 때 발생할 수 있음

같은 파일의 같은 부분을 수정한 브랜치들을 merge할때 발생

  • merget시 충돌이 일어나면, 메시지 발생(해결해야할 병합 충돌이 있음을 안내)
  • 충돌 브랜치들의 내용을 각각 보여줌 -> 양자택일 필요
    • vsc에서도 확인가능

다른 팀원과 함께 브랜치를 머지할때는 해당 작업자와 논의 필요!


6. Fork 복제

다른 사람의 원격저장소에서 어떤 부분을 수정하고나 추가 기능을 넣고 싶을때 해당 원격 저장소를 재 원격 저장소에 그대로 복제하는 것

  • 다른 계정으로 접속
  • 원하는 레포지토리의 깃헙 페이지 접속 후 fork 버튼 클릭

fork 🆚 clone

- fork : 다른 사람의 원격저장소를 내 계정의 깃헙 원격저장소로 복제

- clone : 원격저장소에서 내 로컬 저장소로 복제

 


7. Git Cli 명령어

  • git clone [원격 저장소 주소]
  • git status : 저장소 상태 보기

  • git add & git status

         👉🏻 git add 후 status 확인해보기

  • git restore --staged [파일경로] : staging했던 파일 다시 working directory로 내리기

          👉🏻 git restore로 staging되었던 파일을 다시 working directory로 내렸을때 status 확인해보기

  • git push
  • git log --decorate --graph

'Dev-log > GIT' 카테고리의 다른 글

Git  (0) 2024.04.06

+ Recent posts