- 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')
반응형
'Language > python' 카테고리의 다른 글
[python] Clean Code in Python 1. 코드 포매팅과 도구 (0) | 2024.05.01 |
---|---|
[python] SOLID principles (0) | 2024.02.23 |
[python] 'dict' object has no attribute 'to_csv' (0) | 2024.02.13 |
[이미지 처리] 알파채널 제거 (0) | 2024.02.06 |
[결측값 처리] fillna / backfill / bfill / pad / ffill (0) | 2024.02.05 |