초보 개발자

2 - 1 깃 저장소 만들기 (add, commit) 본문

깃 & 깃허브

2 - 1 깃 저장소 만들기 (add, commit)

taehyeki 2021. 9. 13. 16:49

나는 git공포증이 있는 것같다... 시작하기도 전에 떨린다 ㅠㅠ git이 최종 보스같은 느낌,,,?

 

새로운 파일을 만들어보자 hello_git

mkdir hello_git

cd hello_git

 

그리고 대망의 git init !

Initialized empty Git repository ... 라는 메시지가 나타난다면 이제부터 해당 디렉토리에서 깃을 사용할 수 있게 된다.

그리고 ls -l 명령어를 입력하면 깃이 보여야 하는데 안보인다..? 설치가 안된건가?

git은 .git으로 숨김폴더로 만들어지기 때문에 -a옵션도 주어야 한다. 

ls -al 명령어를 입력하면 짜잔 ~ 잘 보일것이다.

 

버전 만들기

프로그램이나 앱을 설치하다 보면 버전이라는 말을 자주 접한다.

git 역시 처음 만들어 졌을 때 git0.0.1이라는 일련 번호가 붙은 채 배포 되었다.

그리고 어느정도 기능이 추가되면 0.0.2 0.0.3 처럼 번호가 바뀌어 다시 배포되었다.

아까 우리는 2.33.0을 다운 받은 것이다. 엄청 버전이 바뀌었구나.

 

이렇게 수정 내용이 쌓이면 새로 번호를 붙여서 이전 상태와 구별을 한다.

이렇게 번호 등을 통해 구별된 것을 버전이라고 한다.

 

깃은 훨씬 쉽게 버전을 만들고 파일에서 무엇을 변경했는지를 변경 시점마다 저장할 수 있다.

또 각 버전마다 작업했던 내용을 확인할 수 있고, 그 버전으로 되돌아갈 수도 있다.

 

스테이지와 커밋 이해하기

작업트리:  파일 수정, 저장 등의 작업을 하는 디렉터리이다. 앞서 만들었던 hello_git 디렉터리가 작업트리가 된다.

즉 우리 눈에 보이는 디렉터리가 바로 작업 트리이다.

 

스테이지: 버전으로 만들 파일이 대기하는 곳이다. 스테이징 영역이라고 부르기도 한다.

예를 들어 작업트리에서 10개의 파일을 수정했는데 4개의 파일만 버전으로 만들려면 4개의 파일만 스테이지로 넘겨주면 된다.!

 

저장소: 스테이지에서 대기하고 있던 파일들을 버전으로 만들어 저장하는 곳이다. 스테이지와 저장소는 눈에 보이지 않는다.

 

hello.txt 파일 문서를 수정하고 저장하면 그 파일은 작업트리에 있게 된다.

그리고 수정한 hello.txt 파일을 버전으로 만들고 싶을 때 스테이지에 넣습니다. 다른 파일도 수정한 뒤 버전으로 만들겠따면 스테이지에 넣어둔다.

파일 수정을 끝내고 스테이지에 다 넣었다면 버전을 만들기 위해 깃에게 커밋 명령을 내린다.

새로운 버전이 생성되면서 모두 저장소에 저장이 된다. ( 밑에서 다시한번 자세히 설명 하니 걱정마세요 !! )

 

정리를 해보면

1. 작업 트리에서 문서를 수정한다.

2. 수정한 파일중 버전으로 만들고 싶은 것을 스테이지에 저장한다.

3. 스테이지에 있던 파일을 저장소로 커밋한다.

 

이것이 깃이 버전을 만드는 순서이다.

작업 트리에서 빔으로 문서 수정하기

hello_git 디렉토리 내에서 git status를 입력하면

이런 콘솔 메시지가 출력이 되는데

On branch master : 현재 master 브랜치에 있습니다.

No commits yet :  아직 커밋한 파일이 없습니다.

nothing to commit : 현재 커밋할 파일이 없습니다.

 

vim hello.txt 를 통하여 새로운 텍스트 파일을 만들고

다시 git status를 해보면 조금 바뀐 것을 확인할 수 있다.

Untracked files란 깃에서 아직 한번도 버전 관리하지 않은 파일을 말한다.

 

지금까지 작업 트리에서 문서파일을 만들었고 그림으로 나타내면 이런 그림이다.

 

수정한 파일을 스테이징하기 - git add 

작업 트리에서 파일을 만들거나 수정했다면 스테이지에 수정한 파일을 추가한다.

이렇게 깃에게 버전 만들 준비를 하라고 알려주는 것을 스테이징 혹은 스테이지에 올린다라고 한다.

 

스테이징할 때 사용하는 명령은 git add이다.

 

다음과 같이 hello.txt를 스테이징 해주고

git status를 통해 현재 상황을 보도록 하자!

경고가 뜬 것을 확인할 수 있는데 윈도우의 줄바꿈 때문이다. 무시해도 상관없는 경고이다.

 

아까는 untracked files: 라는 문구가 change to be committed: 로 바뀌었다. 그리고 hello.txt 파일 앞에

new file: 이라는 수식어가 추가로 나타난다. 새 파일 hello.txt를 앞으로 커밋할 것이다. 라는 뜻이다!!

그림으로 나타내면 다음과 같다. 이제 버전을 만들 준비가 끝났다.!

 

스테이지에 올라온 파일 커밋하기 - git commit

파일이 스테이지에 있다면 이제 버전을 만들 수 있다. 깃에서는 버전을 만드는 것을 간단히 커밋한다라고도 말한다.

커밋할때는 그 버전에 어떤 변경 사항이 있었는지 확인을 하기 위해 메시지를 함께 기록을 해두어야한다.

1 file changed, 1 insertion(+) 라는 메시지가 나왔다.

파일 1개가 변경되었고, 파일에 1개의 내용이 추가되었다는 뜻이다. 

이것으로 인해 스테이지에 있던 hello.txt파일이 저장소에 추가된 것이다.

 

git status를 입력하보면 

버전으로 만들 파일이 없고, 작업트리도 수정사항 없이 깨끗하다라고 하고 있다.

 

버전이 제대로 만들어 졌는지 어떻게 확인할까? git log라는 명령을 사용하면 된다.

방금 커밋한 버전에 대한 설명이 나타난다. 커밋을 만든사람 (git --config -global user.name / user.email로 등록 해두었던 것) 만든 시간과 커밋 메시지(message1)가 함께 나타난다.

 

스테이지에 있던 hello.txt파일의 버전이 저장소에 만들어 졌다.

 

스테이징과 커밋 한꺼번에 처리하기 - git commit -am

commit 명령어에 -am 옵션을 사용하면 스테이지에 올리고 커밋하는 과정을 한꺼번에 처리할 수 있다.

단 이 방법은 한 번이라도 커밋한 적이 있는 파일을 다시 커밋할 때만 사용할 수 있다.

 

hello.txt를 수정하고 git commit -am "massage2"를 해보자

git log

수정한 hello.txt를 저장한 두 번째 버전의 정보가 message2라는 메시지와함께 나타난다.

 

 

'깃 & 깃허브' 카테고리의 다른 글

3 - 1 깃과 브랜치  (0) 2021.09.14
2 - 4 특정 커밋으로 되돌리기  (0) 2021.09.13
2 - 3 작업 되돌리기  (0) 2021.09.13
2 - 2 깃 버전과 상태  (0) 2021.09.13
git....github...  (0) 2021.09.13