これは、あなたが望んでいないコードをすでに持っているブランチを修正することはありません(その方法については下記を参照してください)が、あるブランチを引っ張り、それをきれいにしたい「先読み」の起源/いくつかの分岐の)その後、単に:
git checkout some-branch # where some-branch can be replaced by any other branch
git branch base-branch -D # where base-branch is the one with the squashed commits
git checkout -b base-branch origin/base-branch # recreating branch with correct commits
注:すべて注2
それらの間& &を置くことによって、これらを組み合わせることができます:フロリアンはコメントでこれを述べたが、誰読み込み回答を探すときにコメントしますか?
注3:汚染されたブランチがある場合は、新しい "ダムブランチ"に基づいて新しいブランチを作成し、チェリーピックだけをコミットすることができます。
例:
git checkout feature-old # some branch with the extra commits
git log # gives commits (write down the id of the ones you want)
git checkout base-branch # after you have already cleaned your local copy of it as above
git checkout -b feature-new # make a new branch for your feature
git cherry-pick asdfasd # where asdfasd is one of the commit ids you want
# repeat previous step for each commit id
git branch feature-old -D # delete the old branch
今特色-新しい余分な(おそらく悪い)なしで、あなたのブランチがコミットです!
彼らは彼らのブランチを削除し、全体のレポを削除しなくても、あまりにもそれを再作成することができます: '[フォースGitリポジトリのgitのチェックアウトのマスター&& gitのブランチ-Dテスト&& gitのチェックアウト-bテスト起源/ test' – Florian
可能な重複にしますプルでローカルファイルを上書きする](http://stackoverflow.com/questions/1125968/force-git-to-overwrite-local-files-on-pull) – gpoo