-
Git의 기초적인 사용법 (stage와 commit)Git&GitHub/Git 사용방법 2022. 5. 18. 11:41728x90
깃의 기초적인 사용법에 대해서 말씀드립니다.
차근차근 따라오시면 될 것 같습니다.
먼저 Git Bash를 여시고 디렉터리를 하나 만들고 그 디렉터리로 이동하겠습니다.
$ mkdir hello
$ cd hello
빨간 줄을 쳐 놓았듯이 지금은 아무것도 발견할 수 없습니다.
아무것도 만들지 않았기 때문이죠
이 디렉터리에 저장소를 만들기 위해서 다음과 같은 명령어를 입력합니다.
$ git init
이렇게 나오면 해당 디렉터리에서 깃을 사용할 수 있습니다.
$ ls -al 명령어를 사용해서 살펴보시면 다음과 같이 .git이 생성된 것을 볼 수 있습니다.
**윈도우 탐색기로 찾는 경우에는 해당폴더는 숨겨져있기 때문에 숨긴항목 보기를 체크하고 보시면 됩니다.
<버전 만들기>
깃에서 버전이란 문서를 수정하고 저장할 때 마다 생기는 것이라고 생각하시면 됩니다.
우리는 보통 문서를 저장할 때 초안이 있고 수정본이 생기면
다른 이름으로 저장하는 방식으로
파일을 여러개 만들어서 보관함으로써 버전을 만듭니다.
하지만 깃은 그보다 훨씬 간편하고 만든 날짜와 시간을 한눈에 볼 수 있도록 해줍니다.
원래파일이름은 그대로 유지하면서
파일에서 무엇을 변경했는지 변경시점마다 코멘트를 달아서 저장할 수 있습니다.
또, 각 버전마다 작업내용을 확인 할 수 있고, 그 버전으로 되돌아 갈수도 있습니다.
1)작업트리
이것을 위해서는 이해해야 할 것이 있는데 stage와 commit입니다.
일단 우리는 파일 수정, 저장 등의 작업을 하는 디렉터리인 작업트리에서 작업합니다.
우리 눈에 보이는 디렉터리가 작업트리라고 할 수 있습니다.
2)스테이지
stage는 버전으로 만들 파일이 대기하는 곳입니다. staging area라고 부르기도 합니다.
우리가 10개 파일을 수정햇는데 4개 파일만 버전으로 만들려면
4개만 스테이지로 넘겨주면 됩니다.
3)저장소
저장소(repository)는 스테이지에서 대기하고 있던 파일들을
버전으로 만들어 저장하는 곳입니다.
저장소와 레포지토리라는 용어가 둘다 사용되지만,
저는 레포지토리라고 부르도록 하겠습니다.
스테이지와 레포지토리는 눈에 보이는 곳은 아닙니다.
제가 자세히 설명드리기는 어렵지만,
간단히 말하자면 버전을 관리하는데는 두번의 과정을 거치는데,
이것이 stage와 commit입니다.
작업트리에서 작업한 파일을 레포지토리에 올리고 싶다면
먼저 stage로 올려서 대기상태로 만들어놓은 다음에
commit하여 레포지토리에 올려서 버전을 만드는 것입니다.
지금은 이해가 되지 않을 수 있지만, 하다보면 이해가 됩니다. 저도 그랬거든요
작업 트리에서 문서를 직접 수정해보겠습니다!
일단 아까 만든 hello 디렉터리까지 이동하여 다음과 같이 입력해봅니다
$ git status
이렇게 나옵니다.
on branch master : 마스터 브랜치에 있다는 뜻.
브랜치의 개념은 나중에 설명이 나올 것입니다.
no commits yet : 아직 커밋한 파일이 없다는 뜻.
nothing to commit : 현재 커밋할 파일이 없다는 뜻
<스테이징하기>
hello 디렉터리에 새로운 파일을 만들어 볼게요
$ vi hello.txt
빔화면이 나타나면 i나 a키를 누르고 숫자 1을 입력한 뒤 esc를 누르고 :wq를 입력한뒤 엔터를 눌러 빠져나오겠습니다.
빠져나온 뒤에 $ ls -al을 입력해서 디렉터리의 내용물을 보면 방금 만든 hello.txt 파일이 안에 있을 겁니다.
다시 한번 깃의 상태를 확인해보도록 할까요?
$ git status
다음과 같이 뜨는데요 hello.txt가 untracked files랍니다.
깃에서는 한번도 버전관리하지 않은 즉, 새로운 파일을 untracked files라고 합니다.
이렇게 작업트리에서 파일을 만들거나 수정했다면
이제는 스테이지에 이 파일을 추가할 차례입니다
이렇게 깃에게 버전 만들 준비를 하라고 알리는 것을
스테이징 또는 스테이지에 올린다라고 표현합니다.
깃에서 스테이징하는 명령은 git add입니다. 한번써보도록하죠
$ git add hello.txt
사진과 같이 뜰겁니다. warning이 뜨긴 하는데
이건 사용자보고 뭘 하라는 소리는 아니고
윈도우와 리눅스의 개행문자가 다른데, 그것을 알아서 변환했다는 소리입니다.
오류가 아니니 걱정하지 않으셔도 됩니다.
다시 깃의 상태를 확인해보죠
$ git status
빨간 줄 쳐진데를 보시면 아까랑 지금이랑 비교해보면 바뀐게 보이실겁니다.
changes to be committed는 이제 커밋할 준비가 되었다는 뜻입니다.
이렇게 스테이징은 종료입니다.
<커밋하기>
스테이징까지 마쳤다면 이제 깃에서 버전을 만들 수 있습니다.
깃에서 버전을 만드는 것을 간단히 커밋한다 라고 얘기합니다.
커밋할 때는 그 버전에 어떤 변경사항이 있었는지 확인하기 위해서
메시지를 함께 기록해두어야 합니다.
깃에서 커밋하는 명령어는 git commit 입니다.
한칸 띄운 후에 -m 옵션을 붙이면 커밋과 함께 저장할 메시지를 띄울 수 있습니다.
입력해보도록 하죠
$ git commit -m "message 1"
커밋결과 메시지를 보면 한개의 파일이 변경되었고
파일에 1개 내용이 추가되었다고 나옵니다.
이렇게 하면 스테이지에 있던 hello.txt파일이 레포지토리에 추가 된것입니다.
깃 상태는 어떻게 변했을까요?
$ git status
다음과 같이 커밋할것도 없고(nothing to commit)
작업트리도 수정사항없이 깔끔하다(working tree clean)고 나옵니다.
버전이 제대로 만들어졌는지 확인하려면 다음의 명령어를 사용합니다
$ git log
방금 커밋한 버전에 대해 설명이 나옵니다.
커밋한 사람과 만든 시간, 그리고 메시지가 출력됩니다.
수정한 파일을 커밋하면 이렇게 수정과 관련된 여러 정보들을
함께 저장할 수 있고 필요할 때 확인할 수 있습니다.
이렇게 스테이지에 있던 hello.txt 파일의 버전이 저장소에 만들어졌습니다.
*** 만약 위와 같이 커밋 결과 창이 뜨지 않고 다른 창이 뜬다면
깃 환경 설정을 하지 않아서 그럴것입니다.
그때는 다음과 같이 두개를 입력한 뒤에 커밋을 다시 시도하면 잘 될것입니다.
$ git config --global user.name "본인이름"
$ git config --global user.email "본인 메일주소"
이번에는 스테이징과 커밋 한번에 처리하는 방법에 대해서 알아보겠습니다.
commit 명령에 -am 옵션을 사용하면 되는데요..
단, 이명령은 한번이라도 커밋한적 있는 파일을 수정하거나 하여
다시 커밋할 때만 사용할 수 있습니다.
일단 직접해보도록 합시다
1. 빔에서 hello.txt 파일을 엽니다.
$ vi hello.txt
2. 적당히 아래와 같이 2라고 써주고 :wq 하여 저장후 종료합니다.
3. 아까 말한 명령어를 다음과 같이 입력해봅시다.
$ git commit -am "message 2"
4. 방금 커밋한 버전에 어떤 정보가 있는지 확인해봅시다.
$ git log
그러면 다음과 같이 확인 가능합니다
728x90'Git&GitHub > Git 사용방법' 카테고리의 다른 글
Git 작업 되돌리기 (0) 2022.05.18 Git 커밋한 내용 수정하기, 각 단계별 상태 알아보기 (0) 2022.05.18 Git 으로 리눅스 명령어 연습 (0) 2022.05.18 Git 명령어 모음 (0) 2022.05.18