Git이란?
Git의 기본 구조
1. Working Directory (작업 디렉터리) 실제로 코드를 수정하는 곳
2. Staging Area: 커밋할 준비가 된 파일들이 있는 곳
3. Repository: 커밋들이 저장되는 로컬 저장소
git init
현재 폴더를 Git 저장소로 초기화.
.git 폴더가 생성되어 Git이 버전 관리하게 된다.
Git이 파일을 추적하게 된다.
git init
git status
어떤 파일이 수정되었고, 어떤 파일이 스테이징 되어 있는지 확인하는 명령어
현재 디렉토리 상태 확인하는 명령어이다.
git status
git staus 명령어를 입력하면 크게 세 가지를 알려준다.
1. 현재 브랜치 이름
2. 커밋되지 않은 변경 사항 (수정, 삭제, 새 파일 등)
3. 어떤 파일이 스테이징 되었고, 어떤 파일은 아직 아닌지에 대한 정보
1. 아무것도 커밋되지 않은 초기 상태
No commits yet -> 아직 커밋한 적 없음.
Untracked files -> 버전관리를 한 번도 한 적이 없는 파일 추적 불가.
$ git status
On branch main
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
hello.py
2. 파일 수정 후 아직 git add 안 했을 때
staging Area에 올라오지 않음. git add hello.py를 하면 Staging Area에 저장.
$ git status
On branch main
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
modified: hello.py
3. 파일을 수정하고 git add도 한 경우
modified가 추가되었다.
modified -> 추적 관리하던 파일이 수정된 상
$ git status
On branch main
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: hello.py
즉, git status로 현재 작업 디렉토리와 스테이징 영역의 상태를 확인할 수 있다.!
스테이징, git add
commit전 커밋 대상을 스테이징 영역에 올리는 명령어는 git add로 한다.
$ git add src/NotAdd.java
$ git status
인텔리제이에서 new file: src/NotAdd.java를 확인할 수 있다.
git reset 파일명
git reset 명령어로 스테이징을 취소할 수 있다.
git add.
위 명령어로 모든 파일을 한 번에 스테이징 할 수도 있다.
커밋
git commit -m "커밋내용은 여기에 아무거나 적으면 됩니다."
git commit -m "{}" 중괄호 안에 커밋한 내용들을 적으면 된다.
큰 따옴표 안에는 커밋 메시지를 작성한다.
무슨 작업을 했는지 쉽게 이해할 수 있는 용도로 적을 수 있고, 이해하기 쉬운 설명으로 적는 용도이다.
Git 로그
git log
1. commit 해시값
2. 작성자 이름과 이메일
3. 작성 시간
4. 커밋 메시지
정보들을 출력한다.
정리📖
git 기본 흐름
작업 디렉토리 -> 스테이징 -> 로컬 저장소 -> 원격 저장소
작업 디렉토리는 현재 코드 작업 중인 폴더
스테이징은 커밋할 변경사항을 임시로 저장하는 곳
로컬 저장소는 실제 Git에 저장된 커밋들
원격 저장소는 GitHub GitLab 같은 서버