program story

git-로컬이 삭제되었지만 파일이 원격에 존재할 때 병합 충돌

inputbox 2020. 8. 4. 07:19
반응형

git-로컬이 삭제되었지만 파일이 원격에 존재할 때 병합 충돌


나는 git을 처음 접했고 로컬 리포지토리에서 마스터 브랜치에서 여러 파일을 삭제했지만 이러한 파일이 원격 마스터 브랜치 내에 존재하는 병합에 대해 어떻게 생각하는지 궁금했습니다.

git-merge를 수행 한 후 발생한 충돌을 보여줍니다.

git gui를 사용하면 원격 브랜치 파일에 내용이있는 동안 로컬 파일이 삭제되었음을 나타냅니다.

이러한 파일이 충돌하는 것을 어떻게 방지합니까? git gui를 사용하는 간단한 방법이 있습니까?

많은 감사


적합하다고 생각되면 갈등을 해결해야합니다. 파일이 실제로 제거되고 해당 변경 사항을 원본으로 게시하는 경우 파일을 다시 제거하십시오.

git rm path/to/file

실제로 파일을 계속 추적해야하는 경우 파일을 추가하십시오 (작업 트리의 버전은 원래 버전입니다).

git add path/to/file

둘 중 하나를 수행하여 충돌을 해결 한 후 병합을 커밋하십시오.


삭제 된 파일에 대한 변경 사항을보고 다른 곳에서 적용 할 수 있도록 허용 된 답변과 함께 추가 된 팁으로 "삭제 된 파일"에서 다음을 수행 할 수 있습니다.

git diff ...origin/master -- path/to/file

그것이 경우 "그들에 의해 삭제" 시나리오, 당신은 당신이 다른 곳에서 적용 할 수 있도록 변경 사항을보고 싶다, 당신은 사용할 수 있습니다 :

git diff origin/master... -- path/to/file

Git GUI에서 충돌 된 파일을 선택한 다음 충돌 된 텍스트가 표시되는 기본 텍스트 영역을 마우스 오른쪽 버튼으로 클릭하십시오.

나타나는 상황에 맞는 메뉴에서 "원격"또는 "로컬"로 이동하도록 선택할 수 있습니다. 따라서 파일이 원격으로 삭제되면 "원격"을 선택하여 삭제를 로컬로 전파하거나 그 반대로 할 수 있습니다.

그것을 알아 내기 위해 한 달간 걸렸습니다 ... Git GUI에 실제로 문서가 있다면 좋을 것입니다 ...


EGit에서 나는 또한 문제를 발견했다. 내 해결책은 다음과 같습니다.

  • Git Staging보기를 사용했습니다.
  • 비대기 변경 사항에 표시된 각 파일을 두 번 클릭하여 비교기를 엽니 다.
  • "왼쪽에서 오른쪽으로 모두 복사"아이콘을 클릭하십시오
  • 파일 저장 (스테이지되지 않은 목록에서 사라짐)

가장 좋은 답변은 갈등을 해결하는 방법에 중점을 둡니다.

그 전에 로컬에서 제거 된 파일에서 원격이 무엇을 변경했는지 알고 싶을 것입니다.

이를 위해 다음과 같이 변경 사항을 볼 수 있습니다.

git diff --base

에서 https://git-scm.com/docs/git-diff#Documentation/git-diff.txt--1--base

작업 트리를 "기본"버전 ​​[...]과 비교하십시오. 색인에는 병합되지 않은 항목 (예 : 충돌 해결)에 대해서만이 단계가 포함됩니다.

참고 URL : https://stackoverflow.com/questions/4319486/git-merge-conflict-when-local-is-deleted-but-file-exists-in-remote

반응형