2012-05-21 4 views
5

많은 문제가있을 것 같네요. 타사 라이브러리를 사용하고 있습니다. 당연히 공급 업체가 새 릴리스를 게시 할 때 헤더 파일 등을 프로젝트에서 업데이트해야합니다. 그러나 XCode는 대체 기능이 없으므로 삭제해야합니다! 파일을 복사 한 다음 새 파일을 프로젝트에 다시 복사하십시오. 그러나, 내가 그 일을했기 때문에 나는 헤더 파일을 가지고있다. 추가 된 상태와 리소스 번들 (SDK의 이미지와 사운드 파일이있는 디렉토리)에 계속 남아있다. 전체 프로젝트를 커밋하고 싶습니다.XCode/Git, 소스 제어에서 업데이트 된 파일의 상태가 업데이트되지 않습니다.

어떤 생각, 어떻게 그 엉망을 정리할 수 있습니까? 프로젝트에서 파일을 대체하는 기능이 반드시 있어야한다는 것을 알게되면서 Apple에 강화 요청을 제출했습니다.

+0

좋아, 존재하지 않는 파일 문제를 추가하여 해결했다. 빈 디렉토리 2 개 (이제는 더 이상 삭제할 수 없지만, 파일을 추가해야 할 것 같습니까?) – renesteg

+0

- git 프로젝트에서 출력되는 내용은 무엇인가요? terminal ==> git status - sekcond : permisson issue try chmod - 새 lib를 체크인하기 전에 지점을 만드셨기를 바랍니다. – glenn

답변

1

오, 그래, 전복 문제가 ... 내가 최후의 수단으로하는 일 : 로컬 파일을 삭제하고 최신 버전을 가져온 다음 변경 사항을 다시 적용합니다. 나를 위해이 문제는 종종 폴더를 추가하거나 삭제함으로써 발생합니다. 따라서 먼저 관련 파일을 서버에 추가/삭제합니다 (일반적으로이 경우 제 3 자 앱을 사용합니다 (예 : gitbox 또는 SourceTree). 다시 동기화를 시도합니다.

일반적으로 하나의 프로젝트 (프로젝트에 라이브러리 체크 아웃)에 여러 git repo를 가질 수 있어야하지만 개인적으로 그렇게 좋아하지는 않습니다. 대신 다른 디렉토리에 두 번째 repo가 ​​있고이 파일을 링크 된 참조 (새 파일을 추가 할 때 선택할 수있는 옵션 ->"copy items into destinations group folder" 선택 취소)로 추가합니다. 라이브러리가 변경 될 때마다 자동으로 프로젝트에 적용됩니다. 단점은 업데이트가 있는지 자동으로 확인하지 않는다는 것입니다. 다른면에서는 새 라이브러리보다 오래된 라이브러리를 사용하는 것이 더 안전 할 것입니다 (라이브러리를 업데이트 할 때마다 이론적으로 전체 응용 프로그램에서 버그를 테스트했습니다).

문제로 돌아갑니다. 많은 경우에 새로운 저장소 구조를 만드는 것이 더 쉽습니다. 현재 상태를 백업하고 repo (로컬 또는 원격)를 삭제하십시오. 그런 다음 파일을 저장소로 다시 복사하고 동기화하십시오. 거의 모든 경우를 고쳐야합니다. (... 그리고 내가 다르게 해결하려고 할 때마다, 나는 위에서 설명한 것처럼 전체 repo를 마침내 재구성하기 위해 여러 가지 방법을 시도하는 데 많은 시간을 낭비하게된다 .-) .-

+0

마지막 커밋을 지우려면 저장소를 삭제하지 않는 것이 좋습니다. 이 주제에 대한 Chris의 좋은 소식 : http://goo.gl/yCU2N 팁 : 제 3 자 제품이나 주요 변경 사항을 가져 오거나 업데이트 할 때마다. 시작할 때 repo에 새 분기를 만듭니다. - git branch myHotFix - git checkout -b myHotFix 이제 아무것도 재생하고 변경할 수 있습니다 - 좋은 점이 있다면 - 병합하기 - 분기를 삭제하지 않은 경우 -> 새로 만들고 다시 시도하십시오. – glenn

+0

thx 지금까지. 내게는 SVN (브랜치가 없을 때까지)을 사용하는 동안 귀화되어 왔지만, git를 사용하더라도 그런 식으로 해결할 수없는 몇 가지 문제가 있었다. 때로는 사용할 수없는 repo 상태가되어 서버 연결을 설정할 수도 없습니다. 어쩌면 내가 모호하다고 말했을 것입니다 : 나는 마지막 기회로서 만 repo를 삭제하는 것을 권장하지 않습니다! –

+0

먼저 사과하지 않으셔서 죄송합니다. 노트북은 Apple 병원에있었습니다 .- 답변 : Holy moly, 나는 단지 몇 개의 파일을 추가하고 싶습니다. 사실, 그 대답은 이미 3 단락 (감사합니다 relikd 어쨌든)은 자식에 대한 내 자신감 수준을 추가하지 않습니다. 전문 도구 (그들은 수천/수천 달러의 비용이 들었습니다.)는 프로젝트의 기존 파일을 바꾸는 데 아무런 문제가 없으며 간단히 새 버전을 만듭니다. 제 3 자 구성 요소를 업데이트하고 싶기 때문에 분기를 만들면됩니까? 흠, 올바른 접근 방식이 아닌 것 같습니다. 어쨌든, 모두에게 다시 한번 감사드립니다. – renesteg

관련 문제