문제

나는 a. 이후에 약간의 갈등을 해결해야한다 git pull.

$ git pull
CONFLICT (rename/add): Renamed vignette_generator_mashed.h->vision_problem_8.h in 49423dd0d47abe6d839a783b5517bdfd200a202f. vision_problem_8.h added in HEAD
Added as vision_problem_8.h~HEAD_1 instead
Removed vignette_generator_cross_square.cc
Automatic merge failed; fix conflicts and then commit the result.

그래서 나는 그것을 조금 검색하고 사람들이 사용하는 것을 발견했습니다. git mergetool. 하지만 여기에 내가 얻은 것들이 있습니다.

$ git mergetool
merge tool candidates: meld kdiff3 tkdiff xxdiff meld gvimdiff emerge opendiff emerge vimdiff
No files need merging
$ git mergetool opendiff
merge tool candidates: meld kdiff3 tkdiff xxdiff meld gvimdiff emerge opendiff emerge vimdiff
opendiff: file not found

그래서 내가 뭔가를 설치해야한다는 뜻인가요?

단순히 버전을 원한다면 어떻게해야합니까? git pull 모든 것을 덮어 쓰기 위해?

도움이 되었습니까?

해결책

당신은 이것을 위해기구가 필요하지 않습니다. 수동으로 쉽게 해결할 수 있습니다.

당신의 충돌은 당신의 지역 커밋이 파일을 추가했다는 것입니다. vision_problem_8.h, 원격 커밋도 vignette_generator_mashed.h. 당신이 달리면 ls -l vision_problem_8.h* 당신은 아마도 Git이 당신을 위해 보존 한이 파일의 여러 버전을 볼 수 있습니다. 그들 중 하나는 당신의 것이고 다른 하나는 원격 버전입니다. 상충되는 내용을 해결하기 위해 편집기 또는 원하는 도구를 사용할 수 있습니다. 완료되면 git add 영향을받는 파일과 병합을 완료하기 위해 노력합니다.

원격 커밋의 버전을 사용하려면 제자리에 쓰지 않은 사본을 옮기고 git add 그것.


병합 도구와 관련하여 살펴보십시오 git help mergetool. 기본적으로, 포함 된 각 가능성을 찾을 때까지 각각의 가능성을 실행하거나 명시 적으로 구성한 가능성을 사용하려고합니다.

다른 팁

나는 당신이 당신의 명령 줄에서 "-t"스위치를 잊어 버렸다고 생각합니다. git 도움말 페이지에 따르면 "-t, --tool ="을 나타 내기 때문에 의도 한 바를 만듭니다.

노력하다:

git mergetool -t gvimdiff

물론 당신은 광산 대신 선호하는 병합 도구를 사용할 수 있습니다. meld도 훌륭합니다 ...

프로젝트의 하위 디렉토리에서 병합을 실행하면 GIT가 전체 프로젝트의 병합을 실행합니다. 그러나 Mergetool은 작업 디렉토리 또는 아래에 파일 만 볼 수 있습니다. 따라서이 시나리오가 발생하면 프로젝트의 최상위 디렉토리에서 충돌 해결을 실행하려고합니다.

Git Pull의 버전이 모든 것을 덮어 쓰기를 원한다면 어떻게해야합니까?당신이 원한다면 당신이 사용해야한다면 :

 git fetch
 git reset --hard origin/your-branch-name
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top