ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Git blog 만들기] - 2. Git에서 자주 쓰이는 커맨드 정리
    git과 Markdown 2022. 4. 20. 21:07

    지난번 포스팅에서는 git의 기본 커맨드에 대해서 알아봤다면 이번 포스팅에서는 git에서 자주 사용되는 커맨드의 아주 기본! 에 대해서만 간단하게 정리해보려고 한다.  해당 커맨드에 대해서 자세하게 설명하려면... 끝도 없을 것이다. 해당 커맨드에서 대해서 더 많은 정보가 궁금하다면 역시나 깃 공식 홈페이지를 참고하면 된다! 아주아주 잘 정리된 문서를 확인할 수 있다. 


     

    git 도움말 불러오기: git help

    git 커맨드에 대해서 도움이 필요할 때 구글링으로 검색하면 많은 해답을 찾을 수 있지만 git help 커맨드를 사용해 빠르게 확인할 수도 있다.

    $git help
    $git help [커맨드 입력] // 사용법이 궁금한 git의 커맨드를 입력합니다. 매뉴얼의 내용을 출력합니다.

    실제 출력되는 화면은 다음과 같다. 

    git help 커맨드 실행화면

     

     

    git 프로젝트 디렉토리 상태 확인하기: git status

    깃이 인식하고 있는 프로젝트 디렉토리의 현재 상태를 보여준다. 오류 해결 시에 자주 사용되며 지난 포스팅에서 git push 커맨드를 입력하고 git status 커맨드를 입력하면 다음과 같이 나타난다. 

    $ git status
    On branch main
    Your branch is up to date with 'origin/main'.
    nothing to commit, working tree clean

    git status 커맨드를 입력하면 현재 내가 작업 중인 브랜치를 알려준다. 기본 브랜치의 이름은 main이다.

    (브랜치에 대한 포스팅은 다음에 자세하게 해야겠다.🤔)

     

     

    리모트 레포지토리를 로컬 레포지토리로 불러오기: git pull

    지난 포스팅에서 git push 커맨드를 입력해 로컬 레포지토리의 내용을 리모트 레포지토리인 git hub로 보냈었다. 반대로 리모트 레포지토리의 내용을 내 컴퓨터인 로컬 레포지토리로 가져오는 커맨드는 git pull 커맨드를 사용하면 된다. git에는 공개된 다양한 프로젝트들이 있는데 다른 프로젝트로 로컬 레포지토리로 가져올 때 사용한다.

    $git pull [리모트 레포지토리 이름] [브랜치 이름]

     

     

    git에서 다른 프로젝트 다운로드하기: git clone

    다른 프로젝트를 다운로드하고 싶을 때 사용하는 기능이다. 깃에서 다양한 프로젝트를 찾아볼 수 있는데 그 프로젝트의 주소를 복사하고 아래처럼 커맨드를 입력해주면 깃 허브에 있는 프로젝트의 레포지토리를 그대로 복제할 수 있다. 

    $git clone [가져올 깃 허브 주소]

     

    여기서 잠깐✋ git pullgit clone의 차이점이 궁금해졌다. 처음에는 둘 다 리모트 레포지토리에 있는 내용을 가져오는 거 아닌가?라고 생각했었다. 궁금증이 생겨 두 커맨드의 차이를 검색해봤고 정리하자면 다음과 같다.

    1) git clone커맨드를 사용하면 로컬 레포지토리의 내용이 리모트 레포지토리의 내용과 동일해진다.
    2) 그러나 git pull 커맨드를 사용하면 리모트 레포지토리의 내용을 가져와 현재 브랜치와 병합을 하기 때문에 기존에 작업했던 내용을 유지하면서 최신 코드로 업데이트해주는 것이다.
    정리해보자면 git clone 커맨드를 사용하면 덮어쓰기가 되고 git pull 커맨드를 사용하면 머지(merge)가 되는 것이다. 즉, git clone은 처음 프로젝트를 가져올 때 사용하는 것이 좋고 git pull은 로컬 레포지토리의 내용과 리모트 레포지토리의 내용을 반영할 때 사용한다고 한다. (= 협업 과정에서 프로젝트의 최신 코드를 로컬 레포지토리로 가져올 때) 

     

     

    git 커밋 히스토리 살펴보기: git log

    이제까지 커밋을 한 히스토리들을 살펴보고 싶을 때는 git log 커맨드를 사용한다. 내가 이제까지 몇 번 커밋을 했는지 볼 수 있다. 가장 위에 있는 히스토리가 가장 최신의 커밋이다. 

    $git log

    git log 한 줄씩 간략하게 나타내도록 하려면 --pretty 옵션을 사용하면 된다. --pretty옵션 뒤에는 다양한 추가 옵션들이 올 수 있는데 여기에서는 가장 보편적으로 사용하는 oneline옵션에 대해서 설명하고자 한다. 해당 옵션을 사용하면 git log를 한 줄로 간략하게 보여준다. 만약 format옵션을 사용하면 내가 지정한 포맷으로 출력할 수 있다고 한다. 

    $git log --pretty=oneline

     

     

    git 커밋 히스토리 구체적으로 살펴보기: git show

    git show 커맨드를 사용하면 구체적으로 어떤 부분이 바뀌었는지 살펴볼 수 있다. 커밋 아이디를 입력하지 않으면 가장 최신 커밋의 정보를 출력한다. 뒤에 커밋 아이디를 입력해주면 해당 커밋의 정보와 수정 내용을 보여준다. 

    $git show [커밋 아이디]

    이때 만약 편집 모드로 들어가게 된다면 esc를 누르고 :wq를 입력해주면 편집 모드에서 빠져나올 수 있다. 

    여기서 커밋 아이디란❓ 아래 이미지는 git log--pretty=oneline 커맨드를 수행한 결과이다. 여기서 38787e04...4ee를 커밋 아이디라고 부른다. 아이디가 굉장히 길지만 아이디를 전체다 입력할 필요는 없다. 앞에 4자리 정도만 입력해줘도 충분하다. 해당 커밋 아이디의 히스토리를 구체적으로 살펴보려면 $git show 3878 이라고 입력하면 된다. 

    커밋 아이디

    결과 화면을 캡처하지 못했지만, 삭제된 곳은 빨간색으로 추가된 곳은 초록색으로 나타난다. 

     

     

    두 커밋 간의 차이 살펴보기: git diff

    두 커밋 간의 차이를 비교하기 위해 사용하는 커맨드는 git diff 커맨드이다. git diff 커맨드 뒤에도 다양한 옵션들이 올 수 있다. 커밋 아이디 대신에 브랜치 명을 입력해서 브랜치 간 변경사항을 확인할 수 도 있다. 

    $git diff [비교할 A 커밋 아이디][비교할 B 커밋 아이디]

     

     


    여기까지 git에서 자주 사용되는 기본 커맨드들을 정리해봤다. 해당 커맨드들 말고도 자주 사용되는 개념들이 많지만 개발자가 아니라면 이 정도 개념과 브랜치, HEAD가 무엇을 의미하는지 알면 되지 않을까 싶다. 역시나 git  공식 홈페이지와 구글링을 통해 더 많은 정보를 얻을 수 있다. 

    댓글

Designed by Tistory.