2012-09-16 3 views
1

최근 버전 제어를 위해 Git을 사용하는 프로젝트 작업을 시작했습니다. 나는 두 가지 결함, Defect1Defect2을 수정해야합니다. Defect1Defect2의 수정 사항은 각각 File1File2으로 변경해야합니다. 이 두 파일은 서로 관련이 없습니다.별도의 git 브랜치에서 두 개의 관련없는 파일 작업하기

별도의 Git 지점에있는 각 결함에 대해 작업하고 싶습니다. 나는 두 개의 브랜치, fix_Defect1fix_Defect2을 만들고, 독립적으로 작업하고 싶습니다. 수정 프로그램은 복잡하기 때문에 다른 수정 프로그램으로 전환하기 전에 하나의 수정 프로그램을 완료하고 커밋 할 수 없습니다. fix_Defect1에서 fix_Defect2으로 전환하면 File1에 대한 변경 사항도 표시된다는 것을 알았습니다. 이 일이 발생하지 않도록하는 방법이 있습니까?

Git 도움말에서 어떤 방법으로도 알 수 없습니다. 그래서 나는 git work with multiple branches을 찾았고 Git and working on multiple branchesUsing git with multiple branches at once을 발견했습니다.이 질문들은 제 질문과는 다소 다릅니 다만 다름 없습니다.

분기마다 저장소마다 여러 복사본을 별도의 디렉터리에 복제 할 수 있지만 디스크 공간 낭비와 함께 Git 분기의 모든 기능을 누락 한 것처럼 보입니다. 이 시나리오를 처리하기위한 좋은 접근 방식을 제안 해 주시겠습니까?

답변

3

문제는 작업 디렉토리 (예 : file1file2)의 파일을 변경 중이지만 변경 사항을 커밋하거나 숨기지 않으므로 발생합니다.

물론
git add file1 file2 ;# add whichever ones you've fixed 
git commit ;# commit the work in progress 
git checkout fix_Defect2 ;# now checkout the other branch 

, 부엌 싱크대 커밋, 발전 가능성이 깨진 코드에서 작업을 포함하는 그들, 당신의 역사에 특히 잘되지 않습니다 : 가장 좋은 방법은 당신이 전환 나뭇 가지처럼 느낄 때 변경 내용을 커밋하는 것입니다. 나중에 언제든지 git rebase을 사용하여 기록을 정리할 수 있습니다. 자세한 내용은 this answer을 참조하거나 뒤에 나오는 철학에 대해서는 this answer을 참조하십시오. 당신이 당신의 일을 저지를 생각을 좋아하지 않는 경우

마지막으로, 당신은 또한 같은 결과 같은 것을 얻을 수 git stash를 사용할 수 있습니다

git stash ;# when you're ready to switch 
git checkout fix_Defect2 ;# work on this branch for a while 
git commit -A ;# be sure to commit your work on 'fix_Defect2' 
git checkout fix_Defect1 ;# checkout the original branch 
git stash pop ;# reapply the work you stashed from the working directory 

나는 일반적으로 보관 한 솔루션을 사용하지 않는 것이 좋습니다. 숨어있는 기계는 굉장히 견고하지도 않으며, 두 가지로 똑같이 복잡한 지형지 ​​물을 가지지 않고 핫픽스를 필요로하는 상황에 맞게 설계되었습니다.

자세한 내용은 git-scm 문서의 '파일 상태 수명주기'다이어그램을 확인하십시오.

+0

나는 당신이 말했듯이'커밋 '을 시도했는데, 실제로 작동합니다. 어쩌면 CVS에 대한 내 경험으로 인해 코드가 준비되지 않았을 때 (심지어 로컬 커밋인데도) 커밋하는 것이 이상하다는 것을 발견했습니다. 이것은 이제 나에게 분명합니다. 이 유용한 답변을 주셔서 감사합니다. –

+1

@ap. 도와 줄 수있어서 기뻐. git의 원칙은 동일하다는 것을 명심하십시오. 커밋은 잘 설계되고, 지능적으로 정리되어야하며, 유용하게 명령되어야합니다. 'rebase'와 같은 내용은 사후에 역사를 재구성하기가 쉽지 않습니다. 일반적으로 필자가 제작 한 지형지 ​​물은 모든 컴퓨터가 분리되어있는 한 문제가되지 않는 "올바른 결과를 얻기"전에 2-3 번의 개정판을 거칩니다. – Christopher

관련 문제