따라서 다음과 같은 상황이 발생한다고 가정 해 봅시다 (우리 모두가 SourceTree를 사용하고 있음).
- 우리는 모두 원산지 / 개발을 진행하고 있습니다.
- 나는 일주일 동안 휴가를 간다.
- 내 동료는 지난 며칠 동안 현지 개발 지점에 원산지 / 개발을 병합하지 않고 현지에서 일하고 있습니다.
- 그는 밀어 넣기를 시도하고 먼저 병합해야한다는 말을 듣습니다.
- 충돌이 발생하여 병합 후 자동 커밋이 진행되지 않습니다.
- Git이 SVN과 같다고 가정하면 동료는 작업 복사본에서 "새"파일을 버린 다음 병합을 커밋하여 해당 "새"파일을 원산지 / 개발 책임자로부터 삭제합니다.
- 그 개정판에는 몇 주 동안의 개발 작업이 진행됩니다.
- 나는 휴일에서 돌아와서 며칠간의 작업이 누락되었음을 알게됩니다.
우리는 모두 Git을 처음 접했지만 (이 프로젝트를 사용하는 첫 번째 프로젝트), 내가 고 쳤던 것은 다음과 같습니다.
- "develop"를 "develop_old"로 이름을 바꿉니다.
- develop_old를 새 분기 "develop_new"에 병합하십시오.
- 잘못된 병합 전에 develop_new 브랜치를 마지막 커밋으로 재설정하십시오.
- 그 이후로 체리는 각 커밋을 하나씩 선택하여 손으로 갈등을 해결합니다.
- develop_old 및 develop_new를 원래 위치로 푸시하십시오.
이 시점에서 develop_new는 향후 몇 주 동안의 작업을 다시 적용하여 모든 변경 사항의 "좋은"복사본을 원합니다. 또한 "역 커밋"은 병합에 대해 이상한 일을 할 것이라고 가정합니다. 특히 다음 몇 주 분량의 작업이이 작업에 기반을두고 있기 때문에 병합에는 우리 가 원하는 많은 것들이 포함되어 있기 때문에 티.
나는 이것이 다시는 일어나지 않기를 바라고 있지만, 다시 일어나면 더 쉽고 더 나은 방법으로 문제를 해결하고 싶습니다. 해당 병합을 기반으로 저장소에서 많은 작업이 진행된 경우 "나쁜"병합을 실행 취소하는 더 좋은 방법이 있습니까?
git log
다양한 커밋에서 발생한 일에 대한 적절한 주석 이있는 자식 트리의 스크린 샷 (적절하게 편집 됨) 또는 좋아하는 형식 의 출력을 게시 할 수 있습니까? (I는 편집하다 / 주석 것git log --graph --pretty=oneline --abbrev-commit
거기에서 이동)