2011-04-08 10 views
1

내 랩톱에 git 리포지토리가 설정되어 있고 엄지 드라이브에 복제본을 만들었습니다. 푸시 오류를 무시하기 위해 원격 저장소 (썸 드라이브)를 설정했습니다. 저장소의 내용을 원하는대로 드라이브에 푸시 할 수 있습니다 (예 : git 로그에 랩톱에서 작성한 커밋이 표시됨). 그러나 파일 자체를 repo 변경과 함께 푸시하고 싶습니다. 아무도 이것을 달성하는 방법을 알고 있습니까?파일을 원격 git 저장소에 푸시

이것은 Linux에서 사용하기위한 것입니다. 추가 정보가 필요하면 그냥 물어보십시오.

+0

필자는 파일을 thumbdrive에 푸시 할 수 있으며 파일을 thumbdrive로 푸시하는 방법을 묻습니다. – Darhuuk

+0

왜 그냥 썸 드라이브로 끌지 않니? –

답변

2

하지만 난 REPO와 함께 파일 자신을 밀어 싶습니다 당신이 여기 무슨 뜻인지 확인

하지 않은 변경.

당신은 결국 당신의 엄지 드라이브에 bare repository를 작성 했습니까? 그렇다면 체크 아웃 된 파일이 없음을 의미합니다.

그러나 당신은 당신의 파일을 내보내거나 단순히 엄지 드라이브에 두 번째, 비 노출 된 클론을 만들 git archive를 사용할 수 있습니다.

그리고 어쩌면는 working directory에 관한 문서를 확인하십시오.

0

git checkout master 베어 저장소와 작동하지 않는 경우.

필요에 따라 기본 저장소가 원하는 내용이 아닐 수도 있습니다. 파일의 체크 아웃하지 않고 당신은 아마 표준 자식 저장소로 작업 git clone somePath --bare 내가 베어 저장소를 생성하기 때문에 그 가정거야

이 필요합니다.

  • 만 백업 : 당신은 단지 저장소가 차지하는 공간이 압축 가지고 있고,을 -also-하지 않기 때문에 베어 저장소, 아마 더 여기

    는 사용 사례입니다 작업 복사본에서 공간 . , 저장소를 단순 복제 푸쉬 변경에 찬성 작업 복사본에 어떤 닦아 git reset origin/master를 사용 : 파일에 대한 전체 액세스 권한을 가진

  • 복사, 최신 까지의 모든 시간 일 필요는 없습니다. 파일과

  • 사본이 지속적으로 최신 상태 : 자식 기본적으로 푸시에 작업 복사본을 업데이트하지 않기 때문에, 가장 까다로운 경우입니다. 빠른 검색을 수행했고 언급 된 한 가지 방법은 업데이트 후크 http://jennyandlih.com/pushing-remote-git-working-copy을 사용하는 것입니다. 그것은 당신이 스스로 알아낼 수있는 숨 막혀있는 것들을 탐구하지 않는 한 아마 그 사본에 대한 편집과 푸시의 대체를 허용하지 않을 것입니다.

    간단한 복제를 (비 베어) 만들기 : 당신이해야 할 때

나의 추천, (나는이 모든 시간을), 수동으로 복제를 업데이트합니다. 그런 다음 git branch staginggit checkout staging. 이제는 작업 카피를 가지고 있습니다 만, 변경을 원할 때는 git rebase origin/master에 의해 직접 수동으로 업데이트해야합니다.스테이징에서 마스터로 변경 사항을 전달할 수 있습니다. 저장소에있는 "마스터"브랜치가 변경 사항을 푸는 데 아마 어려움을 겪을 것이며 효과적으로 사용되거나 의존되어서는 안된다는 사실을 명심하십시오.

0

푸시 할 때 파일 자체가 원격 저장소에 나타나길 원한다고 말하는 것 같습니다. 이것은 git의 일반적인 사용은 아니지만 확실히 할 수 있습니다. git을 전송 수단으로 사용하여 웹 사이트를 자동으로 배포하는 사람들이 많습니다.

이렇게하려면 대상 저장소 (.git/hooks/post-update)에 업데이트 후크를 설정해야합니다. 이 같은 트릭을해야합니다 :

#!/bin/sh 
git checkout -f 

실행 파일인지 확인하십시오.

+1

아이디어는 건전하지만 구현에 심각한 버그가 있습니다. [SO 5531309] (http://stackoverflow.com/questions/5531309/reset-hard-on-git-push/5534486#5534486)를 참조하십시오. 작업 트리를 사용하는 GIt 명령을 사용할 후크를 작성하는 경우 작업 트리 자체에 GIT_DIR 및 chdir의 설정을 해제해야합니다. non-bare 저장소에서'GIT_DIR = .'으로 실행하고 cwd를'.git' 디렉토리로 설정하여 실행합니다. 이렇게하면 작업 트리를 사용하는 Git 명령이'.git' 자체를 작업 트리로 처리하게됩니다. 이것은 분명히 원하는 것이 아닙니다 (저장소가 손상 될 수 있습니다). –

+0

@Chris 고마워, 나는 내가 이것을 끝내기까지 계속 마음에두고 노력할 것이다! – crazyscot

관련 문제