케네스로그

비전공자를 위한 Git의 이해 (git workflow) 본문

Dev/VCS

비전공자를 위한 Git의 이해 (git workflow)

kenasdev 2021. 12. 15. 15:09
반응형

Git, 가깝지만 낯선 그 이름

전공자 이거나 비전공자 할 것 없이 Git(깃)에 대해 분명 들어봤을 것입니다. 작성한 코드를 git으로 관리해야 한다, 포트폴리오를 위해 git을 이용해야 한다, 협업에 있어 git은 필수다, 뭐, git을 아직도 모른다고? 등 국비교육을 받은 비전공자인 경우 처음 굉장히 당황스러울것입니다. 내가 아는 건 옷깃밖에 없는데 git(깃)이 도대체 뭐라고 그러는지. 이 글은 아직 Git에 대해 낯선 사람들을 위해 조금 더 가까워질 수 있길 기대하며 작성하는 소개글 입니다.

 

그러니까 망할 Git이 뭐냐면

Git버전관리시스템(Version Control System)을 말합니다. 리눅스 토발즈가 개발한 프로그램인데, 여러명에서 한 프로젝트를 공동으로 작업하다 불편함을 해소하기 위해서 Git을 개발하게 됩니다. 이러한 등장 배경으로, Git은 협업을 할 때, 분산형 작업이 가능하며, 이전의 상태로 되돌아가는 기능(롤백), 기존의 원본 프로젝트에 더불어 병렬형으로 다른 버전의 프로젝트 개발이 가능해집니다.

 

Git 사용 목적

저는 아래와 같이 4개의 목적으로 나누어보았습니다.

  • 코드의 수정 내역 추적
  • 같은 프로젝트를 진행중인 다른 사람과 코드 및 파일 동기화
  • 원 프로젝트에서 다른 테스트 버전을 독립적으로 수행
  • 이전의 특정 지점으로 파일 되돌리기

분명 git으로 할 수 있는 일들은 더욱 많을 것입니다. 저도 아직 새내기이기에, 간단한 핵심 기능들만 정리하면 위와 같습니다.

 

git 작업흐름을 한 눈에 본다면

Git을 이용해서 프로젝트를 하는 과정을 시각화한다면 아래와 같다고 할 수 있을 것 같습니다.
이러한 흐름이 무슨 의미인지 한 번에 알 수 있다면 다행이지만, 그렇지 않더라도 괜찮습니다. 천천히 익혀나가면 되니깐요. 

드림코딩 by 엘리 git영상 참조하여 제작

영역구분

  • working directory: 현재 작업하고 있는 디렉토리
  • staging area: 어느정도 작업이 진행된 파일. add명령을 통해 커밋을 할 준비가 된 파일을 옮겨둔 곳.
  • .git directory: commit명령을 통해 변경내역(히스토리)가 저장되어있는 곳. = git local repository(또는 디렉토리).
  • remote: Github등과 같은 원격 저장소. local repository으로부터 commit된 버전들이 push명령을 통해 전송받거나 pull명령을 최신 버전을 보낸다.

 

 

In local

Working directory는 tracked와 untracked 파일들로 구분될 수 있습니다. 

  • add (파일이름) 명령: 현재 저장된 파일의 상태를 저장합니다. 이 행위를 staging area에 추가한다고 합니다. add명령 이후에 파일을 수정하더라도 staging area에는 수정 이전의 상태가 저장됩니다. 이후에 수정된 내역을 저장하길 원한다면 다시 add명령을 통해 staging area로 이동시켜야 합니다.
  • tracked: add명령을 통해 git이 tracking중인 기존의 파일들을 말합니다.
    • unmodified: 이전 버전에 비해 수정되지 않은 파일들
    • modified: 이전 버전에 비해 변경된 점이 있는 수정된 파일. 다시 add명령을 해야 상태가 저장됨.
  • untracked: 새로 생성되어 git이 tracking 하고 있지 않은 파일들입니다. add명령 시 tracked 영역으로 이동됩니다.

 

로컬에서 일어나는 전체적인 그림은 위와 같습니다.

작업중인 파일 중 어느정도 준비가 된 파일은 git add 명령을 통해 stage area로 이동시킵니다.

그 후, git commit -m 명령을 통해 message와 함께 버전을 생성하고 git directory에 저장합니다.

commit된 파일 중 이전 버전으로 롤백하고 싶은 파일은 git checkout명령을 통해 할 수 있습니다.

 

 

[Git 설치하기]

Windows 유저라면, 이곳

Mac 유저라면, 이곳

반응형