깃 허브 사용방법
용어 정리
- Local과 Remote
- Local은 로컬 저장소에 해당하고, Remote는 Origin과 같으며, 원격 저장소를 의미한다.
- Clone
- Clone은 말 그대로 복제 원격 저장소의 Repository를 가져온다.
- Pull
- Clone과 Pull 모두 원격 저장소의 소스 코드를 가져오는 역할을 하는데, 둘은 차이점이 존재한다.
Clone은 로컬 저장소의 소스 코드가 원격 저장소의 소스 코드를 복제하므로, 로컬 저장소에서 작업하던 소스 코드를 모두 잃을 수 있다.
반면, Pull은 로컬 저장소에서 작업하던 내용은 그대로 유지하면서 로컬 저장소와 원격 저장소를 비교하여 변경 사항을 업데이트해준다.
- 하지만, Pull 명령어를 실행하기 전에 먼저 Commit이 선행되어야만 충돌을 피할 수 있다.
Pull을 실행하기 전에는 Commit을 반드시 실행하도록 하자.
- Fetch
- Fetch는 원격 저장소의 변경 사항을 로컬 저장소로 가져오기 전에 어떠한 변경 사항이 있는지 확인하고자 할 때 사용한다.
즉, 확인만 할 뿐 실제로 변경 사항을 가져오지는 않는다.
- Commit
- Commit이란 변경 사항에 대해 기록하는 것을 의미한다. 커밋 기록을 통해 어떠한 변경점이 있는지 파악하기 쉬워진다.
- Add
- 커밋 수행전에 추가된 폴더나 파일등 변경 사항을 Staged하기 위해 사용하는 명령어
- Push
- 수정한 소스 코드를 원격 저장소에 밀어 넣기 위해 사용하는 명령어이다.
Push를 하고, 깃허브의 리포지토리를 들어가면, Pull Request가 생성되었다는 것을 볼 수 있는데, 왜 Push Request가 아니고 Pull Request인지 이상했다. 잘 생각해보면, 로컬 저장소에 변경 사항을 Push하면, 원격 저장소에서는 이 변경사항을 받아오기 위해 Pull Request가 필요하므로 Pull Request라고 지은 것 같다.
- Merge
- Main(=Master) 브랜치에 Push한 브랜치를 병합하는 명령어이다.
- Branch
- Branch는 가지를 의미하며, 내가 소스코드를 수정할 때에 다른 사람이 같은 소스 코드를 수정하게 되면 충돌이 발생할 수 있으므로 Branch를 생성하여, 독립적인 작업을 수행할 수 있다.
브랜치 생성하기
아래와 같이 클릭하면
이와 같은 창이 나오는데, 먼저 New Branch 로 Branch를 생성할 수 있다.