2014-04-21 3 views
2

다른 프로젝트에서 재사용 할 수있는 일부 클래스에서 작업 중입니다. 끝나면 github에 첫 번째 릴리스를 추가 할 것입니다. 프로젝트는 아무 것도하지 않고 클래스 만 유용합니다. 나는 전체 Xcode 프로젝트를 커밋하고 싶지 않다. 저는 사람들이 프로젝트에서 복사 할 것이기 때문에 제가 작업하고있는 수업을 커밋하고 싶습니다. 전체 프로젝트를 푸시하면 클래스의 사용자에게 프로젝트를 파고 클래스를 수동으로 복사하고 나머지는 삭제하도록 요청해야합니다. 더러운거야.Xcode 로컬 폴더 안에있는 Git 저장소

그래서 해결책을 찾았습니다.

  1. 나는 일반 코코아 프로젝트를 만들었습니다.
  2. 프로젝트 내부에서 폴더를 만들었습니다. MyClasses를 가정 해 봅시다.
  3. 해당 폴더에 클래스 파일을 추가했습니다.
  4. 복사하지 않고 참조로 Xcode 프로젝트에 해당 폴더를 추가했습니다.
  5. 그런 다음 명령 줄에서 해당 폴더 내에 git init을 만들고 모든 파일을 추가 한 다음 첫 번째 커밋을 작성했습니다.

지금까지는 그렇게 좋았습니다. 저장소를 관리하기 위해 Xcode에서 제공하는 인터페이스로 작업 중이며 해당 폴더에만있는 git 저장소를 인식합니다.

내 질문은 미래에 충돌이 발생합니까? Xcode는 이러한 방식으로 작동 할 준비가되어 있습니까? 누군가 이미 전에 이것을했는지 궁금합니다. 이 방법으로 저장소에만 저장소 전용을 할당하고 Xcode, 펜촉, plists 등과 관련된 모든 파일을 제외 할 수 있습니다.

다음과 같이 질문을 확장합니다. 동일한 Xcode 프로젝트 내에 여러 개의 리포지토리를 포함 할 수 있습니까? 나는 아직 그것을 시도하지 않았다.

+0

프로젝트와 작업 영역을 구별하는 데 도움이 될 수 있습니다. – matt

답변

0

그래서 올바르게 이해했다면 git을 사용하여 특정 Objective-C 소스 파일을 배포하고 Xcode 내에서 작업 할 수 있도록 자신의 로컬 Xcode 프로젝트에 포함 시키려고합니다.

그런 경우라면 정확하게 설명한대로 수행하십시오. 즉 :

  1. 저장 한 디렉토리 내의 모든 소스 파일 (배포 할 것을)
  2. 은 해당 지역의 Xcode 프로젝트에 그 디렉토리를 추가하고 그 디렉토리
  3. 내부에 자식의 repo를 초기화한다 적절한 소스 파일이 빌드 대상에 추가되었는지 확인하십시오.

이렇게 많은 개별 리포지토리를 추가 할 수 있습니다.

앞으로이 오류가 발생합니까?

아니요, 구성으로 인해 충돌이 발생해서는 안됩니다.

공동 작업자가있는 경우 인 경우 인 경우 하나의주의 사항이 있습니다. * .xcodeproj 파일을 공유하지 않으므로 다른 사람이 파일 구조를 수정하거나 파일을 추가 또는 제거 할 때 빌드 설정 및 파일 참조가 업데이트되지 않습니다.원격지에서 파일을 가져올 때마다 로컬 프로젝트에서 수동으로 파일 참조를 업데이트해야 할 필요가있을 것입니다. 그렇지 않으면 빌드 오류가 발생할 수 있습니다.

Xcode는 이러한 방식으로 작동 할 준비가되어 있습니까?

제 경험상 네, 정상적으로 작동합니다. Xcode 인터페이스를 사용하여 git를 관리하는 경향이있는 경우 Xcode는 소스 코드에서 "체크 아웃"한 repos에 대한 파일 만 인식합니다. 내가 본 것을 기반으로 Xcode는 현재 프로젝트 디렉토리 또는 폴더 또는 그룹 참조에서 찾은 모든 리포지토리에 대해이 작업을 자동으로 수행합니다.

또한 파일이 두 개 이상의 repos에 동시에 속하면 문제가됩니다. Xcode는 그 중 하나와 만 상호 작용할 것이고 선택할 방법이 있는지 모르겠습니다. 리포지토리를 중첩하지 않으면 쉽게 피할 수 있어야합니다.

Xcode 5에서는 "소스 제어"메뉴의 "작업 복사본"에서 어떤 git repos가 체크 아웃되어 있는지 확인할 수 있습니다. 또한 Xcode는 파일 인스펙터의 "소스 제어"에서 각 파일이 속한 repo를 알려줍니다.

동일한 Xcode 프로젝트 내에 여러 리포지토리가있을 수 있습니까?

예. 다른 곳과 마찬가지로 Xcode 프로젝트 디렉토리 아래에 여러 개의 리포지토리를 나란히 배치 할 수 있습니다. 사실, 파일 시스템의 다른 곳에 리포지토리를 쉽게 넣고 참조를 통해 프로젝트에 추가 할 수 있습니다. Git Repos/소스 파일을 모두이 디렉토리에 저장하지 않아도된다.

희망이 있습니다.