2016-09-14 7 views
0

미리 사과드립니다. 나는 아주 새로운 git이고 나는 단지 git에 저장된 프로젝트를 인수했다.디렉토리 구조가 변경되었을 때 git에서 병합 또는 리베이스하는 방법은 무엇입니까?

여기 내 상황입니다. 제가 인수 한 프로젝트에는 조직에서 표준이 아닌 디렉토리 구조가 있습니다.

새로운 dir 구조로 새 분기를 만들었으므로 git mv를 사용했습니다. 지점 이름을 표준화해야합니다. 이미 표준 이름이 있지만 잘못된 dir 구조가있는 분기가 있습니다.

나는 "develop"라는 브랜치를 만들고 있는데, 우리가 원하는 dir 구조를 가지고있다. 나는 대부분 병합을 이해하지만 아직 rebase를 이해하지 못합니다. 기본적으로 다른 비표준 분기를 "개발"분기와 똑같이 만들 필요가 있습니다.

병합 구조 변경으로 인해 병합이 작동하지 않습니다. 이미 시도했습니다.

다른 브랜치를 "개발"과 똑같이 만드는 방법은 무엇입니까?

업데이트 : 내가 원격으로 밀어하지 않았다 나는만큼 연습 할 수있는 실현

. 이 명령은 (이것은을 나타냅니다 당신이

형식으로 파일을 이동하려는 디렉토리에

CD :

이전에, 나는 디렉토리 구조 ("테스트"분기를) 변경 가지 중 하나를 고른 현재 변경하려는 디렉토리 구조)

git mv OldDir1/OldDir2/*.

공지 사항 OldDir2/*

커밋 푸시 후 공간 다음 끝 부분에 기간. 참고 : 이렇게하면 각 파일의 기록이 삭제됩니다.

이전에 "개발"지점에도이 작업을 수행했습니다.

이제 두 가지 (개발, 테스트)에는 새로운 dir 구조가 있습니다. 그런 다음

:

자식 체크 아웃 개발 자식 체크 아웃 테스트 자식이 시점에서

을 개발 리베이스, 그것은 podfile 및 podfile.lock 파일을 확인할 수 없습니다.

Sourcetree는 pull (2) 및 push (미리 커밋 수)를 보여 줬습니다.

몇 가지 시도를하고 pourfile을 개발하는 데 sourcetree를 사용할 수 없었으므로 테스트 분기에서 podfile을 가져오고 싶어했습니다.

언급 한 두 pod 파일 인 풀 (2)을 해결할 때까지 푸시되지 않습니다.

필자는 마침내 방금 두 개의 pod 파일을 가져 와서 구식 인 경우에도 커밋/푸시했습니다.

나는 그들을 바꿀 것이다.

이것은 내가 원하는 것을 달성했으며, 최근에 "테스트"가 "개발 중"으로 변경되었는지 확인하기 위해 여러 파일을 확인했습니다.

답변

1

이것은 잘 정의되고 잘 작동하는 프로젝트를 위해 원하는 것이 아니지만 단순히 master 분기를 체크 아웃하고 "개발"분기에 수행 한 내용을 복제 할 수 있습니다.

"master"브랜치에 "개발"을 병합 할 수없는 이유는 정말로 모르겠지만 충돌을 병합 한 경우 해당 브랜치를 "개발"브랜치로 가져 와서 해결합니다 (아마도 엄청난 양의) 갈등이 생기고 마스터에게 다시 병합하는 것이 해결책이 될 수 있습니다. 원점으로 아무 것도 밀지 않고 로컬로 모든 작업을 수행 할 수 있으므로 원점으로 이동하지 않는 한 "안전"합니다. 구조가 당신이 원하는 것이라고 확신하는 경우 "원점"으로 이동하면 해당 프로젝트에서 작업하는 다른 모든 사람들이 변경 내용을 볼 수 있습니다.