2012-12-15 3 views
0

병합 충돌 문제 (Cannot Merge due to conflict with UserInterfaceState.xcuserstate 참조)로 어려움을 겪고 있습니다. 피드백을 바탕으로 git rm을 사용하여 UserInterfaceState.xcuserstate를 제거해야했습니다.project.xcworkspace에서 xcuserdata를 영구적으로 제거하고 커밋되지 않은 변경 사항을 해결하는 방법

상당한 실험을 거친 후 "git rm -rf project.xcworkspace/xcuserdata"를 사용하여 파일을 제거 할 수있었습니다. 그래서 제가 일하고있는 지점에있는 동안, 그것은 즉시 커밋 될 필요가있는 파일로 돌아 왔습니다. 그래서 나는 파일에서 git rm을 다시하고 마스터로 다시 전환했다. 그런 다음 파일에 git rm을 다시 수행했습니다. 작업이 파일을 다시 제거했습니다.

하지만 여전히 붙어 있습니다. 분기를 마스터 분기에 병합하려고 시도하면 커밋되지 않은 변경 사항이 다시 발생합니다. 그래서 나는 변화를 저지르기 위해 간다. 그러나 이번에는 UserInterfaceState.xcuserstate를 커밋 할 파일로 표시하지만 상자는 선택 취소되어 있으므로 확인할 수 없습니다. 그래서 저는 앞으로 나아갈 수 없습니다. 심지어 내 지점으로 다시 전환 할 수 없습니다. UserInterfaceState.xcuserstate 파일은 해당 파일이 "D"상태임을 보여 주며 분명히 삭제되었음을 의미합니다. 'git rm'을 사용하여 project.xcworkspace 아래 xcuserdata를 영구적으로 제거 할 수 있습니까? 다시 저장소에 저장해야합니까? 그렇다면, 어떻게.

도움말 !! 어떤 아이디어?

UPDATE :

난 당신이 지점에서 파일을 삭제 한 경우

Changes to be committed: 
    modified: project.pbxproj 
    modified: [a list of all the files to be merged] 

Unmerged paths: 
    (use "git add/rm <file>..." as appropriate to mark resolution) 
    deleted by us: project.xcworkspace/xcuserdata/[username].xcuserdatad/UserInterfaceState.xcusers‌​tate 
    both modified: ../[projectname]/en.lproj/Localizable.strings 

답변

0

, 왜 당신이 마스터로 분기를 병합 않았나 자식 상태의 결과를 붙여? 그 정도면 충분했을거야.

두 분기에서 파일을 삭제했기 때문에 충돌이 발생할 수 있습니다. 충돌이 해결 될 때까지 다른 지점으로 전환 할 수 없기 때문입니다. 이 파일의 충돌을 해결하려면 삭제 된 것으로 표시된 (D) 커밋을하십시오. 다른 파일이있는 경우 충돌을 해결할 때 새로 추가 된 파일을 건너 뛰지 않는지 확인하십시오.

또한

색인에 다시 추가하려고에서 자식을 방지하기 위해 xcuserdata 파일을 무시하도록 .gitignore에 규칙이 있는지 확인은,이 질문에 대한보고 있습니다 gitignore file for xcode projects

+0

을하지만 그게 문제입니다. 삭제 된 것으로 표시된 경우에도 옆에있는 확인란의 선택이 취소되어 확인할 수 없습니다. 결과적으로 파일 확약이라고 표시된 단추는 회색으로 표시됩니다. .gitignore에 대해서는 xcuserdata, * .xcuserstate 및 project.xcworkspace /가 규칙에 있습니다. 하지만 아무 것도하지 않는 것 같습니다. – JeffB6688

+0

git status 명령을 실행 한 결과를 질문에 추가 할 수 있습니까? – aag

+0

aag, 그 파일을 저지하기 위해 git -commit을 실행할 수있었습니다. 이를 통해 xcode로 병합을 시도 할 수있었습니다. 병합에 실패하여 캡처에 실패했지만 "병합하지 못했습니다 .xcode는 덮어 쓰지 않습니다 ..."와 같은 오류가 발생했습니다. 나는 UserInterfaceState.xcuserstate를 참조하고 있다고 생각한다. 그럼 병합을 종료하고 지점으로 전환하려했습니다. 마스터 브랜치에서 커밋되지 않은 변경으로 인해 실패했습니다. 그런 다음 병합 할 모든 파일이 UserInterfaceState.xcuserstate를 포함하여 – JeffB6688

관련 문제