2017-01-27 1 views
1

서로 다른 파일 시스템을 가진 여러 분기를 올바르게 구성하는 방법은 무엇입니까? 여기 힘내 - 서로 다른 파일 시스템을 가진 여러 분기

상황입니다 - 내가 두 개의 지점을 가지고


:

    년 전에 만들어진 프로젝트 파일과
  • 현재 마스터
  • 새 프로젝트 파일을 개발 현재 (완전히 다른 프레임 워크) 곧 개발 될 순간이다.


문제가되는 것은 brach가 예를 들어, .gitignore 파일에 의해 무시되는 폴더 "storage"를 가지고 있다는 것입니다. 다른 브랜치는이 폴더를 가지고 있지 않으므로 .gitignore 파일에도없는 이유입니다. 개발에서 마스터 브래치까지 체크 아웃 할 때이 "스토리지"폴더가 갑자기 다른 브랜치에 나타나서 전혀 없어야합니다.

각 프로젝트의 파일/폴더를 서버로 보내지 말고 파일/폴더를 각 분기마다 지사를 거치지 않고 지정해야하는 방법은 무엇입니까?

이 폴더를 프로젝트의 .gitignore 파일에 추가하여이 폴더를 추가함으로써이 문제를 해결할 수있었습니다.이 폴더는 존재하지 않아야합니다 (즉, 변경되지 않은 파일이 커밋 된 것을 볼 수 없습니다). 그러나 나는 추측합니다. 왜 거기에 있지 않아야 할 부분을 제외시킬 수 있을까요?

PHPStorm IDE를 사용하면 더욱 복잡해집니다. PHPStorm은 각 프로젝트 (이 경우에는 각 브랜치)에서 특정 프로젝트에 대한 모든 구성 및 내역 파일이있는 ".idea"폴더를 만듭니다. 분명히, 나는 각 저장소가 각 프로젝트마다 자신의 .idea 폴더를 가지고 있기 때문에이 폴더를 원격 저장소에 보내지 않고 싶다. 그래서 나는 .gitignore 파일에서 그것을 제외시켰다. 그것의 자신의 ".idea"폴더). 다른 브랜치를 체크 아웃 할 때,이 폴더는 그 브랜치의 .idea 폴더를 파손시키기 때문에 일어나지 않아야하는 브랜치로 이동합니다. 모든 설정이 엉망입니다.

왜 두 개의 다른 프로젝트 파일 시스템이 두 개의 분기가 아닌 두 개의 프로젝트입니까? - 같은 프로젝트이기 때문에. 동일한 시각적 디자인, 기능을 제공하고 많은 추가 기능을 추가하는 완전히 새로운 버전입니다. 이것을 다른 프로젝트로 부르는 것은 의미가 없습니다. 그것은 다른 버전이지만 동일한 프로젝트입니다.

답변

2

.gitignore가있는 파일/폴더를 무시하면 Git에서 무시됩니다. 그들은 추적되지 않고 엉망이되지 않으며, 단순히 무시됩니다. 추가, 수정 또는 삭제되지 않지만 완전히 무시됩니다. 이들은 무시되므로 어떤 분기에도 할당되지 않습니다.

귀하의 경우 다른 지점에 대해 여러 작업 트리를 갖는 것이 가장 좋습니다. worktree는 작업 할 실제 파일을 체크 아웃하는 디렉토리입니다. git worktree을 사용하면 하나의 저장소에 여러 작업 트리를 추가 할 수 있으므로 다른 분기를 다른 작업 디렉토리에 체크 아웃 할 수 있습니다.

당신은 당신이 지점 b에 대한 .idea을 무시 한 지점 b에 대한 지점 a 및 폴더 b에 대한 .idea을 무시 한 지점 a에 대한 폴더 a을 가질 수 이쪽으로.

실제로 대부분 .idea에있는 파일 (예 : workspace.xml은 아니지만 다른 모든 파일은 생각할 수 있습니다)은 개발자와 관련이 없지만 프로젝트마다 다릅니다. 따라서 workspace.xml을 제외한 모든 항목은 버전 컨트롤에 체크인 할 수 있도록되어 있으므로 다른 분기로 전환하면이 분기에 대한 올바른 IDE 메타 데이터가 제공되어 .gitignore/.idea/workspace.xml이 추가 된 것입니다. 파일에는 비공유 실행 구성, 열린 파일, 도구 창 레이아웃, 창 위치 등과 같은 개발자의 특수한 내용이 들어 있습니다. 그래서 이것은 당신이 고려해야 할 다른 해결책 일 것입니다.

+0

올바르게 처리하는 방법이 들립니다. 어떤 이유로이 문제에 대한 답을 검색하는 동안 작업 트리에 대해 전혀 알지 못했습니다. 나는 그것들을 사용하려고 노력할 것이고, 그것이 나의 문제를 해결할 수 있다면 나는 이것을 정답으로 받아 들일 것이다. –

관련 문제