[git] Git을 사용하여 S3에 게시 하시겠습니까?
누구든지 이것을하는 방법을 알고 있습니까? 지금까지 Google을 통해 유용한 정보를 찾지 못했습니다.
로컬 리포지토리를 설정하고 git push
S3에 게시하는 데 사용하고 싶습니다.이 아이디어는 자산에 대한 로컬 버전 제어가 있지만 S3의 원격 스토리지입니다.
이 작업을 수행 할 수 있으며, 그렇다면 어떻게합니까?
답변
1 http://blog.spearce.org/2008/07/using-jgit-to-publish-on-amazon-s3.html을 통해 JGit 사용
jgit.sh를 다운로드하고 jgit로 이름을 바꾸고 경로에 넣으십시오 (예 : $ HOME / bin).
.jgit 구성 파일을 설정하고 다음을 추가합니다 (AWS 키 대체).
$ vim ~ / .jgit
accesskey: aws access key
secretkey: aws secret access key
.jgit 파일에 acl : public을 지정하지 않으면 S3의 git 파일이 개인용이됩니다 (원하는대로). 다음으로 리포지토리를 저장할 S3 버킷을 만들고 git-repos라고 부르고 업로드 할 git 리포지토리를 만들어 보겠습니다.
s3cmd mb s3://git-repos
mkdir chef-recipes
cd chef-recipes
git init
touch README
git add README
git commit README
git remote add origin amazon-s3://.jgit@git-repos/chef-recipes.git
위의 경우 s3cmd 명령 줄 도구를 사용하여 버킷을 생성했지만 Amazon 웹 인터페이스를 통해서도 수행 할 수 있습니다. 이제 S3로 푸시 해 보겠습니다 (S3와 상호 작용할 때마다 jgit을 사용하고 그렇지 않으면 표준 git을 사용하는 방법에 유의하십시오).
jgit push origin master
이제 다른 곳 (예 : cd / tmp)으로 이동하여 복제 해보십시오.
jgit clone amazon-s3://.jgit@git-repos/chef-recipes.git
업데이트 할 때가되면 (jgit은 merge 또는 pull을 지원하지 않기 때문에) 2 단계로 수행합니다.
cd chef-recipes
jgit fetch
git merge origin/master
2 Amazon S3에서 지원하는 FUSE 기반 파일 시스템 사용
-
Amazon S3 계정을 만드십시오!
-
다운로드, 컴파일 및 설치하십시오. (설치 정보 참조)
-
다음 방법 중 하나를 사용하여 보안 자격 증명 (액세스 키 ID 및 보안 액세스 키)을 지정합니다.
-
passwd_file 명령 줄 옵션 사용
-
AWSACCESSKEYID 및 AWSSECRETACCESSKEY 환경 변수 설정
-
홈 디렉토리에서 .passwd-s3fs 파일 사용
-
시스템 전체의 / etc / passwd-s3fs 파일 사용
-
이 작업을 수행
-
.
/usr/bin/s3fs mybucket /mnt
그게 다야! 이제 amazon 버킷 “mybucket”의 내용이 / mnt에서 읽기 / 쓰기 액세스 가능해야합니다.
답변
Dandelion은 Git 리포지토리를 S3 / FTP / SFTP와 동기화 상태로 유지하는 또 다른 CLI 도구입니다.
http://github.com/scttnlsn/dandelion
답변
git-s3 – https: //github.com/schickling/git-s3
당신은 실행해야합니다 git-s3 deploy
git repo의 모든 이점이 있으며 변경 한 파일 만 업로드 / 삭제합니다.
참고 : 배포는 git push를 통해 암시 적이 지 않지만 git hook을 통해 수행 할 수 있습니다.
답변
Golang 으로 작성된 mc aka Minio 클라이언트를 사용할 수 있으며 오픈 소스 Apache 라이선스에 따라 사용할 수 있습니다. Mac, Linux, Windows, FreeBsd에서 사용할 수 있습니다. mc mirror
명령을 사용 하여 요구 사항을 달성 할 수 있습니다 .
mc GNU / Linux 다운로드
64-bit Intel from https://dl.minio.io/client/mc/release/linux-amd64/mc
32-bit Intel from https://dl.minio.io/client/mc/release/linux-386/mc
32-bit ARM from https://dl.minio.io/client/mc/release/linux-arm/mc
$ chmod +x mc
$ ./mc --help
Amazon S3 용 mc 구성
$ mc config host add mys3 https://s3.amazonaws.com BKIKJAA5BMMU2RHO6IBB V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12
- 액세스 / 비밀 키로 교체
- 기본적으로 mc는 amazon S3의 서명 버전 4를 사용합니다.
- mys3는 minio 클라이언트의 Amazon S3 별칭입니다.
github 로컬 리포지토리 / 디렉터리에서 이름mygithub
을 Amazon S3 버킷 이름으로 미러링mygithubbkp
$ ./mc mirror mygithub mys3/mygithubbkp
면책 조항 : 나는 Minio에서 일합니다
답변
AWS CLI 및 Git (후크 포함)을 사용하여이 작업을 수행 할 수도 있습니다. Windows 10에서 작동하는지 확인했습니다. Linux / Mac에서 작동해야합니다.
커밋시 S3에 동기화 설정
- AWS CLI 설치
- IAM 프로그래밍 방식 액세스 자격 증명을 설정합니다 (S3로 제한 할 수 있으며 버킷으로 만 제한 할 수도 있음).
- 자격 증명으로 AWS CLI 구성
- AWS 콘솔 또는 CLI에서 S3 버킷을 생성합니다.
- 버킷이 비공개인지 확인합니다.
bare
기존 git 프로젝트의 새 git 저장소를 만듭니다 .
mkdir myproject.git
cd myproject.git
git init --bare
참고 : 베어 리포지토리를 사용하면 업스트림이되고 베어 리포지토리에는 S3 버킷에 업로드하려는 변경 사항 만 포함되며 무시 된 파일, 로컬 git 구성 등이 없습니다.
- 로이 후크를 설치
post-update
에hooks
베어의myproject.git
디렉토리.#!/bin/sh; C:/Program\ Files/Git/usr/bin/sh.exe # Sync the contents of the bare repo to an S3 bucket. aws s3 sync . s3://myproject/
- 올바른 S3 버킷 이름으로 후크를 업데이트합니다.
- 이제
myproject
디렉토리 로 cd 하고 베어 리포지토리를 업스트림으로 추가하고s3
예를 들어 이름을 지정합니다 .
git remote add s3 path/to/bare/directory/myproject.git
참고 : 베어 디렉토리 경로에 상대 경로를 사용할 수 있습니다.
테스팅
- 저장소에 변경 사항을 추가하고 커밋하십시오.
s3
변경 사항을 S3 버킷에 동기화하려는 경우 변경 사항을 업스트림으로 푸시합니다 .- 지정한 S3 버킷에 변경 사항이 동기화되는 것을 볼 수 있으며 S3 버킷의 변경 사항을보고 모든 것이 작동했는지 확인할 수도 있습니다.
참조 :
답변
단일 git 저장소에 대해 무료 인 deplybot ( http://deploybot.com/ ) 서비스를 사용할 수 있습니다 .
배포 모드 섹션에서 “자동”을 선택하여 배포를 자동화 할 수 있습니다.
지금 사용하고 있습니다. 매우 쉽고 유용합니다.
답변
Github로 파일을 버전 관리 하시겠습니까? 이 스크립트 (및 관련 GitHub / AWS 구성)는 새 커밋을 리포지토리로 가져와 S3 버킷에 동기화합니다.