Day4 git 협업 관리(1)

정채림·2026년 1월 6일

리눅스 명령어

  • ls : list segment의 준말로 현재 폴더에 있는 파일과 폴더 목록을 표시.
    - 옵션 : -a(숨김 파일까지 표시) /-l (이름과 속성정보까지 표시) / -t (시간순 정렬)

  • cd : change directory의 준말로 디렉토리를 이동할 때 사용.

  • pwd : print working directory의 준말로 현재 위치한 디렉토리를 표시

  • mkdir : make directory의 준말로 새로이 디렉토리를 생성할 수 있다.

  • touch : 파일을 생성할 때 쓴다.

  • rm : remvoe의 준말로 파일 또는 디렉토리를 삭제한다.

  • mv : move의 준말로 파일이나 디렉토리를 이동시킨다.

  • cp : copy의 준말로 파일이나 디렉토리를 다른 곳으로 복제한다.

  • cat : concatenate의 약자로 특정파일에 기록된 텍스트를 확인할 수 있다. grep 커맨드와 사용하면 원하는 내용만을 확인할 수 있다.

  • less : 파일을 읽어 화면에 출력하는 명령어. 한번에 보여지는 만큼만 읽어서 출력한다.

  • head : 파일의 앞부분을 지정한 만큼만 출력하는 명령어.
    ex) head -n 2 (두 줄만)

  • tail : head와 반대의 명령어. 파일의 가장 끝부분부터 읽는다.

  • nano / vim : 리눅스에서 사용하는 텍스트 편집기

git 기본 명령어

git init

로컬 저장소를 초기화하는 명령어

git add [파일명]

로컬 저장소에 파일을 추가(staging)하는 명령어

git commit

로컬 저장소에 파일을 저장(commit)하는 명령어. -m 옵션을 통해 메시지를 포함해 커밋하는 것도 가능.

git status

현재 사용하고 있는 브랜치 및 커밋 상태확인과
git에서 추적하고 있는 파일 상태를 확인할 수 있다.

git dff [해시1] [해시2]

변경점을 추적할 수 있다.

git log

--pretty옵션으로 가독성 있게 로그를 표시 가능

ex) git log --pretty=format:"%h -%an, %ar : %s"

git 버전 되돌리는 명령어

git reset

  • 특정 커밋 이후의 모든 기록을 삭제
  • 과거 커밋을 초기화할 떄 사용
//커밋기록만 되돌리고 스테이징은 해제x
git reset --soft
//스테이징 해제
git reset --mixed HEAD~
//커밋기록, 스테이지, 디렉토리 등 모든
//변경사항 삭제
git reset --hard

git restore

  • 파일 단위로 변경 사항을 되돌림
  • 작업 중인 파일이나 스테이징된 파일의 상태를 복구
  • 과거 커밋 기록은 영향을 받지 않음
//스테이징된 파일을 작업 상태로 되돌림
git resotre --staged <파일>

git revert

  • 특정 커밋의 변경 사항을 취소하는 새 커밋을 생성

  • 커밋 기록을 안전하게 유지하면서 작업을 되돌릴 수 있음

  • -n 옵션으로 커밋은 하지 않을 수 있음.

git 특정 버전을 가져오는 명령어

git cherry-pick

git cherry-pick <branch 커밋 해시값>
  • cherry-pick은 특정 커밋만 선택해서 복사하기 때문에 원래 브랜치와 현재 브랜치가 독립적임.
  • 단순히 변경내용만 가져오는 방식이라 브랜치 간 관계가 유지되지 않음
  • 커밋 내용을 추적하기 어려울 수 있음

git 원격저장소에서 코드 가져오기

fork

  • 다른 사람이 구성한 저장소 코드를 내계정으로 복제함. 로컬 저장소의 코드는 가져오지 않음.

clone

  • 특정 저장소의 코드를 로컬 저장소로 가져옴. fork 처럼 계정에 저장소를 가져오지 않음.

git branch 전략

dev branch

역할

  • 새로운 기능 개발과 버그 수정을 포함한 모든 작업의 기반 브랜치

특징

  • 상태가 안정적이지 않을 수 있으며 테스트가 완벽히 이루어지지 않은 상태의 코드도 포함됨.

stage branch

역할

  • 배포 전 최종 테스트 환경, QA가 이루어지는 단계
  • 실질적으로 배포 완료가 된 코드를 포함.

특징

  • dev 브랜치에서 충분히 검증된 코드를 병합하여 테스트
  • 실제 운영환경(prod)과 유사한 설정을 사용하여 예상치 못한 문제를 발견.

prod branch

역할

  • 프로덕션 환경의 코드를 포함하는 브랜치.
  • 안정적이고, 배포가능한 상태

특징

  • 사용자가 직접 사용하는 서비스의 모든 변경 사항은 이 브랜치에 반영됨
  • 버전 태그를 통해 배포 이력을 관리하기도 함.

dev (SLOW) -> stage (RISKY) -> prod


main(master) branch

feature branch

역할

  • 새로운 기능 개발을 위한 브랜치
  • 보통 dev 브랜치에서 분기하고 개발이 완료되면 합쳐진다.

hotfix branch

역할

release branch

역할

  • 배포 전 최종 테스트 및 QA를 위한 브랜치
  • dev 브랜치에서 분기하여 테스트를 통과하면 master 브랜치에 병합됨.
  • 버그는 release 브랜치에서 바로 수정하여 병합됨.

v.x.x.x

버전표시 읽는 법

1. 첫번째 숫자(Major)

  • 기본버전과 호환되지 않는 변경이 발생했을 때 증가

2. 두 번째 숫자(Minor)

  • 새로운 기능이 추가되었지만 기존 기능과 호환성이 유지될 때 증가

3. 세 번째 숫자(Patch)

  • 버그 수정과 같은 작은 변경이 있을 떄 증가

0개의 댓글