git명령어 중 add라는 것을 설명하려한다. 전반적인 git repository에 저장되는 방법을 설명했을 때, stage area로 작업물을 넘겨줄 때 쓰이는 명령어 이다. 여기선 GUI방식과 Command방식 둘다 VSCode에서 예시로 보여주며 진행한다.
1. command 방식
우선 a.txt라는 파일을 project파일에 만들었다는 가정하에 vscode상태는 다음과 같다.
git status 상태
한국어로 친절히 "git add 파일"을 사용하라는 문구가 뜬다. 따라서 우리가 working spot에서 작업을 해도 git은 stage에 올라오지 않는 이상 파일이 변경됬는지 안됬는지 확인이 불가능하다. 따라서 그대로 옮겨 적으면 되지만 여기서 꿀팁은 변경된 파일이 많을 경우 파일명 대신 * 을 입력하게 되면 변경된 파일 전부를 stage에 올리게 된다.
2. GUI방식
설명 없이 순차적으로 나열하면 초기 상태는 다음과 같다.
여기서 stage에 올리는 방식이 GUI기 때문에 조금 다른데 a.txt에 마우스를 가져다 두면 "+"모양의 버튼이 생긴다. 그걸 누르면 자동적으로 stage에 올라가게 된다.
추가하게 되면 다음과 같은 상태가 됬다면 변경된 파일을 stage에 올리는 것을 성공한 것이다.
대학교 과제나 제출기한이 있는 Task진행 시 최종본. pptx / 최종본(찐). pptx / 최종본(찐 찐 찐). pptx.... 이처럼 관리를 해본 경험이 있다면 유용하게 관리를 할 수 있도록 도와주는 Tool이다.
지금은 크게 3가지 역할을 위해 사용한다.
버젼관리
백업
협업
이 중 가장 중요한 건 버전 관리이다.
! 이 글은 버전 관리에 있어서 깃이 어떻게 작동하는 지에 대한 전체적인 흐름을 설명하기 위해 작성합니다.
버전관리에 있어서 제작자 입장에서는 업데이트와 업데이트 후 발생하는 버그 / 에러를 위해 이전 버젼으로 돌아가는 상태가 빈번히 일어납니다. 또한, 해결했으면 다시 마지막 업데이트 지점까지 돌아가야하는데 이것을 손쉽게 도와줄 Tool이 바로 Git입니다.
그렇다면 버젼 관리를 위해 한 폴더에 대한 원본부터 수정본까지 전부 기억하며 순서 또한 기억돼야 한다는 점입니다.
직관적으로 설명하게 되면 다음과 같이 개발을 위해 프로젝트를 시작하게 되면 우리는 프로젝트 폴더를 만들게 됩니다.
여기서 특별한 조치 없이 파일을 저장하게 된다면 같은 이름으로 저장할 수 없기 때문에 근본적인 문제였던 "최종본. pptx / 최종본(찐). pptx / 최종본(찐 찐 찐). pptx...."현상을 보게 됩니다.
Git은 git init명령어를 통해 여기에 숨겨둔 폴더. git폴더를 생성하며 Project폴더 내에 공간을 다음과 같이 분리하게 됩니다.
Working directory, Repository, Stage area 총 3개로 섹션이 나뉘면서 관리를 할 수 있는 상태가 됩니다.
Working directory : 코드를 수정하며 작업하는 실질적 공간입니다.
Repository : 작성 완료된 코드를 컴퓨터 / 서버에 저장한 공간입니다.
Stage area : Working directory와 Repository 사이에 서로에게 옮겨 보낼 수 있는 또 다른 공간입니다.
이제 작업을 하고 나서 어떻게 저장하는지에 따른 과정을 살펴보면 우선 내용이 "1"인 test.txt 파일을 만들어 테스트용으로 실험했다고 가정을 하면 다음과 같습니다.
여기서 바로 Repository에 저장하는 것이 아닌 Stage area에서 내가 수정하거나 만든 파일에 대해 Tracking을 하고 정말 저장할 준비가 되면 그때서야 저장할 수 있도록 되어있습니다. 따라서 Stage에 먼저 올려야 하는데 이때 쓰는 명령어가 git add입니다.
git add 후 상황
*여기서 주의해야 할 점은 git add로 test.txt 파일을 stage에 올렸다해서 working directory에 있는 test.txt 파일이 사라지는 것은 아닙니다.
드디어 저장을 위해 stage에 올라와있는 파일들을 Repository로 옮기는 명령어만 실행하면 됩니다. 하지만 여기서 살짝 디테일을 요구하게 됩니다. 우선 Repository로 옮기는 일을 Commit(이하 "커밋")이라 부르는데, 이 커밋을 위해선 커밋 메시지를 적어야 합니다.
그 이유는 이 파일이 어떤 수정 혹인 어떤 목적으로 만들어졌는지 다른 사람이 파일을 읽기 전에 확인할 수 있도록 도와줍니다. 따라서 명령어 자체는 git commit이지만, 디테일을 첨가해서 꼭 작성해야 하기 때문에 git commit -m "하고 싶은 말"로 실행하면 됩니다. 다음과 같이 실행을 하게 되면 다음과 같이 나타낼 수 있습니다.