Git - 기본

Doum Kim·2020년 8월 30일
1

git

목록 보기
1/1
post-thumbnail

git

자료구조와 알고리즘 관련 서적을 대여하러 도서관을 갔는데 생활코딩 깃 강의 영상을 책으로 만든

지옥에서 온 문서 관리자 깃 & 깃허브 입문을 발견하고 냉큼 빌려왔다.

동영상 강의랑 내용은 같겠지만 뭐 난 책으로 보는게 좀 더 편한거 같아서 👾

무튼 잡소리는 집어치우고 내가 이 포스팅을 쓰는 이유는 이제는 제발 깃에 대해서 한번 정리를 하고

넘어가야하지 않을까? 라는 생각이 들었기 때문이다.

내가 할 줄 아는건 정말 기본 중에 기본...ㅎ pull -> 작업 -> add -> commit -> push 끝 🤣 😂

물론 저거만 알아도 어느정도 사용은 가능한데 이게 사람이 아는게 적어서 생기는 불편한 점이 한 두가지가 아니다.

예를들어서 add를 취소한다거나 commit을 취소 또는 브랜치를 나눠서 작업을 하고 병합을 하는 등의

예외적인 상황이 항상 등장하기 때문이다.

이제 이런 상황에서도 당황하지 않고 시간을 낭비하고 싶지도 않다.

자, 그럼 이제 간단하게 깃이 무엇인지 어떻게 사용하는지 간단하게 정리를 해보자.

생활 코딩 이고잉님이 항상 하시는 멘트 "준비됐나요~? 출발합시다." 🤣

그럼 깃이 뭐야?

나는 누가 만들었고 언제 만들었는지에 대해서는 지금은 관심이 없어!!

  1. 버전 관리

  2. 백업하기

  3. 협업하기

관리할 파일을 추가하고 변경사항을 기록하고 그러한 파일들을 깃허브, 빗버킷 같은 원격 저장소에 저장을 하고 원격 저장소를 기반으로 팀원들과 협업을 할 수 있다.

책에서는 위의 순서를 따라 공부해야 전체적으로 이해를 할 수 있다고 한다.

시작하기

git status 명령을 사용하면 작업 트리에 있는 파일은 크게 tracked와 untracked 상태로 나뉜다.

tracked file : 깃에서 수정 여부를 계속 추적하고 있는 파일

untracked file : 한번도 깃에서 버전 관리를 하지 않은 파일


tracked 상태에서는 unmodified, modified, staged 상태로 나뉜다.

unmodified : 아무런 변경 상항이 없는 파일의 상태

modified : 변경이 된 파일의 상태이고 스테이지에 올라가지 않은 상태

staged : unmodified 상태의 파일을 add, commit 하여 stage에 올린 상태

여기까지 기본적인 버전관리의 컨셉이다. 하지만 내가 알고 싶은 건 이게 끝이 아니지 🤔 🤔

아이고 커밋 메시지를 잘못 남겼다니

이럴 때는 당황하지 않고 --ammend를 사용하자. 가장 최근 커밋을 수정할 수 있다.

git commit --ammend

명령어를 입력하면 vim 에디터가 실행되고 메시지를 수정하면 된다.

이번 작업은 틀렸어 😟

code1.txt 파일을 커밋 1 상태에서 업데이트를 하는 작업을 진행하던 중

다시 커밋1 상태로 돌려야 할 경우가 발생할 수 있다. 아래와 같은 명령어를 입력하면 돌아간다.

git checkout -- code1.txt

또는

git restore code1.txt

안돼. Unstaged 로 돌아가. 😑

스테이지에 올라 간 수정된 파일을 unstage 하는 방법이 필요하다면 아래와 같이 사용하면 된다.

git reset HEAD code1.txt

또는

git restore --staged code1.txt

마지막 커밋을 취소해보자

만약 커밋까지 완료를 했는데 취소를 해버리고 싶다면 어떻게 해야할까?

git reset HEAD^

명령을 사용하면 된다. 여기서 reset의 option 3가지를 알 필요가 있다.

명령설명
--soft HEAD^최근 커밋을 하기 전 상태로 작업 트리를 되돌린다.
--mixed HEAD^최근 커밋과 스테이징을 하기 전 상태로 되돌린다. 기본 옵션이다.
--hard HEAD^커밋, 스테이징, 파일 수정을 하기 전 상태로 되돌린다.

만약 여기서 특정 커밋을 지정해서 되돌리고 싶다면 커밋 해시를 이용한다.

git reset --option commitHash

취소 기록마저 커밋으로 남기고 싶다면?

이럴 때는 revert라는 명령어를 사용한다.

git revert 취소하려는 커밋 해쉬

명령어를 실행하면 마치 --amend를 사용해 커밋 메시지를 수정할 때 처럼 다시 커밋 메시지를 입력하라고 에디터가 실행된다.

거기에 취소 내용을 적어 커밋을 남겨주면 된다.


다음 포스팅에서는 브랜치에 대해서 정리해보자...!

1개의 댓글

comment-user-thumbnail
2020년 9월 2일

깃허브, 빗버킷 : 빗버킷이 뭐에요 ? 궁금
커밋 취소 명령어는 안 먹히던데 ? 어떻게 사용하는거에요 ? ㅠ git reset HEAD^

답글 달기