[Git] Git commit & Stage
💡 해당 내용은, 생활코딩 영상을 기반으로 작성하였습니다.
Version 이란?
- 어떠한 단위(작업)이 있으면 그 단위가 완결 된 상태
Version 관련 기초 명령어
💫 git status
- 현재 저장소의 상태가 어떤지 살펴보기 위한 명령어
💫 git config —global user.name 닉네임
💫 git config —global user.email 이메일
- 내가 만든 버전임을 표시할 수 있도록 세팅하는 명령어
- 딱 한번만 해놓으면 되는 작업임
💫 git commit
- 현재 버전의 메시지 작성 -> 이 파일들이 왜 변경되었는지 이유를 담는 메세지
- 세팅 후
git commit
명령어를 치면 vim이 실행되고,git status
했을때 나오는 내용이 보임 i
를 입력해 입력모드 설정 후 맨 위에 1을 입력 후 esc를 누른 뒤:wq
를 통해 저장 후 종료- 터미널 창을 확인해보면 버전이 생성된 것을 확인할 수 있음
💫 git log
- 버전 확인 명령어로서 버전 작성자, 작성일, 버전을 확인할 수 있음
추가 버전 생성
- 파일 내용 수정하기
vim f1.txt
>i
> 내용 수정 > esc >:wq
- 깃 상태 확인하기
git status
- 빨간 글씨로 modified: f1.txt 확인됨
- 수정 파일을 git에게 버전관리 해달라고 add 해줘야됨
git add f1.txt
- 초록 글씨로 modified 표시됨
- git add 명령어 사용하는 곳 *최초 추적: 그 파일에 관한 버전 관리를 명령할 때에도 git add 명령어 사용 *버전 생성: 그 파일이 수정되고 버전을 생성할때도 git add 명령어 사용
git commit
i
눌러 입력모드 변경 > 맨 위 버전메세지에 2라고 입력 > esc >:wq
눌러 저장후 종료git commit -m "커밋메시지"
: vim 에디터 안거치고 바로 커밋메시지 작성하는
git log
로 로그 확인해보면 버전 2가 생성된 것 확인가능- 확인 후 깃로그 종료할 때는 q를 누르면됨
- commit은 각각의 고유한 아이디를 가지고 있음
새 파일 만들고 버전 관리하기
cp f1.txt t2.txt
- f1.txt 와 똑같은 새로운 파일(f2.txt) 생성
- 생성 후
ls -al
로 생성되었는지 리스트 확인
git status
- 상태를 확인해보면 Untracked files 로 버전 관리 되어지고 있지 않는다고 나옴
git add f2.txt
- Git 버전 관리 시작
git status
- new file: f2.txt 라는 메시지로 버전을 관리하고자 하는 파일이 생겨났다는 것 확인 가능
git commit
- 새로운 파일을 커밋시켜주어야 하기 때문에
git commit
>i
> 3 입력(커밋메시지) > esc >:wq
- 새로운 파일을 커밋시켜주어야 하기 때문에
git log
로 버전이 잘 생성되었는지 확인
두개의 파일 수정 후 버전 관리하기
vim f1.txt & vim f2.txt
- 파일 내용 변경
cat f1.txt & cat f2.txt
- 파일 내용 변경 후 vim 안거치고 터미널에서 파일 내용 바로 확인
git status
- 상태 확인해보면 빨간글씨로 modified: 두개 파일 확인 가능
git add f1.txt
git status
- add한 파일만 커밋될 것임을 알 수 있음
git commit
>git log
- 커밋 후 로그를 확인해보면 새로운 버전 생성된 것 확인 가능
git status
- add를 하지 않은 f2.txt만 남아있는 것 확인 가능함
Stage Area (커밋 대기 상태)
git add
가 필요한 이유
👉 stage(커밋 대기 상태)에 올라가도록 하는 명령어
- Commit 한개는 하나의 작업을 담고 있는 것이 이상적이지만 커밋의 시기를 놓쳤을 때 여러 작업을 담고 있는 경우가 있음
- 이러한 경우에 add라는 과정을 통해 커밋하고자 하는 파일만 커밋하게 할 수 있음
- 즉, 작업 내용 중에서 커밋을 할 파일만 추려서 선택적으로 커밋하도록 커밋 대기 상태로 만듬
👉 git commit
- add를 통해 커밋 대기 상태가 된 파일들만 커밋시켜 버전에 포함시키는 명령어
- Stage 위에 있는 파일들이 버전에 포함시키는 것
Stage & Repository
👉 Stage
- 커밋 대기 상태의 파일들이 가는 곳
👉 Repository
- 커밋 된 결과가 저장되는 곳
Leave a comment