Git

git add, git commit이란? 쓰는이유/사용법

hihiha2 2023. 1. 10. 00:08

git add git add .
git add 파일명
"commit의 전단계"
commit을 하고자 하는 파일들은 commit하기전에 add를 해줘야 commit할 수 있다.
(untracked ➡️ tracked 파일로 변경)

이렇게 굳이 commit하기 전에 add를 나눠서 하는 이유는 버전관리의 편의성 때문이다.
git commit git commit
git commit -m "커밋메시지"
"git에 저장하는단계"

commit을 해주면 commit을 한 곳으로 언제든지 다시 돌아올수있기때문에 코드의 추가, 삭제가 자유로워진다.

 

git add


1. 특정 파일만 add하기

git add 파일명

 

git add tiger.yaml을 해줌으로써 add를 하고 git status를 통해 상태를 확인하면, untracked file(추적하지 않는 파일)에서 tiger.yaml이 사라지고 커밋할 변경사항으로 이동한 것을 볼 수 있다.

 


untracked files(추적하지 않는 파일): 새로 추가된 파일 /직 add를 하지 않아서 git의 관리대상에 들어가지 않는 파일들

 

⬇️ add를 해주면

 

changes to be commited(커밋할 변경사항)의 새파일로 변경된다.

-- 의미하는 것: "이제부터는 git의 관리대상이야!"

"git에 저장하기 전단계야!"

 


-git add 사용이유:
git에 내가 작업한 파일이나 폴더를 저장할때는 add-commit의 단계를 거친다.
add는 commit하기 전의 단계이다. add를 해주면 그 파일,폴더는 commit의 대상으로 들어간다. 
굳이 따로따로 add를 거치는 이유는 버전관리때문이다. 현재 작업중인것들을 각각 나눠서 따로따로 commit을 해주고 올리고 싶을때 사용한다. add를 해줘야만 commit의 대상으로 들어가기 때문에 현재 작업중인 것들중에서 같은버전으로 묶고 싶은것들을 다 add해준다음, commit을 하고, 다른 버전으로 해주고 싶은 것들을 나눠서 add-commit의 과정을 거침으로서 버전을 분리 할 수 있는 것이다.
하지만 일반적으로는 굳이 이렇게 나눠서 작업하지는 않고 git add .을 통해서 한꺼번에 add를 해준다.

 

2. 전체 한꺼번에 add하기

git add .

 

굳이 버전을 나눠서 할 필요가 없을때는 add뒤에 띄어쓰기 + 마침표(.)를 사용함으로써 한꺼번에 add를 해줄 수 있다. 일반적으로 사용하는 방법이다.

 

 

3. add 되돌리기

git rm --cached 파일명

 

이미 add를 했더라도 rm--cached 파일명을 통해서 add를 안한 상태로 돌아갈 수 있다.

git rm --cached tigers.yaml 의 명령어를 실행한 뒤, 커밋의 대상으로 들어갔던  tigers.yaml 이 다시 추적하지 않는 파일(untracked files)로 돌아간 것을 볼 수 있다.

 

 

 

git commit


1. git commit

vim모드로 들어간다. 이러한 방법은 조작법이 조금 복잡하기 때문에 -m을 사용하는 것이 더 편리하기 때문에 생략.

 

2. git commit -m "커밋메시지"

FIRST COMMIT이라는 커밋메시지로 git에 commit을 해주었다.

 

git commit 사용이유:
commit을 함으로써 git에 저장을 한다. 또한 git에 저장을 함으로써 코드를 삭제, 변경하더라도 다시 이전의 상태로 되돌릴수가 있게 된다. 

 

 

git add & commit 한꺼번에 하기


git commit -am "(커밋메시지)"

⚠️ 새로 추가된(untracked) 파일이 없을 때 한정

 

새로 추가된 파일이 있을 때는 한꺼번에 할 수 없고 따로 add를 해준뒤에 commit을 해줘야한다.

 

 

 

git log로 commit 확인하기


git log

git log를 통해서 지난 commit내용들을 모두 확인할 수 있다.

git log에서는 커밋된 순서, 커밋메시지, 만든이 그리고 해시정보를 얻을 수 있다.

여기서 얻은 해시정보를 통해서 commit된 상태를 시간여행하듯이 수정할 수 있다.(해시는 commit이라는 글자옆에있는 영문+문자값)

 

 

 

 

 

git add, commit 실습


1. lions.yaml삭제

2.tigers.yaml수정 [파일명이 파란색으로 나타나며, modified의 약자인 M이 파일명 옆에 적힌다]

3.leopards.yaml 새파일 추가 [파일명이 초록색으로 나타나며, 아직 git의 관리대상이 아니기때문에(add해주지 않았기때문에) Untracked file의 약자인 U가 파일명 옆에 적힌다)

 

git status를 통해서 상태를 확인해보면, 수정, 삭제, 추가 모두 변경된 사항이 나타난다.

4. git add .를 통해서 모든 파일들을 add해준다

5. git commit -m "Replace Lions with Leopards" 

커밋메시지와 함께 커밋한다.

 

6. git log로 확인해보면 각각 다른 커밋메시지를 가진 2개의 commit을 확인해볼수 있다.

소스트리를 통해서 GUI방식으로 확인해보면 조금 더 직관적으로 이해하기 쉽다.

아래와 같이 2개의 다른 커밋메시지를 가진 commit이 발생한것을 알 수 있다.