Git 공부

Git Add & Commit

daisy0461 2024. 4. 19. 01:00

Commit이란 

간단하게 Git Repo에 있는 체크포인트 중 하나라고 생각하면 된다.

보통 1개의 Git Repo에는 여러개의 Commit들이 있고

이 Commit은 이전 명령으로 돌아갈 수 있는 방법과 Commit을 되돌리는 방법, 이전 Commit에서 엿보는 방법 등이 있다.

 

Commit하는 것이 파일을 저장하는 것과 같은 개념은 아니다. 

Commit은 .git이라는 파일을 업데이트하는 것이다.

해당 작업은 파일을 저장하는 것 이상으로 다양한 작업을 실행한다.

 

Commit 전에 여러개의 파일을 저장, 수정 등 변경사항을 만들고 저장을 한 이후에 이 모든 작업들을 묶어서 Commit한다.

Commit이라는 작업을 실행하면 이전 체크포인트에서 다음 체크포인트를 만들며 이전에 있던 체크포인트도 유지된다.

 

그리고 선택적으로 Commit이 가능하다.

예시로 내가 총 7개의 파일에 대해서 변경사항이 생겼다.

1개 삭제, 2개 수정, 4개 생성했다라고 가정하면 7개를 한번에 Commit하는 대신에 그룹화해서 Commit 호출이 가능하다.

(1개 삭제, 2개 수정) Commit -> (4개 생성) Commit할 수 있다.

 

Git commit workflow

  1. 작업 진행 - 새 파일 만들기, 편집, 삭제 등

touch outline.txt를 통해 txt파일을 만들고 해당 파일을 편집했다.

git status를 실행하니 다음과 같이 해당 공간(Working Directory = GitTest) 변경 사항이 나타난 것을 확인할 수 있다.

하지만 Untracked라고 추적하고 있지 않다고 나타난다. 여기까지가 작업 진행이다.

 

   2. 변경사항 Add

Stagint Area(Commit전 변경사항을 등록하는 곳)에 git Add를 통해 등록을 한다.

git add 명령어는 아래에서 더 자세하게 설명한다.

 

위에서 선택적으로 Commit이 가능하다는 예시를 보였는데 이 add로 가능한 작업이다.

위와 동일하게 1개 삭제, 2개 수정, 4개 생성했다라고 가정하면

(1개 삭제, 2개 수정) add -> Staging Area에 올라감 -> Commit 시 3개 파일만 Repo에 올라가며 .git 업데이트

-> (4개 생성) add -> Staging Area에 올라감 -> Commit시 4개 파일이 추가로 Repo에 올라가며 .git 업데이트

 

git add 명령어

commit하기 위해 변경사항들을 Stage에 올리기 위해서 git add명령어를 사용해야한다. 그 이후에 commit한다.

ls로 파일이 outline, outline2가 존재하는 것을 확인 가능하다.

git status로 확인해보니 두 파일 Untraked files로 나타난다.

여기서 git add outline을 한 이후 git status를 다시 실행해보면

Changes to be comiited라는 항목이 새로 나오며 outline.txt파일이 stage에 올라간 것을 확인 가능하다.

이후 남은 파일도 git add를 해주면 Untracke file을 나타내는 것이 사라진 것을 볼 수 있다.

이제 git이 두 파일을 추적한다는 의미이고 Commit할 때마다 해당 두 파일은 포함이 될 것이다.

이렇게 2개의 파일을 git add해주면 2개의 파일을 그룹화해서 commit가능하다.

 

두개 이상의 파일을 add할 때는 띄워쓰기로 나눠주면 된다.

 

모든 변경사항을 stage에 넣어주는 방법은 git add .이 있다.

두 파일을 변경한 이후에 git add .을 하니 두 파일 모두 stage에 올라간 것을 확인할 수 있다.

두개든 100개든 모두 가능하다. 

하지만 서로 다른 기능들이 한번에 commit될 준비가 되지 않았다면 따로 add를 해줘서 commit하는 것이 낫다.

 

git commit 명령어

Stage에 있는 변경사항들을 Commit할 때 사용하는 명령어이다.

git에 commit할 때 commit message라는 것이 있다.

이 commit message는 커밋할 때마다 변경사항을 요약하거나 묘사하는 메세지를 의미한다.

예시로 위처럼 outline, ouline2를 commit한다면 message를 "work outline"으로 하는 식이다.

message를 입력하는 명령어는 git commit -m "Message"이고 그냥 commit을 하는 명령어는 git commit이다.

위가 message를 설정하고 commit을 하는 예시이다.

commit이후 git status를 보면 정상적으로 commit이 완료가 되어 이전과 다른 값이 나옴을 살펴볼 수 있고

working tree clean 디렉토리 내에 있는 폴더에서 변경사항을 모두 추적하고 있고 .git으로 업데이트 완료했다는 것이다.