2012-12-13 2 views
8

브랜치를 생성하고 많은 변경을했습니다. 변경 사항을 커밋 한 다음 변경 사항을 보관했습니다. 그런 다음 마스터 지점으로 전환하여 병합을 시도했습니다. 그것은 커밋되지 않은 변화가 있다고 말했다. 그래서 나는 그것이 무엇에 관해 말하고 있는지를보기 위해 master branch에 커밋을했다. 수정 된 UserInterfaceState.xcuserstate라는 파일이 있다고합니다. 그래서 저는 그 변화를 저지른 것입니다 (변화가 무엇인지 확신 할 수 없습니다). 그런 다음 다시 병합을 시도했습니다. 그런 다음 병합 창을 열고 UserInterfaceState.xcuserstate와 충돌이 있음을 나타냅니다. 그래서 지점으로 돌아가서 같은 파일이 지금 커밋 될 필요가 있다는 것을 알았습니다. 이것은 이전에 나타나지 않았다. 그래서 나는 그것을 저질렀고 주된 지점으로 돌아갔습니다. 다시 커밋을 시도했으나 커밋되지 않은 변경으로 인해 기울어졌습니다. 물론, UserInterfaceState.xcuserstate가 다시 커밋 될 필요가 있습니다. 나는 그것을 저질렀고 병합하려고했다. 갈등과 같은 문제. 그 악순환.UserInterfaceState.xcuserstate와 충돌하여 병합 할 수 없습니다.

이 파일은 무엇이며 신고 된 충돌을 해결하려면 어떻게해야합니까? 그것은 내 프로젝트 탐색 창에 나타나지 않습니다. 게다가 유닉스 파일 시스템에는 없다. 나는 완전히 붙어있다. 제안? 엑스 코드는 프로젝트 관리자의 창 위치, 열린 탭, 노드의 전개와 같은 GUI 상태를 저장합니다 어디 엑스 코드 4.5.2

답변

5

UserInterfaceState.xcuserstate이다 사용하고 등

는 단순히 Xcode의 창 크기를 조정하면이 파일의 원인이됩니다 변경 및 귀하의 소스 제어 시스템에 의해 수정 플래그가 지정됩니다. SCM 시스템이 프로젝트 자체에 중요하지 않은 특정 파일을 무시하도록 할 수 있습니다.

힘내 : Git ignore file for Xcode projects
서브 버전 :

자식 RM을 사용 SVN ignore pattern with Xcode 4

+0

: .gitignore와 .Subversion은 있습니다. 그들은 ~ 안에 있지 않으며 연결은 건의한다. 또한이 링크는 자식을 가리키고 있기 때문에 xcode는 SCM에 자식을 사용합니까? – JeffB6688

+0

두 가지 모두를 지원하는 이유는 두 가지 모두를 지원하기 때문입니다. 네가 뭘 사용하는지 모르겠다. 그러나 둘 중 어느 하나를 모른다면 아마도 Xcode가 기본적으로 사용하는 git을 사용하고있을 것입니다. 무시 파일은 홈 폴더 (~)에 있습니다. 존재하지 않으면 생성해야합니다. 이 폴더는 숨겨진 폴더 ('.'로 시작)이므로 Finder에서 정상적으로 표시되지 않습니다. 터미널에서'ls -a'를 시도하십시오. – DrummerB

+2

아쉽게도 여전히 작동하지 않습니다. 위의 링크에 따라 홈 디렉토리에 .gitignore 파일을 만듭니다. 그러나 분기를 전환하거나 병합 할 때마다 분기를 병합하거나 전환하기 전에 일관되게 UserInterfaceState.xcuserstate 파일의 변경 내용을 커밋해야합니다. 즉, .gitignore는 해당 파일을 무시하지 않고 있습니다. 또한 xcode를 다시 시작하려고했습니다. 그건 도움이되지 않았어. 제가 누락 된 아이디어가 있습니까? – JeffB6688

11

만 제거 파일 --cached * xcuserstate

다음 할 지역 기타 메시지로 된 .DS_Store을 선택 커밋

다른 모든 변경 사항을 무시하십시오.

푸시 : 수행

귀하의 링크를 참조 이러한 파일입니다
+0

기본 xCode 프로젝트 디렉토리 구조에 익숙하지 않으므로 좀 더 정확하게 설명해주십시오. 예 : 내 앱은 Twoater라고합니다. - 그렇다면 위에서 언급 한 첫 번째 명령을 어디서 입력해야합니까? - 나는 다른 모든 변경 폐기 어떻게 - - 등 – Guy

+0

그래서 내가 첫 번째 라인을 수행하는 방법을 근무하고,이 결과 나는 현지 된 .DS_Store 을 선택 커밋해야합니까 방법 : 얘들 아 어 : guy.xcuserdatad를 남자 $의 자식 RM --cached * xcuserstate Twoater.xcodeproj/project.xcworkspace/xcuserdata/guy.xcuserdatad/UserInterfaceState.xcuserstate : 요구 RM은 '병합 Twoater.xcodeproj/project.xcworkspace/xcuserdata/guy.xcuserdatad/UserInterfaceState.xcuserstate ' – Guy

+0

다음 로컬 커밋을 시도 : 남자 - 공기 : guy.xcuserdatad 남자 $ 자식 커밋 - m'.DS_Store 추방! ' U \t Twoater.xcodeproj/xcuserdata/guy.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist 오류 : 파일을 병합 해제했기 때문에 '커밋'할 수 없습니다. 힌트 : 힌트 : 'git add/rm '을 힌트로 사용하여 작업 트리에서 문제를 해결하십시오. 힌트 : 해상도를 표시하고 커밋하기에 적합합니다. 힌트 : 또는 'git commit -a'를 사용하십시오. 치명적 : 해결되지 않은 충돌로 인해 종료됩니다. – Guy

관련 문제