프로젝트에 변경 사항을 적용하려면 push-to-deploy 메소드를 사용하고 있습니다. 내가했던 방법은 다음과 같이이다 : myproject라는 /를 포함한 원격 위치 (예 :/var에/www /에서 myproject라는)에새 파일을 원격 저장소로 푸시하지 않겠습니다.
- 설정 현재 프로젝트에 대한 로컬 자식 저장소 커밋 파일
- 복사 전체 프로젝트 디렉토리. git directory
- 원격 서버에서이 프로젝트에 대해
git config receive.denyCurrentBranch false
을 설정하십시오 (이 설정을 true로 설정하면 오류가 발생 함). dev에서 푸시 할 수 있습니다. 그렇지 않으면 오류 메시지가 나타납니다. - 원격 서버의 업데이트 후크를 주로
git reset HEAD
및git checkout
으로 설정합니다. 그러면 원격 디렉토리의 이전 버전을 새로 푸시 된 버전으로 덮어 씁니다. - 새 원격 자식 디렉터리를 로컬에 추가하십시오.
- 원격 저장소에 변경 사항을 추가, 커밋 및 푸시합니다. 원격 프로젝트 파일은 최신 버전이어야합니다.
이 작동하고 파일에 대한 변경 내역은 원격 서버의 체크 아웃 된 분기에 나타납니다. 필자는 원격 저장소 하나를이 방법으로 만 보유하고 있습니다. 이전에는 맨발 저장소가 있었고 업데이트 후크를 사용하여 프로젝트를 라이브 디렉토리로 가져갔습니다 (리모콘에 2 개의 저장소가 생성되고 원격 저장소가 생성됨)
어쨌든이 기능이 작동하지 않는 곳은 로컬 개발 환경에서 새 파일을 만들고 변경 내용을 추가, 커밋 및 푸시합니다. 나는 어떤 오류도 내지 않는다. 또한, 다시 시도하면 모든 것이 최신이라고 알려줍니다. 그러나 새 파일이 원격 서버에 없습니다. 왜?
새 파일이 로컬 자식에게 커밋되지 않고 원격으로 푸시되거나 체크 아웃되지 않는지 확실하지 않습니다. 이것에 대한 이유가 있습니까? 어딘가에 몇 가지 옵션을 지정해야합니까? 내 지역의 repo에 개발에서 파일을 체크 아웃하려고하면
UPDATE는
괜찮아. 그래서 파일이 거기에 위탁 된 것 같습니다. 그래서 원격으로 밀고 나서 리셋/체크 아웃하는 사이의 어떤 점에서 나는 올바르게 설정하지 않았다.
새 파일을 만들 때 dev 브랜치에 있어야 했습니까? 어쨌든 베어 레포를 사용하는 것이 좋습니다. 그것은 두 개의 repos를 포함하지 않습니다 : http://stackoverflow.com/a/15930178/6309. – VonC