All ContentsCategoryAbout

자주 쓰는 깃(git)과 터미널(terminal)의 주요 명령어

03 June, 2020 - etc - 4 min read

깃(git)이란

위키백과에서 말하길, 깃(git)은 프로그램 등의 소스 코드 관리를 위한 분산 버전 관리 시스템이라고 한다. 다소 어려운 말로 설명이 되었는데, 내가 이해한 개념으로 다시 말하자면, '끔찍한 사태를 예방하기 위한 일종의 보험' 같은 것이다. 여기서 끔찍한 사태란, 서비스를 개발하며 일어날 수 있는 모든 최악의 상황들을 말한다. 이래도 깃의 필요성을 느끼지 못 하는 사람이 있을 수 있으니, 조금 더 친절하게 가벼운 예시를 들어보겠다.

예시 1

개발자A는 평소 USB를 애용하며 파일을 전달할 때에도 수고롭게 USB에 담아서 전달한다. 그날도 중요한 프로젝트의 소스코드를 USB에 고이 담아 동료에게 전달했다. 본인이 모르는 사이에 바이러스에 감염되었다는 사실도 모른 채...

예시 2

개발자B는 본인이 깃 명령어를 모른다는 것에 자격지심을 느껴 일개 시스템보다 인간이 우수하다는 보여주겠다며, 본인만의 폴더에 파일명을 하나하나 정성껏 지정하여 업데이트 내역을 관리했다. 그러던 어느날 극도로 피로한 상태에서 야근을 하던 개발자B는 작업하던 파일을 저장하고 가벼운 마음으로 퇴근을 했다. '다른 이름으로 저장하기'가 아닌, '저장'을 했다는 사실도 모른 채...

요즘 유행한다는 열린결말로 예시를 들어보았다. 각 예시의 결말은 당신의 상상에 맡기겠다. 물론, 두 사례 모두 현실성 없는 극단적인 예시이며, 이후에 딱히 별일이 없었을지도 모른다. 하지만, 개발자는 언제나 최악을 상황까지 고려하여 차선책을 마련해야만 한다고 나는 생각한다. 최악의 상황이 본인만의 일이라면 모르겠지만, 모두의 부담이 될 수도 있다. 따라서 버전별 소스코드를 저장 및 관리가 가능하고, 만일의 상황에서도 빠른 대처가 가능한 깃의 사용은 필수다.

깃(git)을 설치해보자

OS X 깃 설치 링크 Windows 깃 설치 링크

필수 명령어

개인적으로 자주 사용하게 되는 터미널(terminal)과 깃(git)명령어를 소개한다. 카페에서 터미널을 실행하고 현란한 타이핑으로 명령어들을 실행하면 상당히 멋있다(고 나는 생각한다).

만약 깃을 처음 쓰거나, 컴퓨터를 바꿨다면

전역 사용자와 이메일을 등록해야 한다. 사용자 등록을 안 하더라도 깃헙은 사용할 수 있으나, 소중한 커밋(commit)이 집계되지 않아서 푸르른 잔디밭의 꿈이 날아간다.

  • 사용자 등록: git config --global user.name "본인이름"
  • 이메일 등록: git config --global user.email "이메일주소"
  • 전역 사용자 정보 조회: git config --global --list

저장소에 따라 별도의 사용자와 이메일을 등록하려면,

  • 사용자 등록: git config user.name "본인이름"
  • 이메일 등록: git config user.email "이메일주소"
  • 사용자 정보 조회: git config --list

자주 쓰는 터미널 명령어

  • 현재 위치 확인: pwd
  • 현재 위치의 폴더 확인: ls
  • 최상위 위치로 이동: cd
  • 한 단계 상위로 이동: cd ..
  • 파일 생성: touch 파일명
  • 폴더 생성: mkdir 폴더명 Make Directory의 이니셜로 기억하면 쉽다.
  • 폴더 안에 또 폴더 만들기: mkdir -p 폴더명/{하위폴더1,하위폴더2,하위폴더3}
  • 파일 삭제: rm 파일명
  • 폴더 삭제: rm -rf 폴더명 또는 rmdir 폴더명
  • 폴더로 이동: cd 폴더명

자주 쓰는 깃 명령어

  • 현 위치의 디렉토리 초기화: git init
  • 현 위치의 디렉토리와 원격 저장소 연결: git remote add 이름 저장소URL

    이름은 관용적으로 origin을 쓴다.

  • 원격 저장소 복제: git clone 저장소URL

    저장소를 복제하면 별도의 remote 연결 과정은 생략해도 된다.

  • 원격 저장소 내려받기: git pull remote(ex: origin, 생략 가능) branch(ex: master, feature, 생략가능)

    파일을 업로드 하기 전에 현재 상태를 내려받아야 한다. 안 그러면 에러 메시지가 나온다. branch는 저장소 기준

  • 로컬에서 원격 저장소로 보내기: git push remote branch

    branch는 로컬 기준

  • 깃에 특정 파일 추가: git add 파일명
  • 깃에 모든 파일 추가: git add .
  • 커밋(commit): git commit -m "설명"
  • 현 상태 확인: git status

종종 쓰는 깃 명령어

  • 브랜치 생성: git branch 브랜치이름
  • 브랜치 목록 보기: git branch

    Master가 기본이며, Develop과 feature 등을 주로 추가하게 된다.

  • 다른 브랜치로 이동: git checkout 브랜치이름

이정도가 현재까지 내가 주로 사용하는 명령어들이다. 이 밖에도 팀 프로젝트를 할 때에는 git flow를 쓰기도 하는데, 이건 아직 제대로 숙지하지 못한 기능이라 이번 포스팅에서는 제외하도록 하겠다. 추후 제대로 숙달하거든 그때 보다 충실한 내용을 업로드 할 것을 약속한다. 물론, 주 용도는 내가 까먹었을 때 보기 위함이다.

그래도 일단, 여기까지 익혔다면, 손가락이 쉬지 않고 움직일 정도는 된다. 카페로 가자! 터미널에 각종 명령어를 연습하며 폭풍간지를 뽐내보자. 사실, 그리 생산적인 행동이라고는 할 수 없지만, 내 경험으로 봤을 때 상당히 기분이 좋아진다. 고양감이라고 해야할까? 코피 터지게 공부해서 간지나게 코딩까지 하고 싶다는 나름의 동기부여도 된다. 한 가지 주의사항이라면, 카페에 시니어 개발자가 있는지 확인해야 한다는 것이다. 이불킥은 싫으니까.

참고:

© 2023 intzzzero, Built with

Gatsby