Git | Fork로 Git Hub 연결해서 사용하기
Git Hub 사용하기
⎮ 자주 혼동하는 개념
1. Git vs Git Hub
Git : 분산 버전 관리 시스템
Git Hub : Git 저장소를 올리는 Hub 사이트(구글 드라이브 같은 개념)
* Git 없이 Git Hub 사용은 불가능하지만, Git Hub 없이 Git 사용은 가능함
2. Push vs Pull
Push : 로컬 저장소의 변경 사항을 원격 저장소(GitHub 등)로 업로드(로컬 -> 원격)
Pull : 원격 저장소(GitHub 등)의 변경 사항을 로컬 저장소로 가져오기(원격 -> 로컬)
* Git hub에 내용을 올릴 때는 Push, Git hub의 내용을 받을 때는 Pull
3. Git 용어들
Commit : 변경 사항을 로컬 저장소에 기록
Push : 로컬 저장소의 변경사항을 원격 저장소로 업로드
Pull : 원격 저장소의 변경 사항을 로컬로 가져오는 것
Clone : 원격 저장소를 복사해서 로컬에 처음 다운로드하는 것(초기 다운로드)
Fetch : 원격 저장소의 변경 사항을 가져오되 자동 병합은 하지 않는 것(새로고침)
Merge : 가져온 변경 사항을 현재 브랜치에 병합하는 것
Rebase : 브랜치를 병합할 때 새로운 기반으로 재구성하는 것
Branch : 독립적인 개발을 위한 가지(기본 브랜치는 main)
Main : Git 저장소의 기본 브랜치
Feature Breanch : 기능 개발을 위한 브랜치
Checkout : 다른 브랜치로 이동하거나 특정 커밋으로 전환하는 것
HEAD : 현재 작업 중인 브랜치를 가리키는 포인터
Detached HEAD : 특정 커밋에 머물러 있는 상태
Fork : 다른 사람의 저장소를 내 GitHub 계정으로 복사
PR(Pull Request) : 변경 사항을 원래 저장소에 병합 요청(GitHub에 반영하고자 할 때)
Upstream : 원본 저장소
Origin : 내 로컬 저장소와 연결된 원격 저장소
Conflict : 두 개의 브랜치에서 같은 파일을 수정하면 충돌이 발생하는 것
Resolve Conflict : 충돌 해결 후 다시 병합하는 것
Reset : 커밋을 되돌리는 명령어
Revert : 특정 커밋을 취소하는 새로운 커밋을 생성하는 것(기록 유지)
Squash : 여러 개의 커밋을 하나로 합치는 작업
Stash : 현재 변경사항을 임시로 저장하고, 나중에 다시 적용할 수 있는 것
⎮ Git Hub 세팅
1. Git Hub 로그인하기
2. New repository 만들기
3. repository 만들기
⎮ Fork 연결하기
1. Fork 실행하기
2. File - Clone... 클릭하기
3. Fork가 생성해준 폴더로 가서 생성한 Xcode 파일(PlayGround) 붙여넣기
* git 연결이 잘 되었는지 확인하려면 ⌘ + shift + . 하여 숨겨진 파일 중 .git이 있는지 확인하면 됨.
4. Fork로 가면 Local Changes 확인 가능
⎮ Fork 커밋하기
1. Local Changes 클릭 - Stage에 파일 올리기 - 내용 작성 후 Commit
⎮ Fork Push하기
1. Commit 우클릭 - Push 'main' to 'origin'
⎮ Fork Pull 하기
1. 항목(대상) 선택 - Pull 클릭
2. 상황에 따라 체크 박스 선택 후 Pull