누구든지 이것을하는 방법을 알고 있습니까? 지금까지 Google을 통해 유용한 정보를 찾지 못했습니다.
로컬 리포지토리를 설정하고 git pushS3에 게시하는 데 사용하고 싶습니다.이 아이디어는 자산에 대한 로컬 버전 제어가 있지만 S3의 원격 스토리지입니다.
이 작업을 수행 할 수 있으며, 그렇다면 어떻게합니까?
누구든지 이것을하는 방법을 알고 있습니까? 지금까지 Google을 통해 유용한 정보를 찾지 못했습니다.
로컬 리포지토리를 설정하고 git pushS3에 게시하는 데 사용하고 싶습니다.이 아이디어는 자산에 대한 로컬 버전 제어가 있지만 S3의 원격 스토리지입니다.
이 작업을 수행 할 수 있으며, 그렇다면 어떻게합니까?
s3cmd sync …않습니까?
답변:
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에서 읽기 / 쓰기 액세스 가능해야합니다.
The request signature we calculated does not match the signature you provided. Check your key and signing method하려고 하면 오류가 발생합니다 jgit push origin master. 내가 어떻게 할 수 있는지 아십니까?
post-receive하여 GIT_WORK_TREE. 자세한 내용은 여기 를 참조하십시오. 나는 이것을 아주 잘 작동하게 만들었다 s3fs. 시작하는 데 도움을 주셔서 감사합니다.
Dandelion은 Git 리포지토리를 S3 / FTP / SFTP와 동기화 상태로 유지하는 또 다른 CLI 도구입니다. http://github.com/scttnlsn/dandelion
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
github 로컬 리포지토리 / 디렉터리에서 이름mygithub 을 Amazon S3 버킷 이름으로 미러링mygithubbkp
$ ./mc mirror mygithub mys3/mygithubbkp
면책 조항 : 나는 Minio에서 일합니다
AWS CLI 및 Git (후크 포함)을 사용하여이 작업을 수행 할 수도 있습니다. Windows 10에서 작동하는지 확인했습니다. Linux / Mac에서 작동해야합니다.
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/
myproject디렉토리 로 cd 하고 베어 리포지토리를 업스트림으로 추가하고 s3예를 들어 이름을 지정합니다 .git remote add s3 path/to/bare/directory/myproject.git
참고 : 베어 디렉토리 경로에 상대 경로를 사용할 수 있습니다.
s3변경 사항을 S3 버킷에 동기화하려는 경우 변경 사항을 업스트림으로 푸시합니다 .단일 git 저장소에 대해 무료 인 deplybot ( http://deploybot.com/ ) 서비스를 사용할 수 있습니다 .
배포 모드 섹션에서 "자동"을 선택하여 배포를 자동화 할 수 있습니다.
지금 사용하고 있습니다. 매우 쉽고 유용합니다.
Github로 파일을 버전 관리 하시겠습니까? 이 스크립트 (및 관련 GitHub / AWS 구성)는 새 커밋을 리포지토리로 가져와 S3 버킷에 동기화합니다.
aws 자격 증명으로 사용자 디렉터리에 .jgit 파일을 저장하면 s3와 함께 git을 사용할 수 있습니다.
다음은 git URL이 어떻게 생겼는지입니다.
amazon-s3://.jgit@mybucket/myproject.git
당신은 당신이하는 모든 일을 할 수 git와를 jgit.
여기에서 전체 설정 가이드를 확인하세요.
https://metamug.com/article/jgit-host-git-repository-on-s3.html
s3fs실행 가능한 해결책 이라고 믿습니다 .