Git (4) 기본 사용법

stav·2024년 6월 25일
0
post-thumbnail

📝 Git의 저장 상태와 명령어

Untracked vs Tracked

Untracked (등록되지 않은 상태)

  • Untracked 파일은 현재 Git 저장소에서 관리되지 않는 파일을 의미한다.
  • 이러한 파일은 Working Directory에 존재하지만, 아직 Staging Area에 추가되지 않은 상태이다.
  • 간단히 말해서, git에 의해 추적되지 않는 파일이다.

Tracked (등록된 상태)

  • Tracked 파일은 Git에 의해 관리되는 파일로, 이미 Staging Area 또는 Commit된 기록이 있는 파일을 말한다.
  • Tracked 파일은 세 가지 상태 중 하나에 있을 수 있다:

1. Staged (Staged 상태)

  • Staged 상태는 파일이 Staging Area에 추가되어 Commit을 할 준비가 된 상태를 의미한다.
  • 이러한 파일은 다음 Commit에 포함될 파일들이다.

2. Committed (Committed 상태 또는 Unmodified 상태)

  • Committed 상태는 파일이 Git 저장소에 버전이 매겨져 저장된 상태를 의미한다.
  • Committed 파일은 현재의 HEAD와 동일하며, 변경되지 않은 상태이다.

3. Modified (Modified 상태 또는 Unstaged 상태)

  • Modified 상태는 파일이 Git 저장소에 이미 버전이 매겨졌지만, 현재 수정된 상태를 의미한다.
  • 이러한 파일은 Staging Area에 추가되지 않았고, 따라서 Commit되지 않은 상태이다.


📝 상태 변화

Add File (파일 추가)

  • 파일을 Working Directory에서 Staging Area로 추가할 때 사용하는 명령어는 git add이다.
  • 이 명령어를 사용하면 Untracked 파일이 Staged 상태로 전환된다.
  • 즉, 파일이 Tracked 상태로 들어오며, 버전을 매기는 대상으로 인식된다.
git add <file_name>
  • 상태 변화: UntrackedStaged

Commit (커밋)

  • 파일을 Staging Area에서 Commit하여 버전을 매길 때 사용하는 명령어는 git commit이다.
  • 이 명령어를 사용하면 Staged 상태의 파일이 Committed 상태로 전환된다.
  • 즉, 파일에 버전이 매겨지고, Git 저장소에 기록된다.
git commit -m "Commit message"
  • 상태 변화: StagedCommitted

상태 변화 요약

  1. 파일 추가 (Add File)

    • 명령어: git add <file_name>
    • 상태 변화: UntrackedStaged
  2. 커밋 (Commit)

    • 명령어: git commit -m "Commit message"
    • 상태 변화: StagedCommitted

git status

  • Working DirectoryStaging Area의 상태를 표시
  • 이 명령어는 현재 작업 중인 파일들의 상태를 확인할 수 있도록 도와줌
  • Tracked 파일과 Untracked 파일, Staged 상태의 파일과 Modified 상태의 파일을 구분하여 보여줌
  • git status 명령어를 사용하여 현재 Branch의 상태, Staging Area에 대기 중인 변경 사항, Untracked 파일 등을 확인할 수 있음
git status

git add

  • Working Directory에서 생성된 파일을 Staging Area (Index)에 추가
  • Modified 상태의 파일을 Staged 상태로 변경
  • git add* 로 의도하지 않은 파일도 올라갈 수 있어 사용에 조심
git add <file_name>

git commit

  • Working Directory에서 생성된 파일을 Staging Area (Index)에 추가
  • Modified 상태의 파일을 Staged 상태로 변경
  • -a 옵션으로 Staged 상태를 생략 가능 (Modified 상태에서 바로 Committed 상태로 변경)
  • 유의미한 문구로 작성하는 것이 좋음
git commit -m <commit_message>
git commit -a -m <commit_message>

git ignore

  • Git에서 무시해야 하는 파일 패턴을 관리
  • .gitignore 파일을 통해 특정 파일이나 디렉토리를 버전 관리에서 제외할 수 있음
  • 이는 예를 들어, 빌드 파일이나 개인 설정 파일 등 버전 관리가 불필요하거나 바람직하지 않은 파일들을 제외하는 데 유용함
# 확장자가 .a 인 파일 무시
*.a

# 윗 라인에서 확장자가 .a인 파일은 무시하게 했지만 lib.a는 무시하지 않음
!lib.a

# 현재 디렉토리에 있는 TODO파일은 무시하고 subdir/TODO처럼 하위디렉토리에 있는 파일은 무시하지 않음
/TODO

# build/ 디렉토리에 있는 모든 파일은 무시
build/

# doc/notes.txt 파일은 무시하고 doc/server/arch.txt 파일은 무시하지 않음
doc/*.txt

# doc 디렉토리 아래의 모든 .pdf 파일을 무시
doc/**/*.pdf

git rm

  • Git에서 관리하는 파일 삭제
  • Staging Area의 파일을 삭제하고 Commit
  • Working Directory에서도 삭제됨
  • 이 명령어를 사용하면 Tracked 상태의 파일을 Git 저장소에서 제거할 수 있음
git rm <file_name>
  • git rm은 파일을 Working DirectoryStaging Area에서 모두 제거함

git mv

  • 파일을 복사하고, 원본 파일을 삭제한 뒤 git add 하는 동작과 같음
  • 이 명령어를 사용하면 파일의 이름이나 위치를 변경할 수 있음
  • git mv를 사용하면 파일의 변경 내역을 유지한 채로 이동할 수 있음
git mv <old_name> <new_name>
  • git mv는 파일을 이동하고 새로운 위치에서 git add를 자동으로 수행함
profile
Data Analyst Challenge

0개의 댓글

관련 채용 정보