728x90
1. Git과 Github의 차이점
- Git : 개인 컴퓨터 내에서 프로젝트의 변경된 내용을 관리하는 도구 (버전 관리 도구)
- Github : 코드 저장소 (like 코드계의 클라우드)
- Version : 특정 시점에서 프로젝트의 상태
2. Git의 4가지 영역
- git은 크게 4가지 영역으로 나눌 수 있다.
(1) Working Directory (modified)
- modified : 작업영역
- 개인 PC 내에서 코드를 수정하고 새로운 파일을 추가하는 등의 개인적인 수정작업을 하는 영역
(2) Staging Area (staged)
- staged : 준비 영역
- commit하기 이전에 add된 파일들이 모여있는 영역
(3) Local Repository
- 파일들이 commit되어 버전이 생성된 상태로 존재하는 영역
- 우리가 작업하는 코드들은 모두 개인의 로컬 환경(개인 컴퓨터)에서 이루어진다. 이때, 로컬 저장소는 개인 PC에 파일이 저장되는 개인용 저장소를 의미한다. 즉, 평소에 내 개인 PC에 파일을 만들고 삭제하고 변경하는 일련의 과정들이 전부 로컬 저장소에서 수행되는 것이다.
(4) Remote Repository
- push를 통해 작업한 최종파일들을 github에 업로드한다. 물론 원격 저장소로부터 수정한 내역을 받을 수도 있다.
- 협업, 버전 관리, 백업 등을 이루는 웹 서비스 상에 존재하는 저장소인 깃허브가 바로 원격 저장소이다. 즉, 개인 PC에서 작업한 내용을 깃허브의 원격 저장소에 소스코드를 올려 미국에 있는 친구와도 협업할 수 있는 것이다.
3. Github에 직접 업로드해보기
🤔 작업한 내용을 깃허브에 업로드하려면 어떻게 해야할까?
1️⃣ 깃허브에 '원격 저장소'를 만들어줘야한다. (원격 저장소를 통해 다른 개발자들과 협업을 진행할 수도 있고 버전 관리를 통해 프로젝트의 개발 단계까지 편히 볼 수 있다)
2️⃣ 내 PC에서 깃허브의 '원격 저장소'에 올릴 파일들의 폴더에 '로컬 저장소'를 만든다.
3️⃣ 앞서 만든 원격 저장소와 로컬 저장소를 연결시켜 로컬 저장소에 있는 파일을 원격 저장소로 이동시킨다.
- github에 회원가입하였고 git을 설치하였다면 이후 과정을 살펴보자
(1) Repository도 만들지 않은 초기 상태일 때
1. 깃허브에 원격 저장소 (Repository) 만들기
- 본인의 깃허브 메인 페이지에서 'Repositories' 탭에 위치한 'New' 버튼을 통해 새로운 저장소를 생성할 수 있다.
2. 로컬 저장소 만들기
- 터미널에서 본인이 올리고자하는 파일로 이동해준다.
- cd 함수를 통해 본인이 이동하고자하는 폴더로 이동해주자. 필자는 documents 파일의 Algorithm 프로젝트를 깃허브에 업로드하려고 한다.
- git init을 통해 새로운 로컬 저장소를 만들어준다.
3. 로컬 저장소와 원격 저장소를 연결시켜주기
- 1.에서 만든 Repository에 들어간 뒤 초록색 <>code 버튼을 누르면 HTTPS 항목에 원격 저장소의 URL 주소가 있다. 이를 복사하여 다음의 명령어를 통해 두 저장소를 연결시켜주자.
- 원격 저장소와의 연결을 확인하고 싶거나 연결을 끊고 싶다면 아래 그림을 참조하자.
4. 파일 업로드 전 저장소 세팅하기
- 브랜치(branch) 이름 변경
- README.md 가져오기 (원격 저장소에는 로컬 저장소에 없는 README.md 파일이 존재하기에 두 저장소의 상태가 같아지도록 세팅한다)
5. 파일 업로드하기
- add -> commit -> push를 통해 파일을 업로드해보자
(1) add
(2) commit
- "commit message"와 같은 히스토리를 작성해서 버전 관리의 이점을 살리자.
(3) push
(2) 저장소가 있고 이미 파일도 업로드된 상태에서 새로 작업한 내용만 추가시키고 싶을 때
++ 자주 사용되는 용어들
- 스테이지(Stage) : 버전으로 만들 파일이 대기하는 영역이다. 예를 들어 내가 깃이 관리하는 폴더 내에서 10개의 파일을 수정했는데 4개의 파일만 버전으로 만들려면 이들만 스테이지로 넘겨주면 된다. 보통 초보 프로그래머들은 변경사항을 모두 커밋하기 때문에 스테이지와 커밋을 한꺼번에 처리하는 경우가 많다.
- 커밋(Commit) : 파일이 스테이지에 있다면 버전을 만들 수 있는데 깃에서는 버전을 만드는 것을 커밋(Commit)을 한다. 커밋할 때는 그 버전에 어떤 변경 사항이 있었는지 알려주기 위해 히스토리 메시지를 함께 기록해주는 것이 좋다.
- 브랜치(Branch) : 독립적인 개발 라인이다. 보통 프로젝트를 할 때 개인마다 하나의 브랜치를 가져 팀 구성원들과 분리 작업을 할 수 있다.
- 푸시(Push) : 푸시는 로컬 저장소에서 변경된 코드를 원격 저장소로 업로드하는 작업이다.
- git fetch와 git pull의 차이점 ?
fetch는 로컬 저장소에게 원격 저장소에서 최선 메타데이터 정보를 확인하라는 명령을 전달함. 단, fetch는 변경사항이 있는지만 확인하고 변경된 데이터를 로컬 저장소에 가져와 임의로 merge하지 않음.
반면 pull은 원격 저장소에서 변경된 최신 메타데이터 정보를 확인할 뿐만 아니라 최신 데이터를 복사하여 로컬 저장소에 가져와 자동으로 merge까지 진행한다.
'Git' 카테고리의 다른 글
[Git] Upstream, Origin, 그리고 Local의 상호작용 (2) | 2024.03.31 |
---|---|
[Git] git clone을 통해 Repository에 소스 올리기 (1) | 2021.10.02 |
[Git] git bash를 사용하여 Repository에 소스 올리기 (0) | 2021.08.10 |