2011-08-22 6 views
1

여기에 초보자가 있습니다. Git - 원격 저장소로 푸시

mkdir hello_master 
cd hello_master 
touch test.txt 
git init 
git add test.txt 
git commit test.txt 

다음 저장소

git clone hello_master hello_local 
    # made some changes to test.txt and committed it 

어떻게 그것을 hello_master에 밀어 않습니다를 복제 :

는 새 폴더를 만들어? 내가 git push를하면, hello_master으로 푸시 할 수 없다는 불평이 나온다. 하지만 hello_master으로 이동하면 모든 변경 사항을 가져와 hello_local에서 가져올 수 있습니다.

내가 뭘 잘못하고 있니?

답변

2

Nothing. 당신은 그냥 베어가 아닌 저장소에 푸시 할 수 없습니다. 자식은 체크 아웃 된 파일을 어떻게 처리해야할지 모르기 때문입니다.

+0

좋습니다. 마스터로 푸시하려면 어떻게해야합니까? 벌거 벗은 다른 저장소를 만드시겠습니까? –

+0

푸시 할 장소가 필요하다면, 맨손 저장소를 만드십시오. 그렇지 않으면 잡아 당기는 것이 좋습니다. –

0

많은 정보를 제공하지는 않았지만 '비 베어 레포 (non-bare repo)'문제가 있다고 가정합니다.
Git을 사용하면 누군가가이 브랜치에서 일할 수 있고 자신의 작업을 망칠 수 있기 때문에 베어 메이트가 아닌 저장소 (작업 복사본이있는 저장소)를 활성 분기로 푸시 할 수 없습니다.
해결책 1은 메인 저장소를 맨손으로 만드는 것입니다.
해결책 2는 hello_master를 다른 지점으로 체크 아웃하는 것입니다. [3] (git 도움말에서) : 'receive.denyCurrentBranch'구성 변수를 원격 저장소에서 '무시'또는 '경고'로 설정하여 현재 분기로 푸시 할 수 있습니다. 그러나 다른 방식으로 푸시 한 내용과 일치하도록 작업 트리를 업데이트 할 것을 권장하지 않는 한이 방법은 권장되지 않습니다.

1

에만 베어 레포로 푸시하지 않는 것이 좋습니다. 비 베어 레포로 푸시 할 수있는 방법은 다음과 같습니다.

1) 오류 메시지는 receive.denyCurrentBranch 설정을 경고 또는 무시하도록 설정하는 방법에 대해 설명합니다.

2) 저장소에서 새 분기 (예 : 임시)를 체크 아웃합니다. 이제 마스터 또는 다른 지점을 푸시 할 수 있습니다. 난 당신이 찾고있는 해답을 의심

+0

좋아요,이 git init --bare와 같은 다른 저장소를 만들었습니다. 이걸로 밀려 났고, 주인님은 맨발의 레포에서 끌어낼 수있었습니다. 이것을 올바른 방법일까요? –

0

은 여기에 있습니다 : https://git.wiki.kernel.org/index.php/GitFaq#How_would_I_use_.22git_push.22_to_sync_out_of_a_host_that_I_cannot_pull_from.3F

하지만 간단한에서 , 당신은 원격 측에 지점 틱 - 일을 만들 필요가 직접 밀어 수 없습니다. git push remote-box :/path/to/git/repo master : refs/remotes/로컬 박스 이름/마스터

그런 다음 "원격 박스"에 로그인하면 다음과 같이 다른 컴퓨터에서 푸시 한 변경 사항을 병합 할 수 있습니다. git 병합 이름 - 로컬 박스/마스터

관련 문제