나는 git을 처음 접했고 로컬 저장소에서 마스터 브랜치에서 여러 파일을 삭제했지만 이러한 파일은 원격 마스터 브랜치 내에 존재하는 병합에 대해 어떻게해야할지 궁금했습니다.
git-merge를 수행 한 후 발생한 충돌을 표시합니다.
git gui를 사용하면 로컬 파일이 삭제되고 원격 브랜치 파일에는 내용이 있음을 보여줍니다.
이러한 파일이 충돌하는 것을 어떻게 막을 수 있습니까? git gui를 사용하는 간단한 방법이 있습니까?
많은 감사
나는 git을 처음 접했고 로컬 저장소에서 마스터 브랜치에서 여러 파일을 삭제했지만 이러한 파일은 원격 마스터 브랜치 내에 존재하는 병합에 대해 어떻게해야할지 궁금했습니다.
git-merge를 수행 한 후 발생한 충돌을 표시합니다.
git gui를 사용하면 로컬 파일이 삭제되고 원격 브랜치 파일에는 내용이 있음을 보여줍니다.
이러한 파일이 충돌하는 것을 어떻게 막을 수 있습니까? git gui를 사용하는 간단한 방법이 있습니까?
많은 감사
답변:
적절하다고 판단되면 충돌을 해결해야합니다. 파일이 실제로 제거되어야하고 원본에 해당 변경 사항을 게시 할 경우 다시 제거합니다.
git rm path/to/file
파일이 실제로 추적되어야하는 경우 추가합니다 (작업 트리의 버전은 원본의 버전입니다).
git add path/to/file
둘 중 하나를 수행하여 충돌을 해결 한 후 병합을 커밋합니다.
cd디렉토리 및 git rm *.ext. 귀하의 쉘 (안 힘내) 확장 *.ext일치하는 모든 파일 이름에.
git rm가 없습니다 -i.
git rm *-suffix.ext입니까? 같은 차이. 쉘 와일드 카드 사용 방법을 찾는 데 문제가있는 경우 unix.stackexchange.com에서 문의하십시오. 당신이 원하는 것을 globbing으로 할 수 없다는 사실을 알고 있다면 , 삭제를 선택하기 위해 사용 rm -i하고 따르십시오 git add -u.
-s recursive -X ours왜 그것은에 필요한 여전히 git rm하고 git add?
수락 된 답변에 추가 된 팁으로 "deleted by us" 에서 삭제 된 파일에 적용된 변경 사항을보고 싶은 경우 해당 변경 사항을 다른 곳에 적용 할 수 있습니다.
git diff ...origin/master -- path/to/file
그것이 경우 "그들에 의해 삭제" 시나리오, 당신은 당신이 다른 곳에서 적용 할 수 있도록 변경 사항을보고 싶다, 당신은 사용할 수 있습니다 :
git diff origin/master... -- path/to/file
git diff mybranch@{1}...origin/master -- path/to/file
git diff --base(다른 답변 참조).
가장 높은 평가를받은 답변은 갈등을 해결하는 방법에 중점을 둡니다.
그 전에 로컬로 제거 된 파일에서 원격이 변경된 내용을 알고 싶을 것입니다.
이를 위해 다음을 사용하여 변경 사항을 볼 수 있습니다.
git diff --base
에서 https://git-scm.com/docs/git-diff#Documentation/git-diff.txt--1--base
작업 트리를 "기본"버전 [...]과 비교하십시오. 색인에는 병합되지 않은 항목, 즉 충돌을 해결하는 동안 만 이러한 단계가 포함됩니다.
git diff --base stackoverflow.com/a/60484874/470749
관련 질문에 대한이 유용한 답변 에서 언급했듯이을 사용 git mergetool하여 파일의 수정 된 버전 또는 삭제 된 버전을 가져올 것인지 선택할 수있는 대화 상자를 시작할 수 있습니다.