본문 바로가기
Language/python

[python] GitPython 라이브러리

by _YUJIN_ 2024. 10. 13.
  • branch로 프로젝트 관리를 하다보니 현재 사용하고 있는 브랜치명을 가져와야하는 경우가 생겼다.
  • 이때 사용한 라이브러리가 GitPython !

1. GitPython?

  • git 저장소와 상호작용(작업을 자동화하고 조작)하는데 사용되는 python 라이브러리이다. 
  • 버전 관리 시스템을 활용하는 개발 프로젝트에 유용하다.
  • 명령줄 프로그램을 호출하여 git 저장소 데이터에 쉽게 엑세스할 수 있도록 git 객체의 추상화를 제공한다. 

2. 주요기능

  • 저장소 관리: 로컬 및 원격 저장소의 생성, 복제, 삭제 등을 관리할 수 있습니다.
  • 커밋 관리: 커밋 생성, 로그 검색, 커밋 간 비교 등의 기능을 제공합니다.
  • 브랜치 및 태그 관리: 브랜치 생성, 삭제, 체크아웃, 태그 작업 등을 수행할 수 있습니다.
  • 파일 상태 및 변경 내용 추적: 수정된 파일 목록 확인, 변경 사항 적용 및 되돌리기 등을 할 수 있습니다.
  • 자동화 스크립트: 배포, 테스트, 빌드 등의 작업을 자동화하는 스크립트에 Git 작업을 포함시킬 수 있습니다.
  • 데이터 백업 및 복원: 프로젝트의 변경 사항을 정기적으로 백업하고 필요 시 복원합니다.
  • 프로젝트 관리 도구: 이슈 트래커나 다른 프로젝트 관리 도구와 통합하여 사용할 수 있습니다.
  • 버전 관리 시스템: 여러 사람이 참여하는 프로젝트에서 코드의 버전을 관리하고 협업을 용이하게 합니다.

3. 설치 방법 

pip install GitPython

https://pypi.org/project/GitPython/

 

GitPython

GitPython is a Python library used to interact with Git repositories

pypi.org

4. 현재 사용중인 브랜치명 가져오기 

from git import Repo

current_path = os.getcwd()

repo = Repo(current_path)
branch_name = repo.active_branch.name

5. commit 사용 예제

from git import Repo

# 로컬 저장소 위치 지정
repo_path = '/path/to/your/repository'

# 저장소 객체 생성
repo = Repo(repo_path)

# 새 파일 생성 및 추가
new_file_path = repo_path + '/new_file.txt'
with open(new_file_path, 'w') as new_file:
    new_file.write("New content")

# 변경 사항을 스테이징 영역에 추가
repo.git.add('new_file.txt')

# 커밋 생성
repo.git.commit('-m', 'Add new file')

# 원격 저장소에 푸시
repo.git.push('origin', 'master')
반응형