1. git init
git init
- 설명: 이 명령어는 로컬 저장소를 초기화하는 명령어입니다.
- 진행 과정:
- 현재 디렉터리에 .git 폴더가 생성됩니다.
- 이 폴더는 Git이 로컬에서 버전 관리에 필요한 메타데이터를 저장하는 곳입니다.
- 서버: 이 과정은 로컬 PC에서만 실행되며, 원격 서버와는 아직 아무런 연결이 없습니다.
2. git add .
git add .
- 설명: 현재 디렉터리(.)의 모든 변경 사항(새로운 파일, 수정된 파일 등)을 Git 스테이징 영역에 추가합니다.
- 진행 과정:
- 모든 파일이 스테이징(staging)됩니다.
- 스테이징 영역에 추가된 파일들은 다음 git commit 명령으로 커밋할 준비가 된 상태입니다.
- 서버: 이 명령도 로컬 PC에서만 실행되며, 원격 서버와의 상호작용은 없습니다.
3. git commit -m "first commit"
git commit -m "first commit"
- 설명: 스테이징된 파일들을 하나의 커밋으로 기록합니다. 이때 "first commit"은 커밋 메시지입니다.
- 진행 과정:
- 스테이징된 파일들의 변경 내역을 하나의 커밋으로 저장합니다.
- 이 커밋은 로컬 저장소에 저장되며, 아직 원격 저장소로 푸시되지 않았습니다.
- 서버: 여전히 로컬 PC에서만 실행됩니다.
4. git branch -M main
git branch -M main
- 설명: 현재 브랜치를 main으로 이름 변경하는 명령어입니다.
- 진행 과정:
- 기본 브랜치 이름을 master에서 main으로 변경합니다. (최근 Git은 기본적으로 main 브랜치를 사용)
- 서버: 이 과정도 로컬 PC에서만 이루어집니다.
5. git remote add origin https://github.com/XXXX
git remote add origin https://github.com/XXXX
- 설명: 원격 저장소를 추가하는 명령어입니다. 여기서 origin은 원격 저장소의 이름이며, URL은 GitHub에 위치한 특정 저장소를 가리킵니다.
- 진행 과정:
- 로컬 저장소에 원격 저장소를 연결합니다.
- origin이라는 이름으로 https://github.com/XXXX 원격 저장소를 등록합니다.
- 서버: 이때부터 로컬 저장소와 원격 저장소(GitHub 서버)가 연결됩니다. 그러나 아직 원격 서버와 상호작용은 일어나지 않았습니다.
6. git push -u origin main
https://github.com/XXXX
- 설명: 로컬 저장소의 main 브랜치에 있는 커밋을 원격 저장소(GitHub)의 main 브랜치로 푸시하는 명령어입니다.
- 진행 과정:
- 로컬 저장소에 있는 main 브랜치의 변경 사항(커밋)이 원격 저장소에 푸시됩니다.
- -u 옵션은 이 로컬 브랜치를 원격 브랜치와 연결하여, 이후에 git push 명령어를 단순히 입력해도 해당 원격 브랜치로 푸시할 수 있도록 설정합니다.
- 서버: 이 명령어가 실행되면 GitHub 서버와 상호작용이 발생합니다. GitHub의 aws-terraform 원격 저장소에 로컬에서 만든 커밋이 푸시됩니다. GitHub은 클라우드 기반의 서버입니다.
요약
- 로컬 명령어들: git init, git add ., git commit -m, git branch -M main은 로컬 PC에서만 수행되며, 원격 서버와는 상호작용하지 않습니다.
- 원격 서버 연결 및 상호작용: git remote add origin은 로컬 저장소와 **원격 저장소(GitHub 서버)**를 연결하고, git push를 통해 로컬의 데이터를 원격 저장소로 전송하며 GitHub 서버와 상호작용이 발생합니다.
즉, 원격 저장소(GitHub)는 클라우드 서버에 있으며, 로컬 저장소에서 파일을 푸시(push)하거나 가져오기(pull) 할 때 클라우드 서버와 네트워크를 통해 통신이 이루어집니다.