2013-07-11 4 views
0

지금까지 우리 팀은 동일한 프로젝트 소스 인 사본 1 부 (라이브 및 테스트 용)를 사용했습니다. 어떤 경우에는 실수로 인해 라이브 버전에 개발 용 사본에 적용되지 않은 수정 사항이 있음을 의미했습니다.두 개의 추적되지 않은 폴더를 힘내로 합치십시오

이제 저는 Git 저장소 하나에 병합하고 프로젝트 소스로 엄격한/현명한 버전 제어를 시작하겠습니다. 나는이 솔루션은 매우 handraulic에 의해 것입니다 알고 있지만 :

하나의 Git 저장소에 소스의 두 개의 별도의 디렉토리를 병합하는 가장 좋은 방법은 어느 쪽도 상대방의 특정 지점을 나타낼 때, 무엇입니까?

+0

이 자식 지점에 대한 약간의 지식이있는 사람으로 나에게 설명해주십시오 있지만, 프로젝트에 대한 지식이 없으므로 프로젝트의 라이브 및 테스트 버전을 git에서 분기로 모델링해서는 안됩니다. – mnagel

+0

그들이 될 것입니다, 이것은 @Thomas가 병합 한 후 신선한 test-dev 브랜치를 만들 수있는 대답으로 이루어집니다. – deed02392

답변

2

난 그냥이 과정을 시도하고, 그것을 작동하는 것 같다 :

git init . 
cp -r /dir/one/* . 
git add . 
git ci -m'Commit directory one' 

그래서 지금 우리는 지점 master에 디렉토리를 가지고있다. 공유하지 않는 새로운 지점을 만드는 두 가지에 대해 동일한 작업을 수행 내역 :

git checkout --orphan two 
git rm -rf . 
cp -r /dir/two/* 
git add . 
git ci -m'Commit directory two' 

그럼 그냥 평소와 같이 병합 :

git checkout master 
git merge two 
+0

''git'에 익숙하지 않은데, 여러 명령을 위해 어느 디렉토리를 사용해야한다고 말 할 수 있습니까? "우리는 master 디렉토리에 하나의 디렉토리를 가지고 있습니다"라고 말하면서 init를하고 CWD에 디렉토리 하나를 복사합니다. 이것은 우리가 전혀 실제 디렉토리 하나에서 자식의 REPOS을 다른 디렉토리를 생성하지했습니다 의미 ... – deed02392

+0

올바른. 두 dir을 저장소로 복사합니다. 이러한 모든 명령은 당신의 자식의 repo이되는 초기에 비어있는 디렉토리에 실행됩니다. – Thomas

+0

덕분에, 내 질문에 찬성 투표하십시오. – deed02392

관련 문제