2014-03-14 3 views
0

전 힘차 합창입니다. 중복되는 질문 일 수도 있지만 직접 답변을 찾을 수는 없습니다. 전용 서버 (시험용 : xxx.199.209.177) 로컬 컴퓨터에 프로젝트가 있으므로 지금 내 변경 내용을 커밋하고 원격 서버에 푸시하려고합니다.GIT : 로컬에서 서버로 데이터를 푸시 할 수 없습니다.

다음은 제가 설정 한 몇 가지 단계입니다. 나는 원격 호스트로 돌아올 때

cd /var/www/html/ 
$ mkdir test 
$ cd test 
$ mkdir .git 
$ cd .git 
$ git --bare init 

그리고 내 로컬 컴퓨터에 원격 서버에서 1)

$ cd /srv/www/html/ 
$ git clone [email protected]:/var/www/html/test/.git 
    warning: You appear to have cloned an empty repository. 
$ cd test 
// make some change here 
$ git status 
$ git add . 
$ git commit -m "test" 
$ git push origin master 
Counting objects: 3, done. 
Writing objects: 100% (3/3), 217 bytes, done. 
Total 3 (delta 0), reused 0 (delta 0) 
To [email protected]:/var/www/html/test/.git 
* [new branch]  master -> master] 

그러나 여기 아무것도

가 없습니다

$ cd test 
$ ls -l 
total 0 

은 내가 생각 몇 가지 중요한 단계가 누락되었습니다.

감사합니다.

답변

1

저장소가 아닌 저장소는 저장소가 .git에 저장되어 있고 그 외부에 작업 트리가 있습니다.

실제 저장소가있는 저장소가 하나만 있고 여기에 작업 트리가 없습니다.이 연결되어 있습니다. 따라서 맨 처음 저장소에있는 파일을 직접 볼 수는 없습니다. 다음과 같이

그것은 일반적으로 작동합니다

server$ git init --bare /remote/path/test.git 
client$ cd /local/path 
client$ git clone [email protected]:/remote/path/test.git 
client$ ls -la test 

을이 경우 하나 개 /remote/path/test.git에서 서버의 저장소 및 /local/path/test/.git에서 클라이언트에 다른 저장소와 /local/path/test에서 클라이언트에 하나의 작업 트리가 있습니다. 서버에 맨 저장소의 작업 트리가 없습니다.


git을 사용하여 www- 서버를 동기화하려는 것 같습니다. 이 방법으로는 작동하지 않습니다. 베어 리포지토리에는 파일을 보여주는 작업 트리가 없으며 비 베어 저장소의 경우 밀어 넣기 후에 작업 트리가 변경되지 않습니다.(해당 분기가 체크 아웃 된 경우 사실 그것은 푸시를 거부합니다.)

당신은 아마 세 가지 다른 저장소 원하는 : 당신이 당신의 파일을 변경

  • 로컬 저장소를.
  • 파일을 밀어 넣는 중심 베어 리포 지토리
  • 중앙 서버에서 가져 오는 데 사용되는 www가 아닌 ​​다른 저장소가 있습니다.

실제로 서버 리포지토리를 자동으로 업데이트하려면 중앙 리포지토리 (각 수신 된 푸시 후)에서 www 리포지토리로 변경하고 변경 사항을 가져와야합니다.

0

1)이 단계를 필요가 없습니다

mkdir .git 
$ cd .git 

git --bare init 명령을 -a 옵션을 숨길 수 없기 때문에, 필요한 .git 폴더 및 파일

2) 대신 ls -lls -la 실행을 설정 것이다 시작하는 항목.

0

사용 된 리모컨은 기본 저장소로 초기화됩니다. 즉, .git 폴더에있는 모든 git 관련 정보를 저장하지만 작업 디렉토리는 포함하지 않습니다.

일반적으로 푸시/풀/복제 작업에만 사용되어야하므로 원격 리포지토리에 일반적으로 사용됩니다.

희망 사항을 이해하시기 바랍니다. 원격 서버에서 git log을 실행하여 변경 사항을 확인할 수 있습니다. 그러면 모든 최신 커밋이 표시됩니다.

관련 문제