설명하는 동작이 발생하지 않아야합니다. 분기에 파일을 추가하고 다시 병합하는 것은 올바른 절차입니다.
힘내는 당신이 코드를 "다시 소개"하고 있다는 것을 모르고 있거나 신경 쓰지 않습니다. git 파일을 추가하면 그 자체가 변경됩니다. 따라서 동일한 이름과 내용을 가진 파일이 이전에 삭제되었거나 분기에서 수정되지 않았거나 다른 사실이 중요하지 않습니다. 실제로 존재하지 않는 수많은 개념을 도입하고 git의 관점을 복잡하게 만듭니다.
당신은
O --- x --- x --- x <--(master)
\
A --- B --- C --- D <--(branch)
을했고 어쩌면
A
는
foo/*
을 삭제. 당신은
O --- x -- x --- x -- M <--(master)
\ /
A --- B --- C --- D <--(branch)
병합 지금
foo/*
의 삭제는
M
으로 실시 하였다. 이 문제를 해결하려면
branch
O --- x -- x --- x -- M <--(master)
\ /
A --- B --- C --- D --- E <--(branch)
및 E
가 foo/*
에서 파일을 생성 할 수있는 커밋 추가 할 수 있습니다. 당신이 master
이 병합 경우
는
O --- x -- x --- x -- M --- M2 <--(master)
\ / /
A --- B --- C --- D --- E <--(branch)
병합베이스 D
입니다. D
, E
및 M
만 검사하여 M2
을 생성합니다. M
은 foo/*
에서 아무 것도하지 않으므로 E
은 foo/*
에 파일을 생성하지만 M2
은 파일을 가져옵니다. D
전의 기록은 중요하지 않습니다.
이것은 많은 사용자를 대상으로하는 수많은 테스트에서 작동하는 문서화 된 동작이므로 작업 내용을 다시 한 번 확인하고 설명대로 다시 추가하고 병합하는 것이 좋습니다.