[Beyond SW 프리코스] Git&Github <5강~6강>

이경민·2025년 9월 12일

한화시스템 Beyond SW

목록 보기
4/40

Git의 주요 작업 흐름 및 Commit

Git의 주요 작업 흐름

  1. 작업 트리에서 파일 수정
  2. 다음 커밋에 포함될 변경사항만 선택적으로 스테이징. (스테이징 영역에만 해당 변경사항 추가)
  3. 커밋 숭. (스테이징 영역에 있는 파일들을 그대로 가져와 영구적으로 Git 디렉토리에 스냅샷으로 저장)

명령어

ls -al : 디렉터리 안의 파일 목록을 자세히 보여주는 명령어
git status : 상태감지. 수정(modified)이있거나 새로운 파일에 대한 목록을 붉은 글씨로 보여줌.


git
git add <파일> : 해당 <파일>을 버전에 적용
git add . : untracked file 전체를 해당 버전으로 적용 (마침표 전에 공백 필수)
git rm : working tree와 index(staging area)로 부터 파일을 지운다
git rm --cached : index(staging area)로부터만 파일을 지운다(파일을 다시 untracked file로 만든다)
git commit -m "버전이름" : "버전이름"대로 버전을 만듦. 버전을 만들었으므로 working tree가 clean해짐.
git log --graph : 이전 커밋들 쭈루룩 확인 가능.

git config --global core.editor "code -w" :Git이 내부적으로 텍스트 편집기를 열 때 사용할 프로그램을 vscode로 지정. -w까지 포함해야 empty message 오류가 안남.

Git Commit

  • Git 저장소(Repo)에 사용자의 디렉토리(git init으로 만든 .git 폴더) 에 있는 모든 파일에 대한 스냅샷을 기록함.
    - 디렉토리 전체를 복사하여 붙여넣는 것과 유사.
    • 다만 커밋할 때마다 디렉토리 전체를 복사하는 것은 아님.
  • 각 커밋은 저장소의 이전 버전과 다음 버전의 변경내역(delta)을 저장함.
  • 따라서 대부분의 커밋이 그 커밋 위의 부모 커밋을 가리킴.

Snapshot : 과거의 한때 존재하고 유지시킨 컴퓨터 파일과 디렉터리의 모임

의미있는 단위로 Commit 분리

  1. 기능 추가 : 새로운 기능 추가 시, 해당 기능과 관련된 파일(코드파일,테스트파일,문서 등)들을 하나의 commit으로 분리.
  2. 버그 수정 : 버그 수정 작업 시, 해당 버그와 관련된 코드를 수정한 부분(관련 파일, 수정한 함수)을 하나의 commit으로 분리.
  3. 리팩토링 : 리팩토링(중복코드제거,가독성높이기)한 코드를 하나의 commit으로 분리.
  4. 인터페이스 변경 : 인터페이스 변경에 관련된 코드와 파일을 하나의 commit으로 분리.
  5. 기타 변경 사항 : 코드 스타일 수정, 주석 추가, 문서 업데이트 등의 작은 변경 사항도 의미 있는 단위로 commit 가능.
    => 변경 사항들을 commit으로 분리하면 코드 이력 추적, 이해 쉬워짐

git commit 옵션
1. -m "<메세지>" 또는 --message="<메시지>" : 커밋 메시지를 직접 명령어에 포함시킴. (커밋 메세지는 필수, 원래는 텍스트 에디터로 작성함)
2. -a 또는 -all : 수정된 모든 파일을 자동으로 스테이징하고 커밋함. git add 명령어 생략.
3. --amend : 커밋 수정. 이전 커밋에 새로운 변경 사항을 추가하거나 커밋 메시지를 변경할 수 잇음.

0개의 댓글