[Git] 깃(Git)을 활용한 프로젝트 관리

서쿠·2023년 5월 2일
1

Git-협업

목록 보기
2/8
post-thumbnail

깃(Git)을 활용한 프로젝트 관리

깃(Git)은 분산 버전 관리 시스템으로, 다양한 프로젝트에서 소스코드와 문서를 관리하고 협업을 할 때 효율적으로 사용됩니다. 깃을 활용하여 프로젝트를 관리하는 방법에 대해서 알아보겠습니다.

1. 깃의 사용법

1. Repository(저장소) 생성
프로젝트를 관리하기 위해서는 먼저 깃 저장소를 생성해야 합니다. 깃 저장소는 로컬 저장소와 원격 저장소로 나뉘며, 로컬 저장소는 개발자의 개발 환경에서 사용되는 저장소이며, 원격 저장소는 다른 개발자와 협업할 때 사용되는 저장소입니다.

$ git init            # 로컬 저장소 생성
$ git remote add origin [원격 저장소 URL]   # 원격 저장소와 로컬 저장소 연결

2. Branch(브랜치) 관리
깃은 브랜치 기능을 제공하여, 독립적인 작업 라인에서 작업을 할 수 있습니다. 새로운 기능 추가나 버그 수정 등을 위해 독립적인 브랜치를 생성하여 작업하면, 다른 작업 라인에서의 영향을 최소화할 수 있습니다. 이에 대해서 더 궁금하신 분은 4. 깃(Git) Branch에 대한 이해와 활용에서 좀 더 자세한 내용을 확인해 보실 수 있습니다.

$ git branch [브랜치 이름]   # 브랜치 생성
$ git checkout [브랜치 이름]   # 브랜치로 이동

3. Commit(커밋) 관리
변경 내역을 저장소에 기록하는 작업을 커밋이라고 합니다. 각각의 커밋은 고유한 해시값을 가지며, 변경 내역의 이력을 추적할 수 있습니다.

$ git add [변경된 파일]   # 파일 추가
$ git commit -m "[커밋 메시지]"   # 커밋 생성

4. 프로젝트 이력 추적 및 관리
깃을 활용하면 프로젝트의 변경 이력을 추적하고 관리할 수 있습니다. 이전 버전으로 돌아가는 등 다양한 작업이 가능합니다.

$ git log   # 커밋 이력 확인
$ git diff [커밋 해시] [커밋 해시]   # 커밋 간 차이점 확인
$ git reset --hard [커밋 해시]   # 특정 커밋으로 이동

2. Git 주요 명령어 정리 및 설명

Git은 강력한 분산 버전 관리 시스템으로, 소스 코드의 변경 이력을 관리하고 협업을 효율적으로 지원합니다. 하지만 다양한 명령어로 인해 혼란스러울 수 있습니다. 이 글에서는 자주 사용되는 주요 Git 명령어들을 설명과 함께 정리하였습니다.


1. 저장소 초기화 및 복제

1.1 git init

  • 설명: 새로운 Git 저장소를 초기화합니다. 현재 디렉토리를 Git 관리 하에 두며 .git 디렉토리가 생성됩니다.
  • 사용 예시:
    git init

    이 명령을 실행하면 현재 디렉토리에서 Git이 변경 사항을 추적하기 시작합니다.

1.2 git clone <repository_url>

  • 설명: 원격 저장소를 로컬로 복제합니다. 이 명령어는 원격 저장소의 전체 이력을 다운로드합니다.
  • 사용 예시:
    git clone https://github.com/user/repository.git

    URL에 해당하는 저장소가 로컬 디렉토리에 복제됩니다.


2. 변경 사항 관리

2.1 git status

  • 설명: 현재 작업 디렉토리와 스테이징 영역의 상태를 확인합니다.
  • 사용 예시:
    git status

    수정된 파일, 추가되지 않은 파일, 커밋 대기 파일 등이 표시됩니다.

2.2 git add <file>

  • 설명: 지정한 파일의 변경 사항을 스테이징 영역에 추가합니다.
  • 사용 예시:
    git add main.py

    main.py의 변경 사항이 스테이징 영역에 추가됩니다.

2.3 git add .

  • 설명: 현재 디렉토리의 모든 변경 사항을 스테이징 영역에 추가합니다.
  • 사용 예시:
    git add .

    변경된 모든 파일이 스테이징 영역에 추가됩니다.

2.4 git commit -m "메시지"

  • 설명: 스테이징된 변경 사항을 기록하며, 커밋 메시지를 추가합니다.
  • 사용 예시:
    git commit -m "초기 커밋"

    이 명령은 스테이징된 변경 사항을 "초기 커밋" 메시지와 함께 기록합니다.


3. 브랜치 관리

3.1 git branch

  • 설명: 현재 저장소의 브랜치 목록을 표시합니다.
  • 사용 예시:
    git branch

    현재 브랜치가 별표(*)로 표시됩니다.

3.2 git branch <branch_name>

  • 설명: 새로운 브랜치를 생성합니다.
  • 사용 예시:
    git branch feature/login

    feature/login이라는 새 브랜치가 생성됩니다.

3.3 git checkout <branch_name>

  • 설명: 지정한 브랜치로 전환합니다.
  • 사용 예시:
    git checkout feature/login

    feature/login 브랜치로 작업을 전환합니다.

3.4 git checkout -b <branch_name>

  • 설명: 새 브랜치를 생성하고 즉시 해당 브랜치로 전환합니다.
  • 사용 예시:
    git checkout -b feature/register

    feature/register라는 새 브랜치가 생성되고 작업 브랜치로 전환됩니다.

3.5 git merge <branch_name>

  • 설명: 다른 브랜치를 현재 브랜치에 병합합니다.
  • 사용 예시:
    git merge feature/login

    feature/login 브랜치를 현재 브랜치에 병합합니다.


4. 원격 저장소 작업

4.1 git remote add origin <repository_url>

  • 설명: 로컬 저장소에 원격 저장소를 추가합니다.
  • 사용 예시:
    git remote add origin https://github.com/user/repository.git

    원격 저장소 origin이 추가됩니다.

4.2 git push origin <branch_name>

  • 설명: 로컬 변경 사항을 원격 저장소에 업로드합니다.
  • 사용 예시:
    git push origin main

    로컬 main 브랜치가 원격 저장소에 업로드됩니다.

4.3 git pull origin <branch_name>

  • 설명: 원격 저장소의 변경 사항을 로컬로 가져옵니다.
  • 사용 예시:
    git pull origin main

    원격 main 브랜치의 변경 사항이 로컬로 병합됩니다.


5. 로그 및 이력 확인

5.1 git log

  • 설명: 커밋 이력을 표시합니다.
  • 사용 예시:
    git log

    커밋 해시, 작성자, 날짜, 메시지가 표시됩니다.

5.2 git log --oneline

  • 설명: 간단한 형식으로 커밋 이력을 표시합니다.
  • 사용 예시:
    git log --oneline

    각 커밋이 한 줄로 요약됩니다.

5.3 git log --graph

  • 설명: 브랜치와 병합 이력을 그래프로 표시합니다.
  • 사용 예시:
    git log --graph

    브랜치 구조를 시각적으로 확인할 수 있습니다.

😵 어? git log 실행했는데 나갈 수가 없어요!!
git log 명령어를 실행하면 터미널에 여러 커밋 로그가 표시되고, 더 많은 로그를 보기 위해 스크롤할 수 있는 상태가 됩니다.

  • 이 상태는 less라는 페이지 네이터(paginator) 도구를 사용하는 모드입니다.
  • 여기에서 로그 화면을 종료하려면 아래 단계를 따라야 합니다:

로그 보기 종료 방법

  1. q 키 누르기
    git log 출력 화면에서 q 키를 누르면 로그 보기를 종료하고 일반 터미널로 돌아갑니다.

추가 팁

  • 화면 내 이동

    • 위로 스크롤: k 또는 화살표 위() 키
    • 아래로 스크롤: j 또는 화살표 아래() 키
    • 페이지 단위 이동:
      • 위로: b
      • 아래로: 스페이스바(Space) 키
  • 검색 기능 사용

    • /를 입력한 후 검색어를 입력하면 해당 키워드가 포함된 내용을 검색할 수 있습니다.
      예: /fix를 입력하면 메시지에 fix가 포함된 커밋을 찾습니다.

6. 고급 명령어

6.1 변경 사항 되돌리기

  • git reset <file>: 스테이징된 파일을 언스테이징합니다.

    git reset main.py
  • git reset --hard HEAD: 마지막 커밋 상태로 작업 디렉토리를 되돌립니다. (주의: 변경 사항 삭제)

    git reset --hard HEAD
  • git revert <commit_hash>: 특정 커밋을 취소하는 새 커밋을 생성합니다.

    git revert abc123

6.2 임시 저장

  • git stash: 현재 작업 내용을 임시 저장합니다.

    git stash
  • git stash pop: 가장 최근의 임시 저장을 적용하고 스택에서 제거합니다.

    git stash pop

6.3 브랜치 재배치

  • git rebase <branch_name>: 현재 브랜치를 다른 브랜치 위로 재배치합니다.
    git rebase main

이 글에서 다룬 명령어들은 Git의 핵심 기능을 이해하고 활용하기 위한 기본 지침입니다. 추가적인 옵션이나 고급 사용법은 git help <command>를 통해 확인할 수 있습니다. Git을 효과적으로 활용하기 위해 지속적으로 실습하고 다양한 시나리오를 경험해 보세요.

profile
Always be passionate ✨

0개의 댓글