2017-10-25 2 views
0

다른 변경 사항 중에서도 코드 줄이 삭제 된 지점 A가 있습니다.병합의 일부로 삭제 된 코드 다시 추가

분기 A가 데모로 병합되었습니다. 이 코드 줄은 다시 데모에 추가해야합니다.

그래서 지점 A에 코드를 다시 추가하고 변경 사항을 적용합니다. 그러나 지점 A를 다시 데모로 병합하면 코드 줄이 다시 데모에 추가되지 않습니다.

브랜치 A에는 삭제 된 코드를 다시 입력하지 않도록 변경된 행의 기록이 없다는 사실과 관련이 있다고 생각합니다. 지점 A를 병합하는 과정에서 삭제 된 코드를 데모에 다시 추가하려면 어떻게합니까?

답변

-1

수동으로 편집하고 복사본을 저장 한 다음 코드가있는 지점에서 다른 지점 사용 로그에 붙여 넣기를 다시 커밋해야합니다.

1

설명하는 동작이 발생하지 않아야합니다. 분기에 파일을 추가하고 다시 병합하는 것은 올바른 절차입니다.

힘내는 당신이 코드를 "다시 소개"하고 있다는 것을 모르고 있거나 신경 쓰지 않습니다. git 파일을 추가하면 그 자체가 변경됩니다. 따라서 동일한 이름과 내용을 가진 파일이 이전에 삭제되었거나 분기에서 수정되지 않았거나 다른 사실이 중요하지 않습니다. 실제로 존재하지 않는 수많은 개념을 도입하고 git의 관점을 복잡하게 만듭니다.

당신은
O --- x --- x --- x <--(master) 
\ 
    A --- B --- C --- D <--(branch) 

을했고 어쩌면 Afoo/*을 삭제. 당신은
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) 

Efoo/*에서 파일을 생성 할 수있는 커밋 추가 할 수 있습니다. 당신이 master이 병합 경우

O --- x -- x --- x -- M --- M2 <--(master) 
\     / /
    A --- B --- C --- D --- E <--(branch) 

병합베이스 D입니다. D, EM 만 검사하여 M2을 생성합니다. Mfoo/*에서 아무 것도하지 않으므로 Efoo/*에 파일을 생성하지만 M2은 파일을 가져옵니다. D 전의 기록은 중요하지 않습니다.

이것은 많은 사용자를 대상으로하는 수많은 테스트에서 작동하는 문서화 된 동작이므로 작업 내용을 다시 한 번 확인하고 설명대로 다시 추가하고 병합하는 것이 좋습니다.

관련 문제