Git commit 이해하기 (feat. 명령어)

    * 이 글은 '제주코딩베이스캠프(링크)' 의 알잘딱깔센 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

    출처: 알잘딱깔센 GitHub


    변경 사항 확인하기

    $ 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 파일 자동 생성기 활용하기

     

    gitignore.io

    Create useful .gitignore files for your project

    www.toptal.com

    • 사용법
      • "touch .gitignore" 를 통해 .gitignore 파일을 만들어 준다
      • 위 링크에 접속 후 본인의 Project 에서 사용하는 OS, 개발환경, 기술 스택을 입력한다
      • 생성 버튼을 누르면 commit 에서 제외되어야 하는 파일들에 대해 자동으로 .gitignore 의 내용을 만들어준다
      • 생성된 내용을 복사해 .gitignore 파일에 추가한다


    참고

    Pro Git Book

    Git source repository on GitHub

    버전관리시스템

    .gitignore.io

     

    '개발자라면? > 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

    댓글

    Designed by JB FACTORY