2013-02-03 2 views
3

저는 github에 iOS 프로젝트를 설치했습니다. 지난 며칠 동안 저는 대부분의 코드를 리팩터링해야한다는 것을 깨닫기 시작했습니다. 나는 MVC의 많은 기초를 지키지 않는 프로젝트를 만들고 이제 모든 것을 고치고 고치고 싶다.Github, 이전 프로젝트 대신 새로운 프로젝트를 밀어 넣으십시오

주요 문제는 리팩토링이 엄청난 고통이 될만큼 프로젝트가 충분히 크다는 것입니다. 어쨌든 새 프로젝트를 시작할 수 있고 현재 프로젝트가있는 곳 (분명히 일부 주요 설계 변경 사항)에 빌드하고 원본 프로젝트 대신 동일한 지점에 github을 밀어 넣을 수 있습니까? 이것이 명확하지 않으면 알려주십시오.

+0

이전 저장소의 기록을 유지하고 현재 내용을 바꿀 뿐인가? – KevinH

+0

근본적으로 저는 리팩토링을 한 것처럼하지만 실제로는 다시 시작합니다. – Firo

답변

8

나는 당신의 오래된 역사를 지키고 자하는 욕구를 감안할 때 주어진 답변을 약간 확장 할 것입니다. 이 경우 새 저장소를 시작하지 않으려 고합니다. 이전 데이터를 지우고 새 데이터를 추가하기 만하면됩니다. 다음 단계를 통해이 작업을 수행 할 수 있습니다.

  1. 프로젝트 디렉토리의 루트로 cd합니다.
  2. 파일 시스템에서 원하지 않는 것을 모두 제거하십시오. .git/폴더를 그대로 두십시오.. 이것이 저장소의 이전 기록입니다.
  3. 새로운 것을 추가하십시오 (새로운 Xcode 프로젝트, 디렉토리 구조 등).
  4. 커밋 할 준비가되면 git status은 삭제와 추가가 얼마나 많은 파일을 얼마나 많이 가지고 있는지에 달려 있습니다. 괜찮습니다.이 부분은 git add --all .으로 모든 항목에 대해 광범위한 브러시를 사용하는 곳입니다. 이것은 당신의 repo, 삭제, 새로운 추가, 그것 전부에서 모두를 무대로 할 것입니다.
  5. git commit -m "My new beginning".
  6. git push origin myBranch --force

짜잔! 리포지토리가 완전히 완성되어 이전 기록을 유지하는 보너스가 추가됩니다.

+0

고마워요, 그게 내가 알아야 할 모든 것 같아요! – Firo

0

당신은, GitHub의에 당신의 .git/설정에서 새 프로젝트를 만들 새로운 REPO 당신이 할 수있는

[remote "origin"] 
    fetch = +refs/heads/*:refs/remotes/origin/* 
    url = [email protected]:[yourname]/[yournewrepo] 
2

에 URL을 변경할 수 있습니다. 새 프로젝트를 만들고 명령 행 인터페이스 (Windows의 경우 cmd, Linux의 경우 터미널)에 다음 명령을 입력하십시오.

cd /path/to/project 
git remote add origin [email protected]:username/repo.git 
git push origin master --force 

그렇게해야합니다.

+0

내가 이것을 처리하기 전에 확인하는 것. 이것은 현재의 모든 자식 정보 (커밋 포함)를 유지하고 현재 마스터의 위치에 새 프로젝트를 완전히 밀어 넣을 수 있습니까? – Firo

+1

경고로 GitHub 저장소의 기록을 삭제합니다. –

+0

죄송합니다. 이전에이 질문을 놓쳤습니다. 예, GitHub에서 기록을 지울 것입니다. 그러나 오래된 .git 폴더를 복사하면 허용 된 대답이이 새로운 폴더에 기록되는 것처럼 기록을 유지할 수 있습니다. – Demortes

0

가장 쉬운 방법은 .git 파일/폴더를 새 프로젝트에 복사하는 것입니다.

관련 문제