2012-02-11 3 views
2

두 개의 git 작업 디렉토리가 있습니다. 때로는 잘못된 디렉토리에서 몇 가지 사항을 변경했으며 다른 디렉토리로 이동하려고합니다. 즉, 커밋되지 않은 변경 사항을 한 위치에서 다른 위치로 병합/가져 오려고합니다.커밋되지 않은 변경 사항 풀/병합

bzr에서 --uncommited 옵션을 사용하여 병합을 사용했지만 동등한 옵션을 찾을 수 없었습니다.

답변

4

본질적으로 밀고 당기는 것은 커밋에서 작동하므로, 그렇게 할 방법이 없다고 생각합니다.

그러나 임시 분기 (git checkout -b tmp)를 만들고 다른 저장소 (git pull $OTHER tmp)로 가져온 다음 커밋을 계속하거나 변경 사항을 유지하면서 HEAD를 최신 커밋으로 되돌릴 수 있습니다 작업 트리 (git reset HEAD^)를 만들고 그런 식으로 작업하십시오.

편집 : 아마도 더 중요한 것은 다음과 같습니다. 두 개의 개별 작업 디렉토리를 갖고 싶습니까? 예를 들어서 유용하다는 것을 알 수 있습니다. Mercurial 또는 SVN (저는 바자를 사용하지 않았기 때문에 말할 수는 없습니다),하지만 힘내에서는 일반적으로 브랜치와 은닉을 대신 사용합니다.

+0

이 방법이 효과적입니다. –

+2

그리고 네, 두 개의 디렉토리가 필요합니다. 나는 두 분과에서 적극적으로 일해야합니다. 힘내는 바이너리/빌드 출력과 관련이 없기 때문에 체크 아웃을 사용하면 다른 브랜치로 완전히 전환되지 않습니다 (출력을 그대로 둡니다). 물론, cmake/automake는 적절하게 다시 만들 것이다. 그러나 나는 기다리고 싶지 않다. –

3

낮은 기술 해결책은 git diff을 사용하는 것입니다

$ cd wd_1 
$ (cd ../wd_2 ; git diff -p) | patch -p1 

당신 다른 작업 디렉토리에있는 git reset을 할 수 있습니다.

관련 문제