2014-02-13 2 views
0

나는 SourceForge에 강요하려고하는 자식 프로젝트가있다. 내 로컬 저장소의 원본은 백업 기능을 제공하는 공유 파일 시스템 저장소입니다.git push to remote 그리고 모든 히스토리를 잃어라.

결국 SF를 다른 리모컨으로 추가 할 때 해당 버전의 최신 코드를 해당 코드의 시작 코드로 푸시하고 싶을뿐 아니라 쓰레기/민감한 내용이 포함 된 이전 커밋을 모두 포함하지 않으려 고합니다./당황스러운 코드.

내 질문은 그 질문에 대한 바로 역사의 일부를 떠날 것을 제외하고, this one 유사하다 - 나는 역사의 모든을 떠나고 싶어하고 최신가 프로젝트 코드의 시작점이 될 것을 약속해야 SF. 중요하게도이 작업을 수행 한 결과 원점과 SF가 다를지라도 계속 업스트림으로 이동해야합니다.

이것이 가능합니까? 덧붙여서 나는 이클립스 ie를 통해 이것을하고있다. 이짓.

업데이트

답변 지금까지 내가 달성하기 위해 노력하고있어 정확히 명확히 도움이 있지만, 내 원래의 질문이 명확하고 있어야합니다.

게시 된 버전을 나타내는 SF로 푸시 된 통합 된 커밋을 원합니다. 이것은 내가하고 싶은 것입니다 :

[master] A--B--C--D--E--F--G--H--I... --> push to origin (private) 
       \   \ 
[public]   V1----------V2...  --> push to public remote repo 

@michas's 대답은 지점 공개에 V1 날을 시작합니다,하지만 난 이후의 버전이 커밋으로이 지점을 확장을 계속하는 방법을 알아낼 수 없습니다. rebase를 실험했지만 원하는 결과를 얻을 수 없습니다.

답변

0

@michas가 제공 한 대답으로 인해 통합 기록이있는 지점을 계속 유지 관리 할 수 ​​없었습니다. git merge --squash를 사용해야했다. 결국 나왔던 계획은 described here과 비슷했습니다.

그냥 정리하여 질문에 대답을 upvoted있다.

0

새 레포에서 시작하려는 것 같습니다. 이전 repo를 삭제하거나 이름을 바꾸고 새로운 것을 만들면 어떨까요? 그런 다음 모든 파일을 복사하고 커밋 한 다음 푸시합니다.

+0

저는 SourceForge에서 로컬 또는 원산지 기록을 잃고 싶지 않습니다. – ceperman

0

글쎄,이 커밋은 전체 "쓰레기"기록을 포함하기 때문에 현재 커밋을 푸시 할 수 없습니다.

그러나 동일한 내용이지만 기록이없는 새 커밋을 만들 수 있습니다.

git checkout --orphan fresh # create a new branch called `fresh` without any history 
git commit     # add your work as a new commit 
git diff fresh master  # the both branches should contain the same content (assuming you original branch was called `master`) 
git log      # verify the current branch does not contain any history 
git push sf fresh   # push that branch 
git push sf fresh:master  # (or you might want to call that branch master on sf)