이것도 알아야 하네?

[개념 정리] Git 완벽 정리—1. git 파일 전송과 상태 본문

개발자 삶의 질 상승 지식/버전 관리

[개념 정리] Git 완벽 정리—1. git 파일 전송과 상태

아직 갈 길이 먼 사람 2021. 12. 10. 18:06
728x90

지난 시간까지 git에 대한 개념과 로컬 저장소를 생성하는 방법에 대해서 알아봤다.
해당 내용을 확인하고 싶다면
⬇⬇⬇⬇⬇⬇

 

git 완벽 정리 시리즈

> 0. 개념 및 시작하기

 


■ git flow 

기본적인 흐름은 아래와 같다.

local 환경에서 작업 시 작업하고 있는 현재의 폴더를 Working Diretory라고 하며, 자유롭게 파일을 변경할 수 있다. 만약 변경된 파일을 원격 저장소에 반영하고 싶을 시에는, git add 명령어를 통해서 변경 이력을 전송할 파일을 선택하여 Staging Area로 만들고, git commit 명령어를 통해서 전송할 상태로 Local Repository에 있는 파일을 업데이트 시켜준다. 그리고 마지막으로 git push를 해야지만 실제 원격 저장소의 파일들이 업데이트 된다. 반대로 원격 저장소에 있는 파일을 Local로 가져오고 싶을 떄, fetch 

■ git status

git status

git status을 통해서 현재 Local 폴더에 존재하는 파일의 상태를 확인할 수 있다. git 로컬 저장소에 있는 파일은 크게 관리대상 파일과 관리대상이 아닌 파일로 나눌 수 있다. 관리대상이 아닌 파일은 말 그대로 관리 대상이 아님으로 git 명령어로 상태를 파악하기 어렵다. 또한, 관리 대상의 파일은 staged, committed, modified 세 가지 상태로 나눈다. 위의 git flow에서 언급했던 명령어를 이용하여 각 상태로 변경할 수 있다.

staged commit을 하기 위한 준비 상태가 되었음을 의미한다. modified된 파일 중 실제로 snapshot으로 저장할 파일들만 staged 상태로 만든다.
committed commit된 파일을 의미하며, 로컬 저장소에 snapshot형태로 저장되었음을 의미한다.
modified commit한 이후 편집을 통해서 변경된 파일임을 의미한다. 

 

1) 변경사항 커밋할 준비하기 

git add [파일/디렉토리 이름]

명령은 파일 또는 디렉토리의 경로를 아규먼트로 받으며, modified 파일 중 commit할 파일 및 디렉토리를 선정하여 Staging Area로 보내는 명령어이다. 즉, 파일을 변경하더라도 git add을 하지 않으면 실제로 로컬 저장소에 반영되지 않는다. 그 파일은 단순히 Modified 상태로 남아 있을 뿐이다. 즉, commit되는 파일은 commit 시 파일 상태가 아니라 Staging Area에 존재하는 파일이다. git add 뒤에 디렉토리가 오면 해당 디렉토리 아래에 있는 모든 파일들이 재귀적으로 추가된다.

 

2) 변경사항 커밋하기

git commit

변경사항 커밋하기 수정한 것을 커밋하기 위해 Staging Area에 파일을 정리했다. 커밋하기 전에 git status 명령으로 commit하기 원하는 모든 파일이 staged 상태인지 확인한 후에 git commit 을 실행하여 커밋한다.

git commit 명령을 실행할 때 -a 옵션을 추가하면 1) 과정을 생략하고 commit을 진행할 수 있다. 다만 관리대상의 파일 모두 자동으로 Staging Area에 넣는다. 즉 선별이 필요하지 않은 경우 사용한다.

$ git commit -a

만약 commit이후 파일을 변경하면 modified로 변경된다. 변경사항을 반영하고 싶을 경우 이 수정한 파일을 staged 상태로 만들고, staged 상태의 파일을 커밋해야한다. 이런 라이프사이클을 계속 반복한다.

728x90
Comments