커밋 수정, 저장소에 저장

webDev5·2025년 2월 14일

Pro Git

목록 보기
1/6

파일 상태 확인

git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   test2.js

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        test1.js
  • 파일의 상태 확인
  • tracked 여부, staged 여부 등 다양한 상태 정보 확인 가능
  • 위의 경우, test2.js는 staged 상태, test1.js은 untracked 상태

파일을 새로 추적

git add <파일/디렉터리>
  • 다음 커밋에 추가
  • 위의 명령어를 실행하면 tracked 상태인 동시에 staged 상태가 됨
  • 디렉터리를 넣을 경우, 하위 디렉터리까지 재귀적으로 추가

파일 무시하기

  • git의 관리에서 제외할 목록을 설정
  • .gitignore 파일을 만들고 안에 파일명 또는 패턴을 작성
  • 패턴 목록
    • 아무것도 없는 라인이나, #으로 시작하는 라인은 무시
    • 표준 Glob 패턴 사용
    • 슬래시(/)로 시작하면 하위 디렉터리에 적용되지 않음
    • 디렉터리는 슬래시(/)를 끝에 사용하는 것으로 표현
    • 느낌표(!)로 시작하는 패턴의 파일은 무시하지 않음
  • 예시
# 확장자가 .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

Staged와 Unstaged 상태의 변경 내용 보기

git diff
  • 워킹 디렉터리에 있는 파일과 staged 상태의 파일을 비교
git diff --staged
git diff --cached
  • 커밋된 파일과 staged 상태의 파일을 비교

변경 사항 커밋하기

git commit
  • staged 상태의 파일을 commit 함
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Your branch is up-to-date with 'origin/master'.
#
# Changes to be committed:
#	new file:   README
#	modified:   CONTRIBUTING.md
#
~
~
~
".git/COMMIT_EDITMSG" 9L, 283C
  • 명령어를 실행하면 위의 내용이 포함된 편집기가 실행되고, 메시지를 입력하면 커밋됨(메시지를 입력하지 안으면 커밋되지 않음)
    • 기본적으로 git status의 결과 내용이 출력
    • -v 옵션을 입력하면 git diff의 내용이 추가로 출력
git commit -v
  • git status의 결과 내용과 git diff의 결과 내용이 출력
git commit -m <메시지>
  • 위의 화면이 나오지 않고 바로 커밋됨
git commit -a -m <메시지>
  • 모든 파일을 자동으로 추가하여 커밋함 (조심해서 사용해야 함)

파일 삭제하기

git rm <파일>
  • Staging Area에서 삭제한 후에 커밋

  • 파일명 대신에 패턴을 사용하면 여러 개의 파일이나 디렉터리 한 번에 삭제 가능

  • 디렉터리와 git에서 파일을 삭제하는 순서

    1. 파일을 워킹 디렉터리에서 삭제 (rm 명령어 사용)
    2. git rm 실행
    3. 삭제한 파일이 staged 상태가 됨
    4. commit (git은 더 이상 삭제된 파일을 추적하지 않음)
git rm -f <파일>
  • 위의 과정을 거치지 않고 staged 상태의 파일을 삭제
git rm --cached <파일>
  • 워킹 디렉터리에는 남기고 Staging Area에서만 제거해야 하는 경우 사용
  • untracked 상태가 됨

파일 이름 변경하기

git mv <변경 전 파일> <변경 후 파일>
  • 파일 이름을 수정
mv <변경 전 파일> <변경 후 파일>
git rm <변경 전 파일>
git add <변경 후 파일>
  • 위의 명령어들을 실행한 것과 결과는 동일
profile
공부한 내용을 정리하는 블로그입니다.

0개의 댓글