2013-07-31 2 views
1

구식 FTP 워크 플로우가 끝나고 개발을 완료하는 데 문제가 있습니다 → 준비 → 제작 과정에서 작동합니다. ssh/git을 통해 준비 및 프로덕션 서버에 연결할 수 있습니다.Git 푸시로 파일/디렉토리를 업로드해야합니까?

준비 서버에서 빈 저장소를 만들고 내 로컬 dev 저장소를 푸시하려고했습니다. 이것은 작동하는 것처럼 보였다. 그러나 업로드하려는 파일은 .git 폴더에있는 큰 2GB 파일뿐이었습니다. 내 디렉토리가 업로드되지 않습니다. 그게이게 작동하는 방식인가요, 아니면 제가 잘못하고있는 것인가요? 나는 로컬 프로젝트를 가져 와서 FTP로 사용하는 방식대로 서버에 밀어 넣는 방법을 알아낼 수 없다.

도움을 주시면 감사하겠습니다.

+0

빈 디렉토리를 업로드 할 수 없습니다. – Lucas

+0

몇 가지 발언 : a) git에서 파일을 생성하려고 할 때 (즉, bare 복제본으로 작업하지 않는 경우) 해당 위치에서 당겨서 다른 위치에서 그 위치로 이동하지 않아야합니다. b) 당신의'.git' 폴더가 2 + GB 크기라면, 당신을 행복하게 만들지 않는 방식으로 git를 사용하고있을 가능성이 있습니다. 그 크기의 합법적 인 git repos가 있지만, 흔히 누군가가 git를 악용하고 있으며 모두가 불행 할 것임을 나타냅니다. – mnagel

+2

git은 배포 도구로 사용되지 않습니다. git 대신 전용 배치 도구를 사용하는 것이 좋습니다. – sleske

답변

1

표준 git 푸시는 실제로 푸시 할 리포지토리의 작업 복사본을 업데이트하지 않습니다. 변경 내용이 모두 있으므로 수동으로 작업 복사본을 업데이트 할 때까지 기다려야합니다. 이것은 작업 복사본에서 작업하는 경우를 대비하여 안전을위한 것입니다. 실제로 git pushgit fetch과 반대이며 git pull이 아닙니다. git fetch도 작업 복사본을 업데이트하지 않습니다.

푸시 후 작업 복사본을 업데이트하도록 후크를 설정할 수 있습니다 (원하는 경우).

+0

@mnagel - 내가 로컬로 생성 된 사이트를 배포하고 서버에 모든 것을 푸시하려는 경우 어떻게 푸시 대신 푸시 할 것으로 예상되는지 이해할 수 없습니까? 계란 앞에서 닭고기 같아 보이니? – runawayj

+0

작업 사본을 채우기 위해 사후 수신 (또는 사후 업데이트) 훅에 뭔가를 넣어야합니다. 내 리포지토리에는 다른 곳으로 내보내기가 포함되어 있습니다. –

2

github에 대한 Codeschool의 대화식 강의를 살펴보십시오.

http://try.github.io/levels/1/challenges/1

그것은 물건의 대부분은 당신의 시작

+0

@mnagel - 2 + GB에 미디어 키트/대형 PSD 등이 포함되어 있다고 말합니다. – runawayj

+0

대용량 파일에는 문제가 없어야합니다. 업로드하는 데 조금 더 시간이 걸릴 것입니다. 푸시 할 모든 파일을 추가해야하며,'git add *'를 사용하여 파일을 추가 할 수 있습니다. 'git status'는 현재 추가 된 파일 목록을 반환합니다. 일단 파일을 추가하면 커밋해야합니다. 그런 다음에 만 서버에 변경 사항을 적용 할 수 있습니다. – rzr

0

힘내 매장 전체 큰 바이너리 BLOB 파일에 당신이보고있는 ('팩') 트리를 저지 얻을 설명합니다. 기본적으로 서버는 '베어 (bare)'저장소 만 저장하므로 파일은 실제로 체크 아웃되지 않으며 압축 된 팩 데이터 만 .git 디렉토리에 저장됩니다. 최신 커밋의 체크 아웃 및 최신 버전을 어딘가에 보관하려면 서버에 포스트 커밋 스크립트가 있어야합니다.

+0

FTP를 사용하여 사이트를 배포 한 다음 프로덕션 서버에서 git repo를 만들고 해당 변경 사항에 대해 Git을 사용하는 것이 일반적입니까? – runawayj

관련 문제