2012-12-13 16 views
8

Utworzyłem gałąź i wprowadziłem kilka zmian. Wprowadziłem zmiany, a następnie zarchiwizowałem zmiany. Potem przełączyłem się na gałąź główną i próbowałem scalić. Powiedział, że nie dokonałem żadnych zmian. Zrobiłem więc zatwierdzenie w oddziale głównym, aby zobaczyć, o czym mówi. Podano, że istnieje plik o nazwie UserInterfaceState.xcuserstate, który został zmodyfikowany. Więc popełniłem zmianę (nie jestem pewien, co to zmiana). Potem spróbowałem ponownie się połączyć. Następnie otwiera okno scalania i wskazuje, że istnieje konflikt z UserInterfaceState.xcuserstate. Więc wróciłem do oddziału i odkryłem, że ten sam plik musi zostać zatwierdzony. To się nie pojawiło wcześniej. Więc popełniłem to i wróciłem do głównego oddziału. Ponownie próbowałem się połączyć, ale nie mogę z powodu niezatwierdzonych zmian. Rzeczywiście, UserInterfaceState.xcuserstate ponownie wymaga zatwierdzenia. Popełniłem to i próbowałem się połączyć. Ten sam problem z konfliktem. To błędne koło.Nie można scalić z powodu konfliktu z UserInterfaceState.xcuserstate

Co to za plik i jak rozwiązać zgłaszany konflikt. Nie pojawia się w oknie nawigacji mojego projektu. Ponadto nie znajduje się w systemie plików unix. Całkowicie utknąłem. Propozycje? Używam Xcode 4.5.2

Odpowiedz

5

UserInterfaceState.xcuserstate jest gdzie Xcode zapisuje stany GUI, takie jak pozycjach okien, otwartych kart, rozbudowanych węzłów inspektora projektu itp

Wystarczy zmiana rozmiaru okna Xcode spowoduje ten plik zmienić i zostać oznaczony jako zmodyfikowany przez system kontroli źródła. Możesz zmusić system SCM do zignorowania określonych plików, które nie są ważne dla samego projektu.

Git: Git ignore file for Xcode projects
Subversion: SVN ignore pattern with Xcode 4

+0

Gdzie są te pliki, które linki dotyczą: .gitignore i .subversion. Nie są w ~ i linki sugerują. Ponadto, ponieważ te linki odnoszą się do git, czy Xcode używa git dla swojego SCM? – JeffB6688

+0

Obsługuje oba, dlatego opublikowałem oba łącza. Nie wiem, czego używasz. Ale jeśli nie wiesz, prawdopodobnie używasz git, ponieważ jest to funkcja domyślnie używana przez Xcode. Pliki ignorowane znajdują się w folderze domowym (~). Jeśli nie istnieją, musisz je utworzyć. Zauważ, że są to ukryte foldery (zaczynające się od '.'), więc nie widzisz ich normalnie w Finderze. Wypróbuj 'ls -a' na terminalu. – DrummerB

+2

Niestety, nadal nie działa. Tworzę plik .gitignore w moim katalogu domowym zgodnie z powyższym linkiem. Ale za każdym razem, gdy próbuję przełączać gałęzie lub scalać, konsekwentnie chce, żebym zatwierdził zmiany dla pliku UserInterfaceState.xcuserstate przed scaleniem lub przełączeniem gałęzi. Innymi słowy, .gitignore nie ignoruje tego pliku. Próbowałem też ponownie uruchomić xcode. To nie pomogło. Jakieś pomysły, których może mi brakować? – JeffB6688

11

prostu usunąć pliki przy użyciu

git rm --cached * xcuserstate

następnie zrobić lokalny popełnić wybierając .DS_Store z różnego typu wiadomości

odrzucić wszystkie pozostałe zmiany

ciągnąć

Push

zrobić :)

+0

Czy mógłbyś być bardziej precyzyjny, ponieważ nie jestem zaznajomiony z podstawową strukturą katalogów projektu xCode. na przykład Moja aplikacja nazywa się Twoater. - Więc gdzie powinienem napisać pierwsze polecenie, o którym wspomniałeś powyżej? - jak to zrobić lokalną popełnić wybierając .DS_Store - jak mogę odrzucić wszystkie inne zmiany - itd – Guy

+0

więc pracowałem się, jak zrobić pierwszy wiersz i zakończyła w tym: Guys-Air: guy.xcuserdatad facet $ git rm --cached * xcuserstate Twoater.xcodeproj/project.xcworkspace/xcuserdata/guy.xcuserdatad/UserInterfaceState.xcuserstate: potrzebuje scalenia rm 'Twoater.xcodeproj/project.xcworkspace/xcuserdata/guy.xcuserdatad/UserInterfaceState.xcuserstate ' – Guy

+0

Potem próbowałem wykonać lokalne zatwierdzenie: Guys-Air: guy.xcuserdatad guy $ git commit -m' .DS_Store banished! ' U \t Twoater.xcodeproj/xcuserdata/guy.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist Błąd: "Zatwierdź" nie jest możliwe, ponieważ masz niezmielone pliki. podpowiedź: Fix je w drzewie pracy, podpowiedź, a następnie użyć „git add/rm ” jako wskazówka: należy zaznaczyć rozdzielczość i uczynić commit, wskazówkę: czy używać „git commit -a”. śmiertelna: zamykanie z powodu nierozwiązanego konfliktu. – Guy

Powiązane problemy