2013-10-22 5 views
1

원격 분기를 로컬 분기에 병합합니다. 병합 후 "그 (것)들에 의해 삭제 된"파일을 얻는다. 즉, 원격 브랜치에서이 파일들은 제거되지만 로컬 브랜치에서 파일을 제거하면 로컬 브랜치가 변경되어 손실됩니다.git의 "deleted by"파일에 대한 로컬 변경 사항을 얻는 방법은 무엇입니까?

파일마다 diff 형식으로 변경하는 방법은 무엇입니까? 내가 알기로 - 내가 잃어버린 것.

+0

단순히 로컬 분기를 새 분기로 변경하여 체크 아웃하지 않는 이유는 무엇입니까? 그렇게하면, 원격으로 병합을 수행 한 다음'git diff merged_branch_name local_changes_branch_name' 명령을 실행하여 다른 브랜치로 되돌릴 수 있습니다 (새롭게 생성 된 브랜치의 변경 사항을 커밋한다는 것을 기억하십시오). – miqid

+0

나는 당신의 요점을 모르겠다. 병합을 확실히하고 싶습니다. 삭제 된 파일의 모든 변경 사항을 저장하지 않을 것입니다. 실제 병합하기 전에 변경 내용을 잃어 버리게 될 것입니다. 그러면 무시할 수도 있고 새로운 장소에서 다시 구현할 수도 있습니다. –

+0

내 제안은 단순히 원하는 diff를 달성하는 한 가지 방법 일뿐입니다. 만약 당신이 diff 전에 어떤 종류의 병합을하지 않는다고 주장하면,'git fetch' (원격 브랜치를 얻지 만 아직 병합하지 않습니다) 그리고 리모컨의 이름을 사용하여'git diff' (즉, _remotes/origin/master_, 단순히 _master_와 같은 것이 아닙니다)를 매개 변수로 사용합니다. 일단 만족되면'git merge'를 실행할 수 있습니다. 그게 도움이 되니? – miqid

답변

-1

Meldmerge을 사용하여 변경 사항을 저장소의 수신 된 내용과 비교할 수 있습니다. 프로젝트 폴더의 복사본을 생성하고 (폴더 1이라고 말하면됩니다.) 새롭게 가져옵니다.

이제 원격 repo에서와 같이 folder1이 최신 코드로 업데이트됩니다. 이제 meld를 사용하여 folder1과 프로젝트 폴더를 비교하십시오. 동일한 위치에서 파일 당 차이점을 명확하게 찾을 수 있으며 클릭 한 번으로 프로젝트 폴더에 추가 할 수 있습니다.

+0

음, CLI는 어떨까요? 또한 매번 복사본을 생성하는 데는 약간의 비용이 듭니다. 레포 가중치 ~ 3Gb입니다. –

+0

각 클립 아닙니다. 사본을 한 번 창조하고 거기에서 지키십시오. 그러나 확실하게 3Gb는 관심사이다. http://meldmerge.org/help/command-line.html을 보아라. 내가 이것을 시험해 보지 않았어도. – Bijendra

+0

발견했다. .hope 도움이된다. http://stackoverflow.com/questions/1331385/how-can-i -see-incoming-commit-in-git/1331459 # 1331459 – Bijendra