2010-07-28 2 views
0

현재 작업중인 코드를 테스트하는 데 사용하는 빌드 시스템이 있습니다. 빌드 스크립트에서 현재 워크 스테이션의 git repo에서 가능한 빨리 코드를 가져오고 싶습니다.내가 자식과 함께 더러운 트리를 가져올 수 있습니까?

수정 된 파일과 함께 origin/master의 변경 사항을 빠르게 가져 오려고합니다.

+0

귀하의 질문은 명확하지 않습니다. 너 정확히 뭘 하려구? 어쩌면'git pull origin master'가 왜 당신을 위해 작동하지 않는지 설명해주십시오. – Daenyth

+0

git pull origin master는 모든 커밋 된 변경 사항을 가져오고 아직 커밋되지 않은 변경 사항은 가져 오지 않습니다. –

답변

2

먼저 커밋 된 변경 사항을 가져온 다음 커밋되지 않은 변경 사항을 가져옵니다.

git pull 
ssh [email protected] bash -c "cd && cd svn && git diff HEAD /home/aulfeldt/svn" | patch -p1 
+0

준비된 파일을 포함 시키려면 색인 대신 HEAD와 비교하십시오. – Cascabel

+0

감사합니다 :) 정말 내 하루가됩니다! –

+0

내 대답에 대한 언급에서 언급 한 제한 외에도이 질문에는 해당 repo에 대한 셸 액세스가 필요합니다. 이는 공유 저장소가 일반적으로 설정되는 방식과 완전히 반대이며, git-shell을 통해서만 액세스 할 수 있습니다. – Cascabel

3

거의 정의에 따르면 수정 된 파일은 추적되지 않습니다. (커밋되지 않은 수정은 잘 커밋되지 않은 것입니다.) 액세스 권한이 있으면 작업 트리를 직접 복사 할 수 있지만, 그렇지 않으면 끌어 오려는 경우 커밋해야합니다. 물론 임시 분기로 커밋 할 수도 있지만, 어떻게 든 커밋되어야합니다.

편집 :이 대답은 인 을 가져 오는 것입니다. OP의 대답처럼 파일을 복사 (또는 diff를 복사)하고 싶다면 그렇게 할 수 있습니다.하지만 결과적으로 원격 작업이 아닌 파일 시스템 액세스가 필요한 작업입니다.

+0

보다 효율적으로 커밋 된 변경 사항을 git로 가져온 다음 그 이후에 diff를 가져옵니다. 그것을 당기기 전에 변화를 저 지르지 않아도됩니다. (제 대답을보십시오) –

+0

@Arthur Ulfeldt : 그것은 당신이 "더 효율적"이라고 말하는 것을 정말로 좌우합니다. 즉, 공개적으로 액세스 가능한 비 베어 저장소가 있어야하고 수정 된 끌어 오기가 올바른 상태에 있는지 알 수 있도록 소유자와 즉각적인 의사 소통을해야한다는 의미입니다. 불안정한, 테스트) 당겨서 당깁니다. 커밋에는 목적이 있습니다. 약속 할 것이고, 당신이 원하는 것이 아닌 것으로 밝혀지면 쉽게 날아갈 수 있습니다. – Cascabel

+1

Oof, downvote? 엄밀히 말하자면, 나의 대답은 정확하다. 비록이 방법으로 git를 피하고 당기는 것이 가능하다하더라도. – Cascabel

관련 문제