자동 - git to ftp




힘내 푸시 프로덕션(FTP) (10)

GIT 저장소를 프로덕션 (FTP 서버)으로 푸시하는 쉬운 방법이 있는지 알고 싶습니다. 감사


FTPloy를 시도 할 수 있습니다 ...

https://ftploy.com

"GitHub 또는 Bitbucket으로 변경 사항을 푸시하십시오."

"서버에 자동으로 변경 사항 배포"

무료로 사용해 볼 수있는 프로젝트가 하나 있습니다. 나는 현재 작은 PHP 웹 사이트를 사용하고 있으며 꽤 잘 작동합니다. 사이트의 몇 가지 버그이지만 현재 진행중인 프로젝트이므로 적어도 작업 중입니다.


GUI를 원한다면 SourceTree를 사용하면 위에서 언급 한 git-ftp를 사용하는 사용자 정의 액션을 쉽게 설정할 수 있습니다. Git 저장소를 FTP푸시 할 때의 설정 (Mac의 경우)에 대한 간단한 설명


Ruby 스크립트가 있습니다. Ruby git-FTP 또는 SSH통해 배포 합니다. FTP 또는 SSH를 통해 git repo에서 변경된 파일 만 업로드합니다.

다른 대답에서 언급했듯이, 비슷한 일을하는 Python git-ftp.py 스크립트 가 있습니다.

그리고 여기에 git-ftp 의 쉘 스크립트 버전이 있습니다.

또한 git-deploy 라는 Ruby gem 프로젝트가 있습니다.이 프로젝트를 사용하면 git push 명령을 사용하여 git remote를 통해 Heroku 및 Azure 서비스와 동일한 방식으로 사용자 정의 배포를 설정할 수 있습니다. 이 경우 FTP를 통해 배포하기 위해 사용자 지정 방법을 작성해야 할 수도 있습니다. 프로덕션 서버에 대한 SSH 액세스가 있다고 가정합니다.


나는 이것을 알아 내기 위해 많은 어려움을 겪고있었습니다. 나는 이것을 여러 소스 ( git-ftpINSTALL , git-ftp , git-ftpIssue , git-ftpPUSH )에서 쉽게 얻을 수있는 방법을 알아 냈다. 참고로 읽을 수는 있지만 아래의 단계별 절차를 언급 했으므로 필요하지 않습니다.

제일 먼저 : MAC OS에서 brew를 사용하여 git 및 curl 설치

brew install git
brew install curl --with-ssl --with-libssh2
brew install git-ftp

다음 명령을 실행하십시오.

git clone https://github.com/git-ftp/git-ftp.git
cd git-ftp
git tag # see available tags
git checkout <tag> # checkout the latest tag by replacing <tag>
sudo make install

git을 사용하여 업데이트

git pull
git tag # see available tags
git checkout <tag> # checkout the latest tag by replacing <tag>
sudo make install

설정

git config git-ftp.url YourFtpServerName.Net
git config git-ftp.user FtpUserName
git config git-ftp.password YourPassword

모든 파일 업로드

git ftp init

또는 파일이 이미있는 경우

git ftp catchup

작업 및 배포

echo "Hello " >> index.txt
git commit application/libraries/index.txt -m "I love "
git ftp push

오류 가있는 경우 : pathspec 'index.txt'가 git에 알려진 파일과 일치하지 않습니다 . 파일이 아직 준비되지 않았으므로 파일을 추가하고 커밋을 시도하십시오.

git add application/libraries/index.txt
git commit application/libraries/index.txt -m "I love "

희망이 도움이됩니다.


엄밀히 말하자면 그건 자식이 아닙니다. 그러나 소스가 컴파일이나 처리가 필요하지 않은 것, 예를 들어 HTML과 자바 스크립트 파일 등으로 구성된 웹 사이트라고하면 웹 서버에 복제본을 가지고 서버에서 git pull 을 사용하여 보관할 수 있습니다 그것은 최신입니다. 참고, 나는 귀하의 웹 서버가 자식 디렉토리 등을 숨길 것입니다. 보안 문제의 시작일뿐입니다.

어떤 종류의 컴파일이나 처리가 있다면 Ant , Maven , BuildR , SBT 등을 BuildR .



프로덕션 환경에 코드를 추가하는 경우 RPM 패키지와 같은 "설치 프로그램"을 사용하여 코드를 설치하는 것이 좋습니다. 그렇게하면 버전 스탬프가 찍히고 설치 코드를 사용하여 프로덕션 코드에 대한 업데이트를 지원할 수 있습니다. Git은 실제로 프로덕션 설치를 지원하도록 설계되지 않았으며 코드 자체의 변경 사항을 추적하기위한 것입니다.

어떤 경우 든 .RPM (또는 EXE 또는 기타)을 빌드하면 프로덕션 시스템에 FTP로 전송하고 다른 패키지처럼 설치할 수 있습니다.



Deployhq.com 을 매력과 같이 사용할 수 있습니다. 저장소 및 FTP 계정을 설정하는 것만이 필요합니다.

현재 다음과 같은 버전 제어 시스템이 있습니다.

힘내, 서브 버전, 의욕적.

리포지토리 호스팅

  • GitHub
  • 비트 버켓
  • GitLab
  • 코드베이스


FTPloy 는 FTP를 통해 원격 서버에 커밋을 전송하는 훌륭한 도구입니다. 이것은 명령 행에서 작동하며 PHP로 작성되며 (심지어 하위 모듈의 변경 사항도 감지합니다).

github.com/banago/PHPloy

git commit ...
phploy -s staging
phploy -s production

끝난!

(면책 조항 : 잠시 후 사용하여 몇 가지 코드 패치 및 개선 사항을 제공하여 Windows 호환 가능으로 만들었습니다.)





push