Git commit 이해하기 (feat. 명령어)
- 개발자라면?/Git & GitHub
- 2022. 9. 24.
* 이 글은 '제주코딩베이스캠프(링크)' 의 알잘딱깔센 GitHub 무료 강좌(링크)를 참고해 작성했습니다.
add 와 commit 이란?
add
- git 이 관리할 대상의 파일 등록
- add 를 하면 대기하고 있는 상태, add 를 해야 commit 을 할 수 있다
- 비행기 탑승 수속, 탑승 전
* Stage 는 commit 을 기다리는 파일들이 모여있는 곳
$ git add README.md // 지정 파일 올리기
$ git add . // 파일 전체 올리기
- 변경, 추가한 파일 목록 중 Stage 에 올리기 원하는 파일만 선택해서 add
- 파일 전체를 add 하려면 파일 대신 '.' 을 입력
commit
- Version 을 만드는 것
- 각 수정 내용을 보관하고 있기 때문에 문제가 생기면 이전으로 돌릴 수 있음 (version 기준)
- 비행기 탑승, 이륙 전
Commit 하기
추가하고 Commit 하기 (add, commit)
① 파일을 생성 (touch)
* README.md 는 project 의 설명 및 개요 등을 작성하는 MarkDown 형식의 파일(.md)
$ touch README.md
② 추가 (add)
- Local 저장소에 새로 생성되거나 수정된 파일은 commit 하기 전 반드시 add 를 해야한다
- add 를 하면 대기하고 있는 상태
- 비행기 탑승 수속, 탑승 전
$ git status # Untracked 확인
$ git add README.md
③ commit하기 (commit)
- add 를 해서 대기 중인 파일들을 Local 저장소에 올리는 것
- commit 은 보통 기능 단위로 진행
- 문제가 생기면 기능 단위로 원복 가능
- 향후 업로드할 Branch 글에 상세 설명 예정
- 비행기 탑승, 이륙 전
$ git commit -m "first commit"
상태 확인하는 방법
파일의 상태란?
Untracked → Unmodified → Modefied → Staged
|—————— $ git add ———————>>|
| <<——— $ git commit ——|
- Untracked (관리 대상 아님): 파일 생성 후 add 를 한 번도 하지 않은 상태로 Stage 에 올라와 있지 않아 최근 commit 과 비교가 불가능한 상태
- Tracked (관리 대상): git 이 관리하는 상태의 파일
- Unmodified: 최근 commit 과 비교했을 때 바뀐 내용이 없는 상태
- Modified: 최근 commit 과 비교했을 때 바뀐 내용이 있는 상태
- Staged: 파일이 수정되고 나서 Stage 공간에 올라와 있는 상태 (add 된 상태)
파일 상태 확인
$ git status
변경 사항 확인하기
$ git diff
변경 사항이 없는 경우
- 관리 대상인 파일 (commit 한 이력이 있는 파일) 이 최근 commit 한 version 과 비교했을 때 수정사항이 없는 경우
변경 사항이 있는 경우
- 관리 대상인 파일 (commit 한 이력이 있는 파일) 이 최근 commit 한 version 과 비교했을 때 수정사항이 있는 경우
- 초록색의 " +# Hello Git - Kay " 글씨가 수정 내용
- 변경 사항이 있는 경우 add 를 생략하고 commit 을 하려하면 Error 가 발생한다 (두번째 스크린 샷)
Commit 내역 조회하기
$ git log
내역
- Commit Author: 누가 commit 했는지
- Date: 언제 commit 했는지
- # commit: # 번째 commit
저장소에 무시할 파일 설정하는 방법
무시할 파일 추가하기
- 비밀번호, 개인정보 등 공개되면 안되는 내용을 원격 저장소에 올라가지 않도록 하는 파일
.gitignore 파일 사용하기
- push 전 .gitignore 파일에 버전 관리에서 제외할 파일을 추가을 미리 추가하자
# a comment - 이 줄은 무시한다.
# 확장자가 .a인 파일 무시
*.a
# 윗 줄에서 확장자가 .a인 파일은 무시하게 했지만 lib.a는 무시하지 않는다.
!lib.a
# 루트 디렉토리에 있는 TODO파일은 무시하고 subdir/TODO처럼 하위디렉토리에 있는 파일은 무시하지 않는다.
/TODO
# build/ 디렉토리에 있는 모든 파일은 무시한다.
build/
# `doc/notes.txt`같은 파일은 무시하고 doc/server/arch.txt같은 파일은 무시하지 않는다.
doc/*.txt
# `doc` 디렉토리 아래의 모든 .txt 파일을 무시한다.
doc/**/*.txt
.gitignore 파일 자동 생성기 활용하기
- 사용법
- "touch .gitignore" 를 통해 .gitignore 파일을 만들어 준다
- 위 링크에 접속 후 본인의 Project 에서 사용하는 OS, 개발환경, 기술 스택을 입력한다
- 생성 버튼을 누르면 commit 에서 제외되어야 하는 파일들에 대해 자동으로 .gitignore 의 내용을 만들어준다
- 생성된 내용을 복사해 .gitignore 파일에 추가한다
참고
Git source repository on GitHub
'개발자라면? > Git & GitHub' 카테고리의 다른 글
Git CLI 알아보기 (명령어) (0) | 2022.10.14 |
---|---|
GitHub 사용하기 (feat. git CLI) (0) | 2022.10.13 |
Git 설치와 설정 (feat. 명령어) (0) | 2022.09.24 |
Git & GitHub 의 기본 개념 (0) | 2022.09.20 |
Git & GitHub 맛보기 (0) | 2022.09.20 |