나는 다음과 같은 역사를 가지고 가정 이전에 주목받지 못했습니다. 내가 먼저 모든 권리 장소에 고정합니다 : 그것은 같은 feature
와 함께 할 일이 많이하지를 가지고 모든 버그 후이기 때문에,리셋, 체크 아웃, 체리 - 픽, 체크 아웃, 리베이스 조합을 수행하는 더 좋은 방법이 있습니까? 포인트 <code>E</code>에서</p> <pre><code>A ─▶ B -- master ╲ ◀ C ─▶ D ─▶ E -- feature </code></pre> <p>, 나는 엄격하게 <code>feature</code>와는 아무 말하지 않았다 코드의 작은 버그에 stuble하지만,하지만,이 시점에서 중요한 될 일 :
A ─▶ B -- master
╲
◀
C ─▶ D ─▶ E ─▶ F -- feature
⋮
fix bug
하지만, 이건 정말 내가 원하는 역사하지 않습니다 - 이 수정은 master
에 있어야합니다 (전용 bugfix 분기가 아닌 경우).
git checkout master
git cherry-pick F
A ─▶ B ─▶ F' -- master
╲
◀
C ─▶ D ─▶ E ─▶ F -- feature
좋아, 좋아,하지만 난 정말이 그것을 떠날 수 없다 (또는 I 수 있습니까?) - F
지금은 아직 병합 할 활성 지점에 두 번 발생합니다. 나는
git checkout feature
git reset --hard HEAD^
A ─▶ B ─▶ F' -- master
╲
◀
C ─▶ D ─▶ E -- feature
을 할 수 있었던 master
로 다시 feature
을 병합 할 때 F'
대기,하지만 난 그것을 필요로하는 버그를 수정 한 바로 사용할 필요가 없기 때문에 그런 짓을하지 않습니다 - feature
에 작업을. 그래서 나는 다음
git rebase master
A ─▶ B ─▶ F' -- master
╲
◀
C' ─▶ D' ─▶ E' -- feature
이 본질적으로 하나가 역사에 커밋 이동하는 목표를 달성 복잡하고 다소 오류가 발생하기 쉬운 방법을 느낌으로 마무리합니다.
이 작업을 수행하는 데 더 엄격한 방법이 있습니까?
그런 식으로 작업을 수행 할 때 리셋을 건너 뛸 수 있습니다. 리베이스하면 F 커밋이 이미 존재하고 건너 뜁니다. 그 외의 다른 방법은 없습니다. – 1615903
^- rebit 후에 중복 커밋을 삭제할만큼 똑똑하기 때문에 재설정이 필요하지 않습니다. 좋은 화살 btw –