2013-02-07 2 views
1

수은의 경우 hg copy 파일을 사용할 수 있으며 이전 분기의 원본 파일을 변경하고 현재 분기에 병합하면 파일의 원본과 복사본이 모두에 병합됩니다.git : 이름 바꾸기와 같이 사본을 병합 할 수 있습니까?

아주 잘 병합 할 때 자식이 이름을 처리 할 수 ​​있다는 것을 알고 있습니다. 파일 originalfile의 이름을 newfile으로 변경하면 분기에서 originalfile으로 변경하고 해당 분기를 병합하면 originalfile의 변경 사항이 newfile에 적용됩니다.

내가 할 수없는 것은 사본을 처리하는 것입니다. 힘내는 복사를 감지 할 수 있지만, 복사originalfile ~ newfile과 동일한 병합을 수행하면 복사본이 아닌 originalfile 만 변경됩니다.

이와 관련하여 수은 같은 수있는 방법은 있습니까?

+0

"이전 분기의 파일 변경". 힘내 말하면, 이것은 복사 작업의 조상 인 커밋을 수정하는 것처럼 들리므로, "정시에 돌아 왔기"때문에 복사본을 변경하고 복사하기 전에 원본을 변경했기 때문에 소리가납니다. 옳은? (나는 수은에 익숙하지 않다.) – chepner

+0

원본 파일은 'master'에 있으며, 'git checkout -b somebranch'을 수행하고 복사, 커밋 및 'git checkout master'로 이동하고 원본 파일을 변경하고 마스터를 일부 지점에 합류 시키십시오. 계속되는 개정은 없습니다. – user37078

+1

이것은 * fork * 파일이므로 파일 * copy *가 아닙니다. 다른 이름으로 파일을 12 개 복사하면 복사본을 변경하더라도 원래 파일을 바꿀 때 'git'하면 모든 파일을 최신 상태로 유지할 수 있다고 생각하는 것 같습니다. 유용 할 수도있는 시나리오가 있지만'git'는 그런 방식으로 작업하도록 설계되지 않았습니다. – twalberg

답변

0

병합은 분기별로 수행됩니다. 파일 사본이 다른 브랜치에 있기 때문에, Git은 병합 목적으로 다른 파일로 취급합니다. (한 번에 하나의 분기에만 병합하십시오.)

+0

브랜치에서 파일의 이름을 변경하거나 이동해도 이름이 바뀐 파일이 동일한 파일로 표시되므로 git는 병합에 문제가 없습니다. 따라서 지점 자체와는 아무런 관련이 없습니다. 그것은 복사본이 이동을 다루는 것과 같은 방식으로 취급되기를 바랍니다. – user37078

관련 문제