Git
- Git(깃)은 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템
- Working Directory (= Working Tree) : 사용자의 일반적인 작업이 일어나는 곳
- Staging Area (= Index) : 커밋을 위한 파일 및 폴더가 추가되는 곳
- Repository : staging area에 있던 파일 및 폴더의 변경사항(커밋)을 저장하는 곳
- Git은 Working Directory → Staging Area → Repository 의 과정으로 버전 관리를 수행한다.
Commit
- 커밋(commit)은 프로젝트의 변경 사항을 스냅샷으로 만들어 저장하는 것이다.
- 각 커밋은 변경된 파일의 상태를 포함하고, 해당 커밋에 대한 메타데이터(작성자, 날짜, 커밋 메시지 등)를 가지고 있다.
Github
- Git이라는 소프트웨어를 활용한 서비스이며,
- Git을 활용해서 소스코드 관리, 이슈 트래킹, 코드 리뷰, 프로젝트 관리 등을 할 수 있다.
경로
- 절대경로
- 루트 디렉토리(/ 또는 C:\ 등)부터 해당 파일이나 디렉토리까지의 전체 경로
- 파일 시스템의 어느 위치에서나 동일한 위치를 가리킨다.
- 상대경로
- 현재 작업 중인 디렉토리를 기준으로 한 파일이나 디렉토리의 위치
- 같은 리소스에 대해 다른 위치에서는 다르게 표현될 수 있다.
- . : 현재 디렉토리
- .. : 상위 디렉토리
CLI
- CLI (Command Line Interface)는 사용자가 텍스트 기반 명령어를 입력하여 컴퓨터와 상호작용하는 인터페이스이다.
- ls : list - 현재 위치한 디렉토리 내의 파일 및 하위 디렉토리 목록을 확인
- cd : change directory - 사용자가 현재 작업 중인 디렉토리를 변경할 때 사용
- ctrl + c : 실행 중인 프로세스를 중단
Git 초기 설정
- 누가 커밋 기록을 남겼는지 확인할 수 있도록 이름과 이메일을 설정
- 최초 한 번만 설정한다.
$ git config --global user.name "이름"
$ git config --global user.email "메일 주소"
- 설정 확인
$ git config --global -l
- 기본 브랜치를 master → main으로 변경
$ git config --global init.defaultBranch main
git init
- 현재 작업 중인 디렉토리를 Git으로 관리한다는 명령어
$ git init
git add
- Working Directory에 있는 파일을 Staging Area로 올리는 명령어
# 특정 파일
$ git add some_file.txt
# 특정 폴더
$ git add some_folder/
# 현재 디렉토리에 속한 파일/폴더 전부
$ git add .
git commit
- Staging Area에 올라온 파일의 변경 사항을 하나의 버전(커밋)으로 저장하는 명령어
- 커밋 메세지는 현재 변경 사항들을 잘 나타낼 수 있도록 의미 있게 작성하는 것을 권장
$ git commit -m "{{ comomit message }}"
git status
- Working Directory와 Staging Area에 있는 파일의 현재 상태를 알려주는 명령어
- 어떤 작업을 시행하기 전에 수시로 status를 확인하면 좋습니다.
- 상태
- Untracked : Git이 관리하지 않는 파일 (한번도 Staging Area에 올라간 적 없는 파일)
- Tracked : Git이 관리하는 파일
- Unmodified : 최신 상태
- Modified : 수정되었지만 아직 Staging Area에는 반영하지 않은 상태
- Staged : Staging Area에 올라간 상태
$ git status
git log
$ git log
- 커밋의 내역(ID, 작성자, 시간, 메세지 등)을 조회할 수 있는 명령어
- 옵션
- --oneline : 한 줄로 축약해서 보여준다.
- -{{num}} : 원하는 갯수 만큼의 내역을 보여준다.
로컬 ↔ 원격 연결
- 원격 레포지토리 주소 복사
- 최초 1회만 설정하면 된다.
$ git remote add origin {{ URL }}
git push
- 로컬 저장소의 커밋을 원격 저장소에 업로드하는 명령어
$ git push origin main
- 다음 옵션을 사용하면 git push만으로 사용 가능
$ git push -u origin main
git clone
- 원격 저장소의 커밋 내역을 모두 가져와서 로컬 저장소를 생성하는 명령어
$ git clone {{ URL }}
git pull
- 원격 저장소의 변경 사항을 가져와서, 로컬 저장소를 업데이트하는 명령어
$ git pull origin master
clone vs pull
- 둘다 원격 → 로컬 이지만
- clone은 git이 없는 상황에서 원격의 복제본을 만드는 것
- pull은 이미 git이 존재하는 상황에서 업데이트를 하는 것
주의 사항
- git을 클라우드 저장소처럼 사용하지 말 것
- git을 중첩하여 생성하지 말 것
'CS' 카테고리의 다른 글
인증과 권한 (0) | 2024.03.18 |
---|---|
REST API 및 CRUD (3) | 2024.03.15 |
DB에 대한 이해 및 DATA 모델링 (0) | 2024.03.13 |
RAID (0) | 2024.01.26 |
Full Stack, Restful, MicroService, DevOps, MLOps (0) | 2024.01.25 |