2014-02-13 4 views
0

У меня есть проект git, который я собираюсь нажать на SourceForge. Происхождение для моего локального репо - это репозиторий общей файловой системы, который дает мне средство резервного копирования.git push to remote и потерять всю историю

Когда я в конце концов добавляю SF в качестве другого пульта, я просто хочу пропустить последнюю (= версию) фиксацию в качестве исходной базы моего кода в этом репо и не включать все предыдущие коммиты, которые содержат, возможно, мусор/чувствительность/смущающий код.

Мой вопрос похож на this one, за исключением того, что вопрос о оставив только некоторые из истории - я хочу выйти из все истории и есть последний коммит, чтобы стать отправной точкой кода проекта на научная фантастика Важно отметить, что, сделав это, я хочу «нажать вверх», чтобы продолжать работать, хотя происхождение и SF будут разными.

Возможно ли это? Кстати, я делаю это через Eclipse, т.е. EGit.

Update

Мой первоначальный вопрос должен быть яснее, хотя ответы до сих пор помогли прояснить то, что я пытаюсь добиться.

Я хочу, чтобы только консолидированные коммиты переносились в 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.

Просто убирать, поэтому вопрос имеет ответный ответ.

0

Похоже, вы хотите начать с нового репо. Почему бы вам просто не удалить или переименовать свое старое репо и создать совершенно новый. Затем скопируйте все свои файлы, скопируйте их и нажмите.

+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) 
Смежные вопросы