2013-07-23 4 views
5

커밋되지 않은 코드 숨김을 저장 한 상태로 두 번 이상 사무실에서 퇴장했습니다.다른 컴퓨터에서 git stash를 계속 사용하는 가장 유용한 방법은 무엇입니까?

동일한 기능을 계속 사용하려면 호스트에 SSH하고 일회용 분기를 만들고 숨김을 커밋하고 개발 분기점에 새 분기를 푸시해야했습니다.

이제 "git stash를 다른 로컬 저장소로 복사/내보내기"하기위한 더 깨끗하고 실용적인 솔루션이 있는지 궁금합니다. 내 사무실 컴퓨터에서 로컬 저장소를 SCP'ing하는 것을 이미 배제했습니다. 왜냐하면 내 랩톱에서도 작업을 진행할 수 있기 때문입니다.

P.S는 : 내 질문에 당신은 패치를 만들기 위해 git stash show를 사용할 수있는이 one

답변

2

의 지속과 같은 당신의 가정의 컴퓨터에서 다음 git apply을.

+0

단순함을 위해서 +1 – ziu

1

패치를 저장하여 직접 보낼 수 있습니다.

git diff > patchfile 

이 그럼 당신은 ... 칼 Norum 지적

git apply --stat patchfile 
+2

'format-patch'를 올바르게 이해했다면 변경 사항이 이미 적용되었다고 가정합니다. 대신 커밋되지 않은 변경 사항에 대한 질문이 아닙니까? – AlexE

+1

또한 내 이해입니다. 내가 커밋되지 않은 & 숨겨진 변경 사항에 대해서만 이야기하고 있음을 확인합니다. – ziu

+0

해결할 것입니다. 감사. – alex

0

으로 그것을 적용 할 수 git는 패치를 만드는 데 사용할 수 있습니다. 그러나이 명령은 조금 까다 롭습니다. 당신은 (쉘은 인용 부호로 숨 h의 이름을 바꿈을해야 할 수도 있습니다) 패치를 만들

git diff [email protected]{0}^ [email protected]{0} > patch

를 호출해야합니다. 이것은 은신처의 부모와 stash의 모든 차이점에 대한 패치를 만듭니다.

그런 다음 다른 컴퓨터에, 당신은

git apply patch

+0

'git stash show -u'를 사용하는 것과 같지 않습니까? – ziu

+0

나는 정말로 따라갈 수없는 토론에서, 나는 그것이 다르다고 들었다. 본질적으로,'git stash show'는 커밋을 병합으로 취급하기 때문에 실제로 병합됩니다. 제안 된 솔루션은 분명히 더 적합한 것들을 수행합니다. 불행히도, 나는 오히려 그 기술적 인 차이점에 너무 익숙하지 않습니다. 나는 당신의 목적 (사무실에서 : 은신처, 은신처에서 패치 만들기, 집에서는 패치 및 계속 작업)을 위해 솔루션이 동일해야한다고 생각합니다. 나는 확실하지 않다. – AlexE

+0

그것에 대해 질문을 할 수있는 것처럼 보입니다. – ziu

1

숨김 커밋의 특별한 형식으로 저장하여 패치를 적용 할 수 있고, 그래서 는 자식 객체 데이터베이스에서 사용할 수입니다. 그러나 커밋에 대한 참조는 일반적으로 페칭에 사용할 수있는 네임 스페이스 외부에 있습니다.

당신은 소스 저장소에서 다음을 실행하여 가져 오는에 대한 가장 최근의 마리화나를 사용할 수 있도록 수 :

git symbolic-ref refs/heads/exported-stash refs/stash 

이 다른 지점처럼 가져올 수 있습니다 exported-stash라는 이름의 브랜치를 생성합니다. 원하는 경우 다른 이름을 사용할 수 있지만 stash은 사용하지 마십시오. 이름에 대한 실제 경고문과 모호한 경고가 표시 될 수 있습니다.

git stash apply origin/exported-stash 

(그것은 원격 origin로부터 페치라고 가정)는 원격에서 인출 한 후에 그와 다른 저장소에 적용될 수있다.

을 변경 한 후에 당신은 심지어 로컬 사람들을 숨길 수와 함께 원점으로 다시 업데이트 마리화나를 밀어 :

git push origin +stash:exported-stash 

+가 강제 푸시에이 켜졌지만 실제로 안전이 경우이다. 스 ashes시 목록이 참조 로그로 저장되기 때문에 원점에있는 숨김의 이전 버전은 [email protected]{1}으로 바로 이동합니다.

+0

git-fu 능력 +1 – ziu