100세까지 코딩
Git&GitHub 중급 본문
한눈에 보기
기능 설명 및 명령어
1. Fork
- 다른 사람의 Github repository를 내 Github repository로 그대로 복제하는 기능.
original repository에 변화(commit)가 생기면 fork 된 repository도 반영(fetch or rebase)할 수 있다. (원본 추적 가능)
2. Clone
- 특정 repository를 내 로컬 pc에 복사하여 새로운 저장소를 만든다.
original repository에 변화(commit)가 생기면 push가 불가능. - 수정된 내용을 내 로컬에 적용(fetch & merge) 한 후 push 가능.
git clone https://github.com/본인_아이디/저장소 아이디. git
3. Fetch
- 원격 저장소에 변경사항들을 로컬 pc에 가져오기 전에 변경 내용을 확인한다.
단, 확인만 할 뿐 변경된 데이터를 로컬 pc에 가져오지는 않는다. (merge x)
git fetch
4. Branch
- 여러 개발자들이 동시에 서로 다른 작업을 하기 위해 별도의 공간을 만든다.
- 현재 시점에 브랜치 만들기
git branch 브랜치이름
5. Checkout
- 브랜치 간의 이동을 하기 위한 명령어
- -b는 새로운 브랜치를 만들고 체크아웃 (옵션)
git checkout -b 브랜치이름
6. Status, Add, Commit
- Status : working directory와 staging area의 상태 확인.
수정된 파일이 있는지 확인. - Add : 파일들을 stage & track 하게 한다. 변경 사항들을 모아놓는다.
- Commit : staging area에 저장되어 있는 변경 사항들을 로컬 저장소에 등록(변경사항 확정)
git status // 변경된 파일 확인
git add -A(또는.) // 변경된 전체 파일을 한 번에 반영
git commit -m "메시지" // 작업한 내용을 메시지에 기록
7. Push
- 로컬 PC의 최신화된 파일과 상태를 원격 저장소에 반영.
git push origin 브랜치이름
8. Merge
- 다른 브랜치를 가져와 하나로 합칠 때 사용.
git merge 브랜치이름
9. Pull Request (PR)
- 조직 Repository에 코드 검토 후 병합해 달라고 요청하는 것
- 여러 동료들에게 리뷰를 받을 수 있다.
Clone vs Fetch vs Pull
- clone : github repository에서 로컬 pc로 파일을 받아와 프로젝트 작업 시작
- fetch : github repository의 내용은 확인하지만 로컬 pc에 merge는 안 함
- pull : github repository의 최신 정보를 가져와 로컬 pc에 병합 (fetch + merge)
Clone vs Pull
- Clone은 remote 설정을 자동으로 설정
- Clone = git init + git remote origin origin + git pull
- Clone은 처음 받아 올 때, Pull은 중간중간 업데이트 사항을 받을 때
Branch vs Fork
- Branch는 하나의 원본저장소에서 분기를 나눈다. (소수일 때)
- Fork는 여러 원격저장소를 만들어 분기를 나눈다. (다수일 때)
- Branch는 하나의 저장소에서 커밋 이력을 편하게 본다. 그러나 다수의 사용자가 다수 브랜치 만들면 불편.
- Fork는 원본저장소에 영향을 미치지 않아 마음껏 가능. 그러나 원본저장소 이력을 보려면 따로 주소 추가.
'GitHub' 카테고리의 다른 글
Git Commit Message Convention (0) | 2024.02.26 |
---|---|
Git&Github 심화 (0) | 2024.02.15 |
Git&GitHub 시작 (0) | 2024.02.15 |