이것은 이미 원하지 않는 코드가있는 분기를 수정하지는 않지만 (이를 수행하는 방법은 아래 참조) 분기를 가져 와서 깨끗하게 만들고 싶다면 원산지 / 일부 지점) 다음과 같이하면됩니다.
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
참고 : &&를 넣어서이 모든 것을 결합 할 수 있습니다.
Note2 : Florian은 이것을 주석으로 언급했지만, 답변을 찾을 때 누가 주석을 읽습니까?
참고 3 : 오염 된 가지가있는 경우 새 "덤 지점"을 기반으로 새 가지를 만들 수 있고 체리 픽 (Cherry-pick) 커밋 만 가능합니다.
전의:
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 checkout master && git branch -D test && git checkout -b test origin/test