.dvc 파일을 관리하는 것이 dvc 기반 버전 관리의 핵심dvc push 명령을 통해 원격 저장소에 안전하게 저장 가능pip install dvc # dvc 기본 설치
pip install dvc[all] # s3, google Drive, ssh 등을 dvc의 리모트 스토리지로 사용할 수 있도록 관련 패키지들을 모두 설치하게 하는 옵션
dvc -V
# 디렉터리 생성
mkdir data
cd data
# 저장소 세팅
git init
dvc init
# 참고사항
# git init 전, dvc init 실행시 아래와 같은 에러 발생
# failed to initiate DVC - src is not tracked by any supported SCM tool (e.g. Git). Use `--no-scm` if you don't want to use any SCM or `--subdir` if initializing inside a subdirectory of a parent SCM repository.
# SCM tool 을 사용하지 않을거라면 `--no-scm`을, sub directory의 경우 '--subdir'을 설정해주기
vim data/file.txt -> "file ver1"
dvc add data # dvc에 data 레지토리가 연동될 수 있도록 추가. .gitiignore에 자동으로 추가됨
git add .gitignore data.dvc
cat data.dvc # 생성된 파일 확인
git commit -m "add file.dvc"
# dvc remote storage 설정
dvc remote add -d <저장소이름> <ssh://서버주소/서버에서 저장소로 사용할 폴더 경로>
dvc remote modify <저장소이름> user <서버 유저 이름> # 예시 dvc remote modify server1 user ubuntu
dvc remote modify <저장소이름> port <포트번호> # 22
dvc remote modify <저장소이름> keyfile <로컬에 저장된 ssl 비공개키 파일 경로>
dvc remote modify <저장소이름> password <서버 비밀번호> # 공개키/비공개키를 이용하는 것이 아닌, password를 이용할 수도 있음
# 설정 파일 확인
cat .dvc/config # 파일 확인
# 저장
git add .dvc/config
git commit -m "add remote storage"
pip install dvc[s3]
dvc remote add -d <저장소이름> -d S3://bucket_path/directory_path
dvc remote modify <저장소이름> endpoinurl <url:port>
dvc remote modify <저장소이름> access_key_id <access key id>
dvc remote modify <저장소이름> secret_access_key <secret access key># uploading and downloading data to and from remote storage
dvc push / pull
이전 버전으로 데이터 변경
# 데이터 업데이트
vim data/file.txt => file ver2
dvc add data
git add data.dvc
git commit -m "update file.txt"
dvc push
# 이전 버전으로 데이터 변경
git log --oneline
git checkout <커밋번호> data.dvc
dvc checkout # checkout으로 이전 버전의 데이터로 변경됨
프로젝트 정보 및 환경, dvc 버전 조회 가능
# 해당 데이터 다운로드
dvc get https://github.com/iterative/example-get-started model.pkl
# 해당 데이터뿐만 아니라, .dvc 파일도 함께 다운로드
dvc import https://github.com/iterative/example-get-started model.pkl
dvc가 추적하는 파일이나 디렉토리의 변경사항을 커밋
데이터 파일을 추가하고 DVC로 추적
echo "sample data" > data.txt
dvc add data.txt
data.txt.dvc 파일이 생성 → 이를 Git에 추가
git add data.txt.dvc
git commit -m "Add data.txt to DVC"
data.txt 다시 수정
echo "new sample data" > data.txt
변경된 내용 커밋
dvc commit data.txt.dvc
dvc 캐시 관리
dvc cache dir # 현재 캐시 directory 조회
dvc cache dir /path/to/new/cache # 새로운 캐시 directory 설정
dvc cache gc -f # 사용되지 않는 캐시 파일 정리