Git 버전관리 _ Staging을 위한 명령어

Yoony·2022년 6월 28일
0
post-thumbnail
  • Git 버전관리는 왜 필요할까?
    - 협업을 위해 버전관리는 필수입니다. 지속적으로 발생하는 수정 사항 단위로 버전을 구분하고 최종으로 업데이트 된 파일을 직관적으로 파악하는데 용이합니다. 저는 POSTMAN collection 그리고 environment file의 형상 및 버전관리를 위해 Git을 사용하였습니다. 그리고 jenkins에서 git으로부터 최산화된 코드를 불러와 자동으로 빌드할 수 있도록 하였습니다.

Commit ?

코드에 수정 사항이 발생할 때 로컬에서 원격 저장소로 수정 사항을 반영하기 위해 커밋을 발생시킵니다.
이 때 커밋 단위로 커밋 버전이 생성되며 이를 통해 버전관리가 가능합니다. 다만 우리는 commit 해서 원격 저장소에 수정사항을 직접 반영하기 전에 커밋할 작업 파일들을 먼저 선택할 수 있습니다. 이것을 Stage에 올린다고 표현합니다.

Stage it !

(1) Git clone {repository url}

  • 내 로컬 저장소에 레파지토리 파일을 생성합니다. 로컬에서 한번만 실행하면 됩니다.
  • 최초 접속 시 user.name과 personal access token을 입력합니다.

(2) cd {repository file adress}

  • 로컬 저장소로 이동하기

(3) git branch/ git checkout {branch name}

  • git branch 명령어로 현재 branch를 확인할 수 있습니다.
  • git checkout "브랜치명" 명령어로 원하는 branch로 전환할 수 있습니다.
  • git branch "브랜치명" 명령어로 branch를 생성할 수 있습니다.

[comment] 여기까지 되었다면 이제 커밋할 준비가 된 것 같습니다 :)

(4) git status

  • 수정사항이 발생한 파일을 로컬 저장소에 저장합니다.
  • git status 명렁어로 Tracked 상태의 파일을 확인할 수 있습니다. 아직 stage에 올리지 않았기에 로컬에 저장한 파일을 확인할 수 없습니다. 이 상태를 Untracked 상태라고 합니다.

(5) git add {file name}

  • 수정사항이 발생한 파일을 커밋하기 전에 먼저 stage에 올립니다.
  • stage에 올린 후 git status 명령어로 커밋할 파일이 Untracked -> Tracked 상태로 전환된 것을 확인할 수 있습니다. 상세한 상태는 Unmodified, Modified, Staged 중 Modified 입니다.
    staging area에 있는 파일들을 커밋하게 되면 해당 파일들은 하나의 커밋으로 저장된 후, 파일의 상태는 Unmodified로 내려오게 됩니다. Unmodified 상태의 파일들을 수정하게 되면 Modified 상태가 됩니다.

[comment] 여러개의 파일을 한번에 스테이지에 올리고 싶다면 git add {file1} {file2} ... {file3} 의 형식으로 가능합니다!

(6) git commit -m {commit message}

  • 변경 사항에 대한 추적과 원활한 협업을 위해 수정 사항에 대한 간략한 내용을 커밋 메시지에 입력합니다.

(7) git push origin {branch name}

  • 로컬 저장소의 변경사항을 원격 저장소로 push 합니다.

  • 혹시 원격 저장소에 연결이 되어있는지 확인이 필요하다면 git remote -v 명령어로 연결된 원격 저장소를 확인합니다.

  • 원격 저장소에 연결이 안되어있다면 다음 명령어로 연결해줍시다.
    git remote add origin {repository url}

[comment] 이제 로컬에서 원격 저장소로 수정사항을 반영하고 커밋 버전으로 관리가 가능하게 되었습니다!
커밋 버전과 히스토리는 git log 명령어로 확인이 가능합니다.

(8) git pull

  • 원격 저장소에서 변경사항이 있을때 원격 저장소와 로컬 저장소의 상태를 동일하게 업데이트할 수 있습니다.

[comment] 이미 업데이트 상태라고 하네요. 변경사항이 있다면 변경사항이 뜨겠죠? :)

profile
Software Quality Engineer

0개의 댓글