티스토리 뷰
오늘은 git add와 git commit에 대해 알아볼까 합니다 :)
앞서 저희는 git init을 함으로써 이 프로젝트에 대해 버전관리를 시작하겠다고 컴퓨터에 알려줬었는데요. 이제 버전을 만들고 그 버전에 git을 add 하고 commit 함으로써 변경사항을 관리해 나가는 방법을 배울 겁니다.
여기서 버전이란, 보통은 의미있는 변화를 의미 합니다. (작업이 완결된 상태)
해당 버전이 자신이 만든것이라고 다른사람에게 알려주기 위해 git의 환경설정을 할 수 있는데, 이 부분은 선택사항 입니다.
하단의 명렁어 끝에 자신의 이름과 이메일(빨간색 글자)을 입력하면
내가 작성한 버전정보에는 자신의 이름과 이메일이 포함되게 됩니다.
따라서, 다른사람이 봤을때 누가 작업했는지 알 수 있습니다.
git config --global user.name 이름
git config --global user.email 이메일
우선 터미널에 git status라 입력을 해보면 'Untracked files: ~' 라는 문구를 볼 수 있습니다.
말 그대로 추적되고 있지 않다는 건데요. 저희가 해당 파일을 관리 하고 추적할것이다! 라고 알려주기 위해 git add를 사용해야 합니다.
해당 파일(project1.txt)을 git add 해준 후에 git status를 다시 입력해 보면, 커밋 할 새로운 파일이 추가 되어 있는 것 을 볼 수 있습니다. git add 가 되지 않은 파일은 commit을 해도 변경사항이 저장되지 않습니다.
이제 commit을 해볼건데요. commit을 하기전에 변경사항을 만들기 위해 텍스트 파일을 열어,내용을 변경해줍니다.
vim project1.txt를 통해 텍스트 파일 편집기를 연 후, i 키를 눌러 insert모드에 진입합니다.
이후 update1 이라고 내용을 변경하였습니다.
이렇게 파일 내용을 변경 한 후 git status를 다시 입력해보면 빨간색 글씨 modified: project1.txt 를 확인 할 수 있습니다. 이는 변경사항이 있는데, git add를 해주지 않아서 빨간색 글씨로 사용자에게 알려주는 겁니다. 파일이 변경된 후 git add를 해줘야만 commit할때 변경사항이 반영되기 때문에, git add를 다시 해준 후 git status를 입력해보면 modified: project1.txt가 초록색으로 변해 있는것을 확인하실 수 있을 겁니다. :)
이렇게 commit 전에 매번 add를 해주는 이유는 선택적으로 파일을 커밋 할 수 있기 때문입니다.
git add를 하지 않은 파일은 커밋에 반영되지 않는다는 이야기죠.
이제 git add를 해줬으니 commit할 일만 남았군요!
git commit을 터미널에 입력하면 커밋메시지를 작성할수 있는 창이 뜹니다. 텍스트 에디터 사용 방법과 똑같이 i를 눌러 insert모드로 진입 한 후 커밋 메시지를 작성하면 됩니다.
그럼 git이 잘 commit 되었나 확인해 볼까요?
확인을 위해서 git log를 입력해 봅시다!
그럼 아래와 같이 커밋한 날짜와 시간 그리고 커밋 메시지를 볼 수 있습니다.
조금 더 상세하게 보기 위해 git log -p를 입력해보면 파일의 변경내용을 확인해 볼 수 있습니다.
몇몇 분들은 '매번 변경사항이 있으면 git add를 해줘야 하나요?' 라고 물어 보실 수 있으실텐데요. 아닙니다!
commit 할때 git commit 대신 git commit -a를 사용하면 커밋 전 add하는 과정을 한번에 할 수 있습니다.
(단! 여기서 주의할께 한번도 add를 해주지 않은 파일은 자동으로 add 되지 않기 때문에 처음에는 수동으로 add를 해줘야 합니다.)
또 별도의 에디터를 띄우지 않고 한번에 커밋메시지를 작성 할 수도 있습니다.
이렇게요 git commit -m "커밋메시지"
add 와 commit을 한번에 하고싶다! 하실때는 git commit -am "커밋메시지" 로 하시면 됩니다.
이것으로 git add와 git commit에대한 정리를 마치겠습니다 :)
'Git 정리' 카테고리의 다른 글
Git 정리(5) - stash (0) | 2020.02.18 |
---|---|
Git 정리(4) - Merge (0) | 2020.02.18 |
Git 정리(3) - branch (0) | 2020.02.17 |
Git 원리소개(1) (0) | 2020.02.08 |
Git 정리(1) - git init에 대해 알아보자! (0) | 2020.02.03 |